Goal of the projectDocumentationDownloadAuthorsUniversityMain page

documentation

BNF specification for the parser

<cyfra> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<liczba> ::= ["-"] <cyfra>{<cyfra>}

<liczba_dziesietna> ::= ["-"] <liczba>"."<liczba>

<litera> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n |
             o | p | q | r | s | t | u | v | w | x | y | z | A | B |
             C | D | E | F | G | H | I | J | K | L | M | N | O | P |
             Q | R | S | T | U | V | W | X | Y | Z

<slowo> ::= <litera> {<litera> | <cyfra>}

<znak_arytmetyczny> ::= "+" | "-" | "*" | "/"

<operator_przypisania> ::= ":="

<operator_porownania> ::=  ">=" | "<=" | "<>" | "=" | ">" | "<"

<operator_logiczny> ::= "not" | "and" | "or"

<typ_danych> ::= "integer" | "real" | "Boolean"

<t_program> ::= "program"

<t_var> ::= "var"

<t_begin> ::= "begin"

<t_end> ::= "end"

<koniec_programu> ::= "end."

<t_if> ::= "if"

<t_else> ::= "else"

<t_while> ::= "while"

<t_do> ::= "do"

<slowo_kluczowe> ::= <typ_danych> | <t_program> | <t_var> |
                     <t_begin> | <t_end> | <koniec_programu> |
                     <t_if> | <t_else> | <t_while> | <t_do>

<nazwa_zmiennej> ::=  <slowo> opr�cz  <slowo_kluczowe> i <typ_danych>

<deklaracja_zmiennej> ::= <nazwa_zmiennej> { "," <nazwa_zmiennej> }
                          ":"  <typ_danych> ";"

<blok_deklaracji_zmiennych> ::=  <t_var> <deklaracja_zmiennej>
                                 { <deklaracja_zmiennej> }

<wyrazenie_arytmetyczne> ::= <liczba> | <nazwa_zmiennej>
                             <operator_arytmetyczny> <liczba> |
                             <nazwa_zmiennej>

<wyrazenie_arytmetyczne> ::= <wyrazenie_arytmetyczne>
                             <operator_arytmetyczny> <liczba> |
                             <nazwa_zmiennej>

<wyrazenie_arytmetyczne> ::= "(" <wyrazenie_arytmetyczne> ")"

<wyrazenie_logiczne> ::= "true" | "false" |  <wyrazenie_logiczne>

<wyrazenie_logiczne> ::= <liczba> | <nazwa_zmiennej>
                         <operator_porownania> <liczba> |
                         <nazwa_zmiennej>

<wyrazenie_logiczne> ::=  <wyrazenie_logiczne> <operator_logiczny>
                          <wyrazenie_logiczne>

<wyrazenie_logiczne> ::= "("<wyrazenie_logiczne> ")"

<instrukcja_przypisania> ::= <nazwa_zmiennej> ":="
                             <liczba> | <nazwa_zmiennej>  |
                             <wyrazenie_arytmetyczne> |
                             <wyrazenie_logiczne> ";"

<instrukcja> ::= <instrukcja_przypisania> | <instrukcja_p�tli> |
                 <instrukcja_warunkowa>

<instrukcja> ::= <t_begin> {  <instrukcja> } <t_end>

<instrukcja_p�tli> ::= <t_while> <wyra�enie_logiczne>
                       <t_do> <instrukcja>

<instrukcja_warunkowa> ::= <t_if> <wyra�enie_logiczne> <t_then>
                           <instrukcja> [ <t_elese> <instrukcja> ]

<blok_programu> ::= <t_program> <nazwa_zmiennej>
                    [ <blok_deklaracji_zmiennych> ] <t_begin>
                    <instrukcja> <koniec_programu>

Copyright © by BIFF
Powered by:
SourceForge.net Logo