Add tinyC grammar desc
This commit is contained in:
parent
d6dc298d35
commit
b0a192ce7c
@ -284,6 +284,23 @@ void run()
|
|||||||
|
|
||||||
int func_tiny()
|
int func_tiny()
|
||||||
{
|
{
|
||||||
|
printf("TinyC grammar\n");
|
||||||
|
printf("<program> ::= <statement>\n");
|
||||||
|
printf("<statement> ::= \"if\" <paren_expr> <statement> |\n");
|
||||||
|
printf(" \"if\" <paren_expr> <statement> \"else\" <statement> |\n");
|
||||||
|
printf(" \"while\" <paren_expr> <statement> |\n");
|
||||||
|
printf(" \"do\" <statement> \"while\" <paren_expr> \";\" |\n");
|
||||||
|
printf(" \"{\" { <statement> } \"}\" |\n");
|
||||||
|
printf(" <expr> \";\" |\n");
|
||||||
|
printf(" \";\"\n");
|
||||||
|
printf("<paren_expr> ::= \"(\" <expr> \")\"\n");
|
||||||
|
printf("<expr> ::= <test> | <id> \"=\" <expr>\n");
|
||||||
|
printf("<test> ::= <sum> | <sum> \"<\" <sum> | <sum> \">\" <sum>\n");
|
||||||
|
printf("<sum> ::= <term> | <sum> \"+\" <term> | <sum> \"-\" <term>\n");
|
||||||
|
printf("<term> ::= <id> | <int> | <paren_expr>\n");
|
||||||
|
printf("<id> ::= \"a\" | \"b\" | \"c\" | \"d\" | ... | \"z\"\n");
|
||||||
|
printf("<int> ::= <an_unsigned_decimal_integer>\n");
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
ch = ' ';
|
ch = ' ';
|
||||||
sym = 0;
|
sym = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user