modules/rpsl/aggr_bndry.y
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
- yyparse
- aggr_bndryerror
1 %{
2 /*
3 filename: aggr_bndry.y
4
5 description:
6 Defines the grammar for an RPSL aggr-bndry attribute. It was mostly
7 stolen from the IRRToolSet, simplified by removing ability to parse
8 things defined by a dictionary (we use XML for extensibility rather
9 than a dictionary).
10
11 notes:
12 Defines tokens for the associated lexer, aggr_bndry.l.
13 */
14 %}
15
16 %token OP_OR OP_AND
17 %token KEYW_EXCEPT
18 %token TKN_ASNO TKN_ASNAME
19
20 %{
21 #include <stdio.h>
22 #include <stdarg.h>
23 #include <stdlib.h>
24
25 int yyerror(const char *s);
26
27 %}
28
29 %%
/* [<][>][^][v][top][bottom][index][help] */
30
31 aggr_bndry: as_expr
32 ;
33
34 as_expr: as_expr OP_OR as_expr_term
35 | as_expr_term
36 ;
37
38 as_expr_term: as_expr_term OP_AND as_expr_factor
39 | as_expr_term KEYW_EXCEPT as_expr_factor
40 | as_expr_factor
41 ;
42
43 as_expr_factor: '(' as_expr ')'
44 | as_expr_operand
45 ;
46
47 as_expr_operand: TKN_ASNO
48 | TKN_ASNAME
49 ;
50
51 %%
52
53 #undef aggr_bndryerror
54 #undef yyerror
55
56 int
57 aggr_bndryerror (const char *s)
/* [<][>][^][v][top][bottom][index][help] */
58 {
59 yyerror(s);
60 return 0;
61 }
62
63