lib/chef/solr_query/lucene.treetop in chef-0.10.0.beta.1 vs lib/chef/solr_query/lucene.treetop in chef-0.10.0.beta.2

- old
+ new

@@ -25,11 +25,11 @@ rule expression operation / group / field / field_range / term / string end rule term - keyword valid_letter+ <Term> / !keyword valid_letter+ <Term> + keyword valid_letter+ <Term> / !keyword !"?" valid_letter <Term> end rule field field_name ":" (term/string/group) <Field> end @@ -43,11 +43,11 @@ rule field_name !keyword valid_letter+ <FieldName> end rule range_value - valid_letter+ <RangeValue> + valid_letter+ <RangeValue> / "*" <RangeValue> end rule group space? '(' body ')' space? <Group> end @@ -100,12 +100,10 @@ '+' <RequiredOperator> end rule prohibited_op !valid_letter prohibited_operator (field/field_range/term/string) <UnaryOp> - / - prohibited_operator (field/field_range/term/string) <UnaryOp> end rule prohibited_operator '-' <ProhibitedOperator> end @@ -113,31 +111,38 @@ rule boost_op (term/string) '^' fuzzy_param <BoostOp> end rule fuzzy_op - (term/string) '~' fuzzy_param? <FuzzyOp> + (term/string) '~' fuzzy_param? (space / !valid_letter) <FuzzyOp> end rule fuzzy_param [0-9] '.'? [0-9] <FuzzyParam> / [0-9]+ <FuzzyParam> end rule string - #'"' (!'"' . / '\"')* '"' <Phrase> '"' term (space term)* '"' <Phrase> end rule keyword 'AND' / 'OR' / 'NOT' end rule valid_letter - [a-zA-Z0-9*_+.-] / '\\' special_char + start_letter+ ([a-zA-Z0-9*?_.-] / '\\' special_char)* end + rule start_letter + [a-zA-Z0-9._*] / '\\' special_char + end + + rule end_letter + [a-zA-Z0-9*?_.] / '\\' special_char + end + rule special_char - [!(){}\[\]^"~*?:\\] + [-+&|!(){}\[\]^"~*?:\\] end rule space [\s]+ end