Class: Predicator::Parser
- Inherits:
-
Racc::Parser
- Object
- Racc::Parser
- Predicator::Parser
- Defined in:
- lib/predicator/parser.rb
Constant Summary collapse
- Racc_arg =
[ racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var ]
- Racc_token_to_s_table =
[ "$end", "error", "TRUE", "FALSE", "LPAREN", "RPAREN", "LBRACKET", "RBRACKET", "BANG", "NOT", "DOT", "COMMA", "AT", "AND", "OR", "EQ", "GT", "LT", "BETWEEN", "IN", "INTEGER", "STRING", "IDENTIFIER", "$start", "predicate", "boolean_predicate", "logical_predicate", "group_predicate", "comparison_predicate", "variable", "value", "array", "array_contents", "literal" ]
- Racc_debug_parser =
false
Instance Method Summary collapse
- #_reduce_10(val, _values) ⇒ Object
- #_reduce_11(val, _values) ⇒ Object
- #_reduce_12(val, _values) ⇒ Object
- #_reduce_13(val, _values) ⇒ Object
- #_reduce_14(val, _values) ⇒ Object
- #_reduce_15(val, _values) ⇒ Object
- #_reduce_16(val, _values) ⇒ Object
- #_reduce_17(val, _values) ⇒ Object
- #_reduce_18(val, _values) ⇒ Object
-
#_reduce_20(val, _values) ⇒ Object
reduce 19 omitted.
-
#_reduce_23(val, _values) ⇒ Object
reduce 22 omitted.
- #_reduce_24(val, _values) ⇒ Object
- #_reduce_25(val, _values) ⇒ Object
- #_reduce_26(val, _values) ⇒ Object
-
#_reduce_5(val, _values) ⇒ Object
reduce 4 omitted.
- #_reduce_6(val, _values) ⇒ Object
- #_reduce_7(val, _values) ⇒ Object
- #_reduce_8(val, _values) ⇒ Object
- #_reduce_9(val, _values) ⇒ Object
- #_reduce_none(val, _values) ⇒ Object
-
#initialize ⇒ Parser
constructor
A new instance of Parser.
- #next_token ⇒ Object
- #on_error(type, val, values) ⇒ Object
- #parse(string) ⇒ Object
Constructor Details
Instance Method Details
#_reduce_10(val, _values) ⇒ Object
239 240 241 |
# File 'lib/predicator/parser.rb', line 239 def _reduce_10(val, _values) AST::Or.new val.first, val.last end |
#_reduce_11(val, _values) ⇒ Object
243 244 245 |
# File 'lib/predicator/parser.rb', line 243 def _reduce_11(val, _values) AST::Group.new val[1] end |
#_reduce_12(val, _values) ⇒ Object
247 248 249 |
# File 'lib/predicator/parser.rb', line 247 def _reduce_12(val, _values) AST::Equal.new val.first, val.last end |
#_reduce_13(val, _values) ⇒ Object
251 252 253 |
# File 'lib/predicator/parser.rb', line 251 def _reduce_13(val, _values) AST::GreaterThan.new val.first, val.last end |
#_reduce_14(val, _values) ⇒ Object
255 256 257 |
# File 'lib/predicator/parser.rb', line 255 def _reduce_14(val, _values) AST::LessThan.new val.first, val.last end |
#_reduce_15(val, _values) ⇒ Object
259 260 261 |
# File 'lib/predicator/parser.rb', line 259 def _reduce_15(val, _values) AST::Between.new val.first, val[2], val.last end |
#_reduce_16(val, _values) ⇒ Object
263 264 265 |
# File 'lib/predicator/parser.rb', line 263 def _reduce_16(val, _values) AST::In.new val.first, val.last end |
#_reduce_17(val, _values) ⇒ Object
267 268 269 |
# File 'lib/predicator/parser.rb', line 267 def _reduce_17(val, _values) AST::NotIn.new val.first, val.last end |
#_reduce_18(val, _values) ⇒ Object
271 272 273 |
# File 'lib/predicator/parser.rb', line 271 def _reduce_18(val, _values) AST::Array.new val[1] end |
#_reduce_20(val, _values) ⇒ Object
reduce 19 omitted
277 278 279 |
# File 'lib/predicator/parser.rb', line 277 def _reduce_20(val, _values) [val.first, val.last].flatten end |
#_reduce_23(val, _values) ⇒ Object
reduce 22 omitted
285 286 287 |
# File 'lib/predicator/parser.rb', line 285 def _reduce_23(val, _values) AST::String.new val.first end |
#_reduce_24(val, _values) ⇒ Object
289 290 291 |
# File 'lib/predicator/parser.rb', line 289 def _reduce_24(val, _values) AST::Integer.new val.first.to_i end |
#_reduce_25(val, _values) ⇒ Object
293 294 295 |
# File 'lib/predicator/parser.rb', line 293 def _reduce_25(val, _values) AST::Variable.new val.first end |
#_reduce_26(val, _values) ⇒ Object
297 298 299 |
# File 'lib/predicator/parser.rb', line 297 def _reduce_26(val, _values) AST::Variable.new [val.first, val.last].flatten.join(".") end |
#_reduce_5(val, _values) ⇒ Object
reduce 4 omitted
219 220 221 |
# File 'lib/predicator/parser.rb', line 219 def _reduce_5(val, _values) AST::True.new true end |
#_reduce_6(val, _values) ⇒ Object
223 224 225 |
# File 'lib/predicator/parser.rb', line 223 def _reduce_6(val, _values) AST::False.new false end |
#_reduce_7(val, _values) ⇒ Object
227 228 229 |
# File 'lib/predicator/parser.rb', line 227 def _reduce_7(val, _values) AST::BooleanVariable.new val.first end |
#_reduce_8(val, _values) ⇒ Object
231 232 233 |
# File 'lib/predicator/parser.rb', line 231 def _reduce_8(val, _values) AST::Not.new val.last end |
#_reduce_9(val, _values) ⇒ Object
235 236 237 |
# File 'lib/predicator/parser.rb', line 235 def _reduce_9(val, _values) AST::And.new val.first, val.last end |
#_reduce_none(val, _values) ⇒ Object
301 302 303 |
# File 'lib/predicator/parser.rb', line 301 def _reduce_none(val, _values) val[0] end |
#next_token ⇒ Object
24 25 26 |
# File 'lib/predicator/parser.rb', line 24 def next_token @lexer.next_token end |
#on_error(type, val, values) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/predicator/parser.rb', line 28 def on_error type, val, values super rescue Racc::ParseError trace = values.each_with_index.map{|l, i| "#{' ' * i}#{l}"} raise ParseError, "\nparse error on value #{val.inspect}\n#{trace.join("\n")}" end |
#parse(string) ⇒ Object
19 20 21 22 |
# File 'lib/predicator/parser.rb', line 19 def parse string @lexer.parse string do_parse end |