Waddle_Language/grammar/operations/expressions.bnf

41 lines
1.8 KiB
BNF
Raw Normal View History

<expression> ::= <optional_whitespace>
(
<my_identifier>
| <literal>
| <object_method_call>
| <constant_declaration>
| <type_conversion_expression>
| "(" <expression> ")"
| <lambda_declaration>
)
<optional_whitespace>
<type_conversion_expression> ::= <my_identifier> ".as(" <optional_whitespace> <type> <optional_whitespace> ")"
<boolean_expression> ::=
<optional_whitespace>
(
<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_type_keyword> ".and(" <boolean_expression> "," <boolean_expression> ")"
| <boolean_type_keyword> ".or(" <boolean_expression> "," <boolean_expression> ")"
| <boolean_type_keyword> ".not(" <boolean_expression> ")"
| <boolean_type_keyword> ".eq(" <boolean_expression> "," <boolean_expression> ")"
| <boolean_type_keyword> ".is(" <boolean_expression> "," <boolean_expression> ")"
| <boolean_type_keyword> ".gt(" <boolean_expression> "," <boolean_expression> ")"
| <boolean_type_keyword> ".lt(" <boolean_expression> "," <boolean_expression> ")"
| <boolean_type_keyword> ".gte(" <boolean_expression> "," <boolean_expression> ")"
| <boolean_type_keyword> ".lte(" <boolean_expression> "," <boolean_expression> ")"
)
<optional_whitespace>