class Predicator::Parser
Constants
- Racc_arg
- Racc_debug_parser
- Racc_token_to_s_table
Public Class Methods
new()
click to toggle source
# File lib/predicator/parser.rb, line 15 def initialize @lexer = Lexer.new end
Public Instance Methods
_reduce_10(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 295 def _reduce_10(val, _values) AST::Or.new val.first, val.last end
_reduce_11(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 299 def _reduce_11(val, _values) AST::Present.new val.first end
_reduce_12(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 303 def _reduce_12(val, _values) AST::Blank.new val.first end
_reduce_13(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 307 def _reduce_13(val, _values) AST::Group.new val[1] end
_reduce_17(val, _values)
click to toggle source
reduce 16 omitted
# File lib/predicator/parser.rb, line 317 def _reduce_17(val, _values) AST::IntegerEqual.new val.first, val.last end
_reduce_18(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 321 def _reduce_18(val, _values) AST::IntegerGreaterThan.new val.first, val.last end
_reduce_19(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 325 def _reduce_19(val, _values) AST::IntegerLessThan.new val.first, val.last end
_reduce_20(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 329 def _reduce_20(val, _values) AST::IntegerBetween.new val.first, val[2], val.last end
_reduce_21(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 333 def _reduce_21(val, _values) AST::IntegerIn.new val.first, val.last end
_reduce_22(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 337 def _reduce_22(val, _values) AST::IntegerNotIn.new val.first, val.last end
_reduce_23(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 341 def _reduce_23(val, _values) AST::StringEqual.new val.first, val.last end
_reduce_24(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 345 def _reduce_24(val, _values) AST::StringGreaterThan.new val.first, val.last end
_reduce_25(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 349 def _reduce_25(val, _values) AST::StringLessThan.new val.first, val.last end
_reduce_26(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 353 def _reduce_26(val, _values) AST::StringIn.new val.first, val.last end
_reduce_27(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 357 def _reduce_27(val, _values) AST::StringNotIn.new val.first, val.last end
_reduce_28(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 361 def _reduce_28(val, _values) AST::StringStartsWith.new val.first, val.last end
_reduce_29(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 365 def _reduce_29(val, _values) AST::StringEndsWith.new val.first, val.last end
_reduce_30(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 369 def _reduce_30(val, _values) AST::DateEqual.new val.first, val.last end
_reduce_31(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 373 def _reduce_31(val, _values) AST::DateGreaterThan.new val.first, val.last end
_reduce_32(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 377 def _reduce_32(val, _values) AST::DateLessThan.new val.first, val.last end
_reduce_33(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 381 def _reduce_33(val, _values) AST::DateBetween.new val.first, val[2], val.last end
_reduce_34(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 385 def _reduce_34(val, _values) AST::IntegerArray.new val[1] end
_reduce_36(val, _values)
click to toggle source
reduce 35 omitted
# File lib/predicator/parser.rb, line 391 def _reduce_36(val, _values) [val.first, val.last].flatten end
_reduce_37(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 395 def _reduce_37(val, _values) AST::StringArray.new val[1] end
_reduce_39(val, _values)
click to toggle source
reduce 38 omitted
# File lib/predicator/parser.rb, line 401 def _reduce_39(val, _values) [val.first, val.last].flatten end
_reduce_40(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 405 def _reduce_40(val, _values) AST::Integer.new val.first.to_i end
_reduce_41(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 409 def _reduce_41(val, _values) AST::String.new val.first end
_reduce_42(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 413 def _reduce_42(val, _values) AST::Date.new val.first end
_reduce_43(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 417 def _reduce_43(val, _values) AST::DateAgo.new val.first end
_reduce_44(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 421 def _reduce_44(val, _values) AST::DateFromNow.new val.first end
_reduce_45(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 425 def _reduce_45(val, _values) AST::Duration.new val.first end
_reduce_46(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 429 def _reduce_46(val, _values) AST::Variable.new val.first end
_reduce_47(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 433 def _reduce_47(val, _values) AST::Variable.new [val.first, val.last].flatten.join(".") end
_reduce_5(val, _values)
click to toggle source
reduce 4 omitted
# File lib/predicator/parser.rb, line 275 def _reduce_5(val, _values) AST::True.new true end
_reduce_6(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 279 def _reduce_6(val, _values) AST::False.new false end
_reduce_7(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 283 def _reduce_7(val, _values) AST::BooleanVariable.new val.first end
_reduce_8(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 287 def _reduce_8(val, _values) AST::Not.new val.last end
_reduce_9(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 291 def _reduce_9(val, _values) AST::And.new val.first, val.last end
_reduce_none(val, _values)
click to toggle source
# File lib/predicator/parser.rb, line 437 def _reduce_none(val, _values) val[0] end
next_token()
click to toggle source
# File lib/predicator/parser.rb, line 24 def next_token @lexer.next_token end
on_error(type, val, values)
click to toggle source
Calls superclass method
# 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)
click to toggle source
# File lib/predicator/parser.rb, line 19 def parse string @lexer.parse string do_parse end