Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. grammar = statement*;
  2. statement = (assignment | function_call | function_definition | return_statement) end_of_statement |
  3. control_structure;
  4. assignment = symbol_name assignment_operator expression;
  5. symbol_name = /[a-zA-Z_][a-zA-Z0-9_]*/;
  6. assignment_operator = "=";
  7. expression = not_operator? (operation | symbol_name | function_call | sub_expression | string |
  8. number) | return_statement;
  9. not_operator = "!";
  10. operation = expression operator expression;
  11. operator = /\+|-|\*|/|&|\||==|!=|<|>|<=|>=/;
  12. function_call = symbol_name "(" expression_list? ")";
  13. expression_list = expression ("," expression)*;
  14. sub_expression = "(" expression ")";
  15. string = /".*"/;
  16. number = /[+-]?[0-9]+(\.[0-9]+)?/;
  17. return_statement = "return" expression;
  18. function_definition = symbol_name "(" parameter_list? ")" statement_block;
  19. parameter_list = symbol_name ("," symbol_name)*;
  20. statement_block = "{" statement* "}";
  21. end_of_statement = ";";
  22. control_structure = for_structure | while_structure | if_structure;
  23. for_structure = "for" "(" expression? ";" expression? ";" expression? ")" (statement |
  24. statement_block | end_of_statement);
  25. while_structure = "while" sub_expression (statement | statement_block | end_of_statement);
  26. if_structure = "if" sub_expression (statement | statement_block | end_of_statement);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement