#
# DO NOT MODIFY!!!!
# This file is automatically generated by racc 1.4.4
# from racc grammer file "lib/utility/boolexp.y".
#
require 'racc/parser'
#
# file:: boolexp_parser.rb
# author:: Jon A. Lambert
# version:: 2.8.0
# date:: 01/19/2006
#
# This source code copyright (C) 2005, 2006 by Jon A. Lambert
# All rights reserved.
#
# Released under the terms of the TeensyMUD Public License
# See LICENSE file for additional information.
#
$:.unshift "lib" if !$:.include? "lib"
$:.unshift "vendor" if !$:.include? "vendor"
if $0 == __FILE__
Dir.chdir("../..")
$:.unshift "../../lib"
require 'pp'
end
require 'core/script'
class BoolExpParser < Racc::Parser
module_eval <<'..end lib/utility/boolexp.y modeval..ida4cfdfe934', 'lib/utility/boolexp.y', 58
def initialize(obj)
@obj = obj
end
def parse(str)
@q = []
until str.empty?
case str
when /\A\s+/
when /\A[#]?(\d+)/
@q.push [:NUMBER, $1.to_i]
when /\A.|\n/o
s = $&
@q.push [s, s]
end
str = $'
end
@q.push [false, '$end']
do_parse
end
def next_token
@q.shift
end
..end lib/utility/boolexp.y modeval..ida4cfdfe934
##### racc 1.4.4 generates ###
racc_reduce_table = [
0, 0, :racc_error,
3, 9, :_reduce_1,
3, 9, :_reduce_2,
3, 9, :_reduce_3,
2, 9, :_reduce_4,
1, 9, :_reduce_5 ]
racc_reduce_n = 6
racc_shift_n = 14
racc_action_table = [
1, 1, 11, 2, 2, 3, 3, 1, 1, 5,
2, 2, 3, 3, 7, 8, nil, 8, 9, 8,
9, nil, 10 ]
racc_action_check = [
0, 9, 7, 0, 9, 0, 9, 8, 2, 1,
8, 2, 8, 2, 4, 13, nil, 4, 4, 6,
6, nil, 6 ]
racc_action_pointer = [
-2, 2, 6, nil, 14, nil, 16, 2, 5, -1,
nil, nil, nil, 12 ]
racc_action_default = [
-6, -6, -6, -5, -6, -4, -6, -6, -6, -6,
-3, 14, -1, -2 ]
racc_goto_table = [
4, nil, 6, nil, nil, nil, nil, nil, 12, 13 ]
racc_goto_check = [
1, nil, 1, nil, nil, nil, nil, nil, 1, 1 ]
racc_goto_pointer = [
nil, 0 ]
racc_goto_default = [
nil, nil ]
racc_token_table = {
false => 0,
Object.new => 1,
"!" => 2,
"&" => 3,
"|" => 4,
"(" => 5,
")" => 6,
:NUMBER => 7 }
racc_use_result_var = true
racc_nt_base = 8
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',
'"!"',
'"&"',
'"|"',
'"("',
'")"',
'NUMBER',
'$start',
'exp']
Racc_debug_parser = false
##### racc system variables end #####
# reduce 0 omitted
module_eval <<'.,.,', 'lib/utility/boolexp.y', 23
def _reduce_1( val, _values, result )
result &&= val[2]
result
end
.,.,
module_eval <<'.,.,', 'lib/utility/boolexp.y', 24
def _reduce_2( val, _values, result )
result ||= val[2]
result
end
.,.,
module_eval <<'.,.,', 'lib/utility/boolexp.y', 25
def _reduce_3( val, _values, result )
result = val[1]
result
end
.,.,
module_eval <<'.,.,', 'lib/utility/boolexp.y', 26
def _reduce_4( val, _values, result )
result = !@obj.contents.include?(val[1])
result
end
.,.,
module_eval <<'.,.,', 'lib/utility/boolexp.y', 27
def _reduce_5( val, _values, result )
result = @obj.contents.include?(val[0])
result
end
.,.,
def _reduce_none( val, _values, result )
result
end
end # class BoolExpParser
#
# BoolExp testing
#
if $0 == __FILE__
class Obj
attr_accessor :contents
end
actor = Obj.new
actor.contents = [234]
str ="((!#245)ê)"
begin
x = BoolExpParser.new(actor).parse(str)
pp str, actor.contents, x
actor.contents = [234,245]
x = BoolExpParser.new(actor).parse(str)
pp str, actor.contents, x
str ="((!#1))"
x = BoolExpParser.new(actor).parse(str)
pp str, actor.contents, x
str ="234|1"
x = BoolExpParser.new(actor).parse(str)
pp str, actor.contents, x
str ="xxxxxxxx"
x = BoolExpParser.new(actor).parse(str)
pp str, actor.contents, x
rescue Racc::ParseError, Exception
pp $!
exit
end
end