Merge branch 'maint/7.0'
[ninja.git] / src / generators / lsfilter / lsfilter.txt
blobe354a48bb5eb363fe4837d31873d7536507a90ca
1 _whitespace /^(\s+)/
2 _comment    /^(\/\*(?:[^\*]|\*[^\/])*\*\/)/
4 string      /^("(?:[^"\\]|\\.)*")/
6 all         /^(all)(?:[^a-z0-9_][\s\S]*|)$/i
9 and         /^(and)(?:[^a-z0-9_][\s\S]*|)$/i
10 not         /^(not)(?:[^a-z0-9_][\s\S]*|)$/i
11 or          /^(or)(?:[^a-z0-9_][\s\S]*|)$/i
12 in          /^(in)(?:[^a-z0-9_][\s\S]*|)$/i
14 name        /^([a-z][a-z0-9_]*)/i
16 integer     /^([0-9]+)/
18 not_re_ci   /^(!~~)/
19 not_re_cs   /^(!~)/
20 re_ci       /^(~~)/
21 re_cs       /^(~)/
23 not_eq_ci   /^(!=~)/
24 eq_ci       /^(=~)/
26 not_eq      /^(!=)/
27 gt_eq       /^(>=)/
28 lt_eq       /^(<=)/
29 gt          /^(>)/
30 lt          /^(<)/
31 eq          /^(=)/
33 colon       /^(:)/
34 comma       /^(,)/
35 dot         /^(\.)/
37 par_l       /^(\()/
38 par_r       /^(\))/
39 brace_l     /^(\[)/
40 brace_r     /^(\])/
42 entry:              program        = query _end
43 query:              query          = _brace_l table_def _brace_r search_query
45 table_def_simple:   table_def      = name
46 -- table_def_columns: table_def      = name _colon column_list
47 -- column_list_end:   column_list    = name
48 -- column_list_cont:  column_list    = column_list _comma name
50 search_query:       search_query   = filter
52 filter_or:          filter         = filter _or filter2
53 _filter_1_2:        filter         = filter2
55 filter_and:         filter2        = filter2 _and filter3
56 _filter_2_3:        filter2        = filter3
58 filter_not:         filter3        = _not filter4
59 _filter_3_4:        filter3        = filter4
61 filter_ok:          filter4        = match
62 _filter_parentesis: filter4        = _par_l filter _par_r
64 match_all:          match          = _all
66 match_in:           match          = _in set_descr
67 match_field_in:     match          = field _in set_descr
69 match_not_re_ci:    match          = field _not_re_ci arg_string
70 match_not_re_cs:    match          = field _not_re_cs arg_string
71 match_re_ci:        match          = field _re_ci arg_string
72 match_re_cs:        match          = field _re_cs arg_string
74 match_not_eq_ci:    match          = field _not_eq_ci arg_string
75 match_eq_ci:        match          = field _eq_ci arg_string
77 match_not_eq:       match          = field _not_eq arg_num_string
78 match_gt_eq:        match          = field _gt_eq arg_num_string
79 match_lt_eq:        match          = field _lt_eq arg_num
80 match_gt:           match          = field _gt arg_num
81 match_lt:           match          = field _lt arg_num
83 match_eq:           match          = field _eq arg_num_string
85 set_descr_name:     set_descr      = string
86 -- set_descr_query: set_descr      = _par_l query _par_r
88 field_name:         field          = name
89 field_obj:          field          = name _dot field
91 _arg_num_str_num:   arg_num_string = arg_num
92 _arg_num_str_str:   arg_num_string = arg_string
94 _arg_num:           arg_num        = integer
95 _arg_string:        arg_string     = string
97 arg_num_func:       arg_num        = name _par_l arg_list _par_r
98 arg_list:           arg_list       = arg_num_string _comma arg_list
99 arg_list_end:       arg_list       = arg_num_string