~ubuntu-transition-trackers/ubuntu-transition-tracker/ben

« back to all changes in this revision

Viewing changes to lib/stml_parser.mly

  • Committer: Stephane Glondu
  • Date: 2009-07-28 15:00:25 UTC
  • Revision ID: git-v1:798d1465aec923703fdc8dfb656099cb57d2de15
Stm_monitor: add configuration file facilities

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
%token <Stml_types.field> FIELD
25
25
%token <Stml_types.regexp> REGEXP
26
26
%token MATCH OR AND NOT LPAREN RPAREN EOF SOURCE
 
27
%token LBRACKET RBRACKET SEMICOLON EQUALS
 
28
%token <string> STRING IDENT
27
29
 
28
30
%left OR
29
31
%left AND
30
32
%nonassoc NOT
31
33
 
32
34
%start <Stml_types.expr> full_expr
 
35
%start <Stml_types.config> config_file
33
36
 
34
37
%%
35
38
 
37
40
| e = expr EOF { e }
38
41
 
39
42
expr:
40
 
| e1 = expr OR e2 = expr { Or (e1, e2) }
41
 
| e1 = expr AND e2 = expr { And (e1, e2) }
42
 
| NOT e = expr { Not e }
43
 
| n = FIELD MATCH v = REGEXP { Match (n, v) }
 
43
| e1 = expr OR e2 = expr { EOr (e1, e2) }
 
44
| e1 = expr AND e2 = expr { EAnd (e1, e2) }
 
45
| NOT e = expr { ENot e }
 
46
| n = FIELD MATCH v = REGEXP { EMatch (n, v) }
44
47
| LPAREN e = expr RPAREN { e }
45
 
| SOURCE { Source }
 
48
| SOURCE { ESource }
 
49
| LBRACKET xs = separated_list(SEMICOLON, expr) RBRACKET { EList xs }
 
50
| x = STRING { EString x }
 
51
 
 
52
config_item:
 
53
| i = IDENT EQUALS e = expr SEMICOLON { (i, e) }
 
54
 
 
55
config_file:
 
56
| xs = list(config_item) EOF { xs }