77 statements: statements statement {printf("got <> <>\n");}
78 | statement {printf("got a statement<>\n"); }
81 statement: assign_stm CR
83 | CR /* null statement*/
86 assign_stm: DEBUG EQUAL NUMBER |
88 LOGSTDERROR EQUAL NUMBER |
90 REV_DNS EQUAL NUMBER |
97 ipv4: NUMBER DOT NUMBER DOT NUMBER DOT NUMBER
100 route_stm: ROUTE LBRACE rules RBRACE |
101 ROUTE LBRACK NUMBER RBRACK LBRACE rules RBRACE
108 rule: condition actions CR
112 condition: exp_elem |
116 exp: exp AND condition |
122 exp_elem: METHOD EQUAL_T STRING |
124 METHOD MATCH STRING |
131 SRCIP EQUAL_T STRING |
135 DSTIP EQUAL_T STRING |
139 net4: ipv4 SLASH ipv4 |
149 actions: actions action |
153 action: cmd SEMICOLON |
154 SEMICOLON /* null action */
156 cmd: FORWARD LPAREN host RPAREN |
157 FORWARD LPAREN STRING RPAREN |
158 FORWARD LPAREN ipv4 RPAREN |
159 SEND LPAREN host RPAREN |
160 SEND LPAREN STRING RPAREN |
161 SEND LPAREN ipv4 RPAREN |
164 LOG LPAREN STRING RPAREN |
165 ERROR LPAREN STRING COMMA STRING RPAREN |
166 ROUTE LPAREN NUMBER RPAREN
176 fprintf(stderr, "parse error (%d,%d): %s\n", line, column, s);
179 int main(int argc, char ** argv)
182 fprintf(stderr, "parsing error\n");