diff options
Diffstat (limited to 'grammars/c/grammar.txt')
-rw-r--r-- | grammars/c/grammar.txt | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/grammars/c/grammar.txt b/grammars/c/grammar.txt index 486f319..7959318 100644 --- a/grammars/c/grammar.txt +++ b/grammars/c/grammar.txt @@ -7,7 +7,7 @@ IDENT regex INT regex [0-9]+ -OPS list +OP list ( ) { } [ ] ; , - + ! % * & / << >> ^ | @@ -15,3 +15,44 @@ OPS list && || ++ -- < <= > >= = . -> ? : + +EXPR nonterm + INT + IDENT + EXPR -- + EXPR ++ + EXPR OP EXPR + EXPR ? EXPR : EXPR + +IF nonterm + if ( EXPR ) BLOCK + if ( EXPR ) BLOCK else BLOCK + +WHILE nonterm + while ( EXPR ) BLOCK + +DO nonterm + do BLOCK while ( EXPR ) + +FOR nonterm + for ( EXPR ; EXPR ; EXPR ) BLOCK + +SWITCH nonterm + switch ( EXPR ) BLOCK + +STMT nonterm + IF + WHILE + DO + FOR + SWITCH + EXPR ; + +STMTS nonterm .start + STMT + STMT STMTS + +BLOCK nonterm + { } + { STMTS } + STMT |