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
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