Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar = statement*;
- statement = (assignment | function_call | function_definition | return_statement) end_of_statement |
- control_structure;
- assignment = symbol_name assignment_operator expression;
- symbol_name = /[a-zA-Z_][a-zA-Z0-9_]*/;
- assignment_operator = "=";
- expression = not_operator? (operation | symbol_name | function_call | sub_expression | string |
- number) | return_statement;
- not_operator = "!";
- operation = expression operator expression;
- operator = /\+|-|\*|/|&|\||==|!=|<|>|<=|>=/;
- function_call = symbol_name "(" expression_list? ")";
- expression_list = expression ("," expression)*;
- sub_expression = "(" expression ")";
- string = /".*"/;
- number = /[+-]?[0-9]+(\.[0-9]+)?/;
- return_statement = "return" expression;
- function_definition = symbol_name "(" parameter_list? ")" statement_block;
- parameter_list = symbol_name ("," symbol_name)*;
- statement_block = "{" statement* "}";
- end_of_statement = ";";
- control_structure = for_structure | while_structure | if_structure;
- for_structure = "for" "(" expression? ";" expression? ";" expression? ")" (statement |
- statement_block | end_of_statement);
- while_structure = "while" sub_expression (statement | statement_block | end_of_statement);
- if_structure = "if" sub_expression (statement | statement_block | end_of_statement);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement