2025-11-23 06:58:46 +00:00
|
|
|
<statement> ::= <assignment_statement>
|
|
|
|
|
| <if_statement>
|
|
|
|
|
| <while_statement>
|
2025-11-24 05:27:23 +00:00
|
|
|
| <loop_statement>
|
|
|
|
|
| <reverse_loop_statement>
|
2025-11-23 06:58:46 +00:00
|
|
|
| <function_call_statement>
|
|
|
|
|
| <return_statement>
|
|
|
|
|
| <using_statement>
|
2025-11-24 05:27:23 +00:00
|
|
|
| <attempt_statement>
|
2025-11-25 03:48:14 +00:00
|
|
|
| <fail_statement>
|
2025-11-23 06:58:46 +00:00
|
|
|
|
|
|
|
|
<assignment_statement> ::= <my_identifier> ".set(" <expression> ")" ";"
|
|
|
|
|
|
2025-11-24 23:17:20 +00:00
|
|
|
<if_statement> ::= "if" "(" <boolean_expression> ")"
|
|
|
|
|
"{" <statement>* "}"
|
2025-11-28 05:52:08 +00:00
|
|
|
["orif" "(" <boolean_expression> ")" "{" <statement>* "}"]?
|
|
|
|
|
["otherwise" "{" <statement>* "}"]?
|
2025-11-23 06:58:46 +00:00
|
|
|
|
2025-11-24 23:17:20 +00:00
|
|
|
<while_statement> ::= "while" "(" <expression> ")"
|
|
|
|
|
"{" <statement>* "}"
|
2025-11-23 06:58:46 +00:00
|
|
|
|
2025-11-24 23:17:20 +00:00
|
|
|
<loop_statement> ::= "loop" "(" <identifier> "," <expression> "->" <expression>
|
|
|
|
|
["," <expression>]? ")"
|
|
|
|
|
"{" <statement>* "}"
|
2025-11-24 05:27:23 +00:00
|
|
|
|
2025-11-24 23:17:20 +00:00
|
|
|
<reverse_loop_statement> ::= "rloop" "(" <identifier> "," <expression> "->" <expression>
|
|
|
|
|
["," <expression>]? ")"
|
|
|
|
|
"{" <statement>* "}"
|
2025-11-24 05:27:23 +00:00
|
|
|
|
2025-11-23 06:58:46 +00:00
|
|
|
<function_call_statement> ::= <my_identifier> "(" <argument_list>? ")" ";"
|
|
|
|
|
|
|
|
|
|
<return_statement> ::= "rtn" <expression> ";"
|
|
|
|
|
|
2025-11-24 23:17:20 +00:00
|
|
|
<using_statement> ::= "using" <type> <identifier> ".set(" <expression> ")"
|
|
|
|
|
"{" <statement>* "}"
|
2025-11-24 05:27:23 +00:00
|
|
|
|
|
|
|
|
<attempt_statement> ::= <expression> ".attempt" "{" <attempt_handler>* "}"
|
|
|
|
|
|
|
|
|
|
<attempt_handler> ::= ("ok" | <identifier> | "error") "{" <statement>* "}"
|
2025-11-25 03:48:14 +00:00
|
|
|
|
|
|
|
|
<fail_statement> ::= <my_identifier> ".fail(" <error_type> ["(" <argument_list>? ")"]? ")" ";"
|