# # DO NOT MODIFY!!!! # This file is automatically generated by Racc 1.4.6 # from Racc grammer file "". # require 'racc/parser.rb' require 'rack/mount/utils' require 'rack/mount/strexp/tokenizer' module Rack module Mount class StrexpParser < Racc::Parser if Regin.regexp_supports_named_captures? REGEXP_NAMED_CAPTURE = '(?<%s>%s)'.freeze else REGEXP_NAMED_CAPTURE = '(?:<%s>%s)'.freeze end attr_accessor :anchor, :requirements ##### State transition tables begin ### racc_action_table = [ 1, 2, 3, 9, 4, 1, 2, 3, 12, 4, 1, 2, 3, 11, 4, 1, 2, 3, nil, 4 ] racc_action_check = [ 0, 0, 0, 5, 0, 3, 3, 3, 9, 3, 8, 8, 8, 8, 8, 6, 6, 6, nil, 6 ] racc_action_pointer = [ -2, nil, nil, 3, nil, 3, 13, nil, 8, 8, nil, nil, nil ] racc_action_default = [ -8, -4, -5, -8, -7, -8, -1, -3, -8, -8, -2, -6, 13 ] racc_goto_table = [ 6, 5, 10, 8, 10 ] racc_goto_check = [ 2, 1, 3, 2, 3 ] racc_goto_pointer = [ nil, 1, 0, -4 ] racc_goto_default = [ nil, nil, nil, 7 ] racc_reduce_table = [ 0, 0, :racc_error, 1, 8, :_reduce_1, 2, 9, :_reduce_2, 1, 9, :_reduce_none, 1, 10, :_reduce_4, 1, 10, :_reduce_5, 3, 10, :_reduce_6, 1, 10, :_reduce_7 ] racc_reduce_n = 8 racc_shift_n = 13 racc_token_table = { false => 0, :error => 1, :PARAM => 2, :GLOB => 3, :LPAREN => 4, :RPAREN => 5, :CHAR => 6 } racc_nt_base = 7 racc_use_result_var = true 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", "PARAM", "GLOB", "LPAREN", "RPAREN", "CHAR", "$start", "target", "expr", "token" ] Racc_debug_parser = false ##### State transition tables end ##### # reduce 0 omitted def _reduce_1(val, _values, result) result = anchor ? "\\A#{val.join}\\Z" : "\\A#{val.join}" result end def _reduce_2(val, _values, result) result = val.join result end # reduce 3 omitted def _reduce_4(val, _values, result) name = val[0].to_sym requirement = requirements[name] result = REGEXP_NAMED_CAPTURE % [name, requirement] result end def _reduce_5(val, _values, result) name = val[0].to_sym requirement = requirements[name] result = REGEXP_NAMED_CAPTURE % [name, '.+' || requirement] result end def _reduce_6(val, _values, result) result = "(?:#{val[1]})?" result end def _reduce_7(val, _values, result) result = Regexp.escape(val[0]) result end def _reduce_none(val, _values, result) val[0] end end # class StrexpParser end # module Mount end # module Rack