Nasal-Interpreter/version0.6/ebnf.cpp

71 lines
3.3 KiB
C++

data type = <scalar> <identifier> <calculation> <list> <hash> <function>
<1><unknown_type_id> ::=
IDENTIFIER
<!= <scalar>|<identifier>|<calculation>> <+>|<-> <unknown_type_id>
<1><scalar> ::= NUMBER|STRING
<!= <scalar>|<identifier>|<calculation>> <+>|<-> <scalar>
<1><scalars> ::=
<scalar>|<scalars>|<list>|<hash>|<calculation>|<function> <,> <scalar>|<identifier>|<list>|<hash>|<calculation>|<function> <!=operator>
<identifier>|<identifiers> <,> <scalar>|<list>|<hash>|<calculation>|<function> <!=operator>
<1><identifier> ::=
IDENTIFIER <!= <[>|<.>|<(>>
<unknown_type_id>|<identifier> <.> <identifier>
<unknown_type_id> <[> <scalar>|<identifier>|<calcualtion> <]> <!= <[>|<.>|<(>>
<unknown_type_id> <(> <scalar>|<scalars>|<identifier>|<identifiers>|<calculation>|<list>|<hash> <)> <!= <[>|<.>|<(>>
<unknown_type_id> <(><)> <!= <[>|<.>|<(>>
<unknown_type_id> <.> <.> <.>
<1><identifiers> ::=
<identifier>|<identifiers> <,> <identifier>
<1><calculation> ::=
<scalar>|<identifier>|<calculation> <+>|<->|<*>|</>|<~>|<<>|<<=>|<>>|<>=>|<==>|<!=>|<and>|<or> <scalar>|<identifier>|<calculation>
<(> <scalar>|<identifier>|<calculation> <)> <+>|<->|<*>|</>|<~>|<<>|<<=>|<>>|<>=>|<==>|<!=>|<and>|<or> <scalar>|<identifier>|<calculation>
<scalar>|<identifier>|<calculation> <+>|<->|<*>|</>|<~>|<<>|<<=>|<>>|<>=>|<==>|<!=>|<and>|<or> <(> <scalar>|<identifier>|<calculation> <)>
<(> <scalar>|<identifier>|<calculation> <)> <+>|<->|<*>|</>|<~>|<<>|<<=>|<>>|<>=>|<==>|<!=>|<and>|<or> <(> <scalar>|<identifier>|<calculation> <)>
<!= <scalar>|<identifier>|<calculation>> <+>|<-> <calculation>
<1><list> ::=
<[><]>
<!=<identifier>|<unknown_type_id>><[> <scalar>|<scalars>|<identifier>|<identifiers>|<list>|<hash>|<calculation> <]>
<1><hash> ::=
<{><}>
<{> <hashmember>|<hashmembers> <}>
<1><hashmember> ::=
<identifier> <:> <scalar>|<identifier>|<list>|<hash>|<function>|<calculation>
<1><hashmembers> ::=
<hashmember>|<hashmembers> <,> <hashmember>
<1><function> ::=
<func> <{><}>
<func> <{> <statement> <}>
<func> <(><)> <{><}>
<func> <(><)> <{> <statement> <}>
<func> <(> <identifier>|<identifiers> <)> <{><}>
<func> <(> <identifier>|<identifiers> <)> <{> <statement> <}>
<1><definition> ::=
<var> <identifier> <=> <scalar>|<identifier>|<list>|<hash>|<calculation> <;>
<var> <identifier> <=> <(> <scalar>|<identifier>|<list>|<hash>|<calculation> <)> <;>
<var> <identifier> <=> <function>
<1><assigntment> ::=
<!=var> <identifier> <=> <scalar>|<identifier>|<list>|<hash>|<calculation> <;>
<!=var> <identifier> <=> <(> <scalar>|<identifier>|<list>|<hash>|<calculation> <)> <;>
<statement> ::=
<!=<for> <(>> <definition>|<assignment>
<return> <scalar>|<identifier>|<list>|<hash>|<calculation> <;>
<return> <;>
<!=return> <continue>|<break>|<identifier> <;>
<choose>
<loop>
<statements> ::=
<statement>|<statements> <statement>|<;>
<1><choose>
<if> <(> <scalar>|<identifier>|<calculation> <)>
<elsif> <(> <scalar>|<identifier>|<calculation> <)>
<else> <if> <(> <scalar>|<identifier>|<calculation> <)>
<else>
<loop> ::=
<while> <(> <scalar>|<identifier>|<calculation> <)> <{><}>
<while> <(> <scalar>|<identifier>|<calculation> <)> <{> <statement> <}>
<while> <(> <scalar>|<identifier>|<calculation> <)> <statement>