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