Introduction - If you have any usage issues, please Google them yourself
Syntax of TINY+
An EBNF grammar for TINY+ is as follows (Strings in bold are terminals):
1. program-> declarations stmt-sequence
2. declarations-> decl declarations |²
3. decl-> type-specifi er varlist
4. type-specifi er-> int | bool | string
5. varlist-> identifi er { , identifi er }
6. stmt-sequence-> statement { statement }
7. statement-> if-stmt | repeat-stmt | assign-stmt | read-stmt | write-stmt
| while-stmt
8. while-stmt-> while bool-exp do stmt-sequence end
9. if-stmt-> if bool-exp then stmt-sequence [else stmt-sequence] end
10. repeat-stmt-> repeat stmt-sequence until bool-exp
11. assign-stmt-> identifi er := exp
12. read-stmt-> read identifi er
13. write-stmt-> write exp
14. exp-> arithmetic-exp | bool-exp | string-exp
15. arithmetic-exp-> term { addop term }
16. addop->+ |-