diff --git a/lib/oga/xpath/parser.y b/lib/oga/xpath/parser.y index f240392..19054ec 100644 --- a/lib/oga/xpath/parser.y +++ b/lib/oga/xpath/parser.y @@ -12,8 +12,10 @@ options no_result_var prechigh left T_PIPE T_MOD T_DIV T_MUL T_SUB T_ADD - left T_GT T_GTE T_LT T_LTE T_NEQ T_EQ - left T_AND T_OR + left T_LT T_LTE T_GT T_GTE + left T_EQ T_NEQ + left T_AND + left T_OR preclow rule diff --git a/spec/oga/xpath/parser/operator_precedence_spec.rb b/spec/oga/xpath/parser/operator_precedence_spec.rb index 99e107c..abed008 100644 --- a/spec/oga/xpath/parser/operator_precedence_spec.rb +++ b/spec/oga/xpath/parser/operator_precedence_spec.rb @@ -94,9 +94,9 @@ describe Oga::XPath::Parser do parse_xpath('A or B and C').should == s( :path, s( - :and, - s(:or, s(:test, nil, 'A'), s(:test, nil, 'B')), - s(:test, nil, 'C') + :or, + s(:test, nil, 'A'), + s(:and, s(:test, nil, 'B'), s(:test, nil, 'C')) ) ) end @@ -116,9 +116,9 @@ describe Oga::XPath::Parser do parse_xpath('A = B < C').should == s( :path, s( - :lt, - s(:eq, s(:test, nil, 'A'), s(:test, nil, 'B')), - s(:test, nil, 'C') + :eq, + s(:test, nil, 'A'), + s(:lt, s(:test, nil, 'B'), s(:test, nil, 'C')) ) ) end