Waddle_Language/grammar/operations/expressions.bnf

34 lines
1.4 KiB
BNF
Raw Normal View History

<expression> ::= <my_identifier>
| <literal>
| <object_method_call>
| <constant_expression>
| <object_instantiation>
| <type_conversion_expression>
| "(" <expression> ")"
| <lambda_expression>
<type_conversion_expression> ::= <my_identifier> ".as(" <type> ")"
<boolean_expression> ::=
<boolean_literal>
| "(" <boolean_expression> ")"
| <my_identifier>.eq(<expression>)
| <my_identifier>.is(<expression>)
| <my_identifier>.not(<expression>)
| <my_identifier>.gt(<expression>)
| <my_identifier>.lt(<expression>)
| <my_identifier>.gte(<expression>)
| <my_identifier>.lte(<expression>)
| <my_identifier>.and(<boolean_expression>)
| <my_identifier>.or(<boolean_expression>)
| Boolean.and(<boolean_expression>, <boolean_expression>)
| Boolean.or(<boolean_expression>, <boolean_expression>)
| Boolean.not(<boolean_expression>)
| Boolean.eq(<boolean_expression>, <boolean_expression>)
| Boolean.is(<boolean_expression>, <boolean_expression>)
| Boolean.gt(<boolean_expression>, <boolean_expression>)
| Boolean.lt(<boolean_expression>, <boolean_expression>)
| Boolean.gte(<boolean_expression>, <boolean_expression>)
| Boolean.lte(<boolean_expression>, <boolean_expression>)
<constant_expression> ::= <my_identifier> ".define(" <literal> ")"