summaryrefslogtreecommitdiff
path: root/grammars/c/grammar.txt
diff options
context:
space:
mode:
Diffstat (limited to 'grammars/c/grammar.txt')
-rw-r--r--grammars/c/grammar.txt43
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
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback