Racc::Parser
reduce 0 omitted
# File lib/rack/mount/strexp/parser.rb, line 116 116: def _reduce_1(val, _values, result) 117: result = anchor ? "\\A#{val.join}\\Z" : "\\A#{val.join}" 118: result 119: end
# File lib/rack/mount/strexp/parser.rb, line 121 121: def _reduce_2(val, _values, result) 122: result = val.join 123: result 124: end
reduce 3 omitted
# File lib/rack/mount/strexp/parser.rb, line 128 128: def _reduce_4(val, _values, result) 129: name = val[0].to_sym 130: requirement = requirements[name] 131: result = REGEXP_NAMED_CAPTURE % [name, requirement] 132: 133: result 134: end
# File lib/rack/mount/strexp/parser.rb, line 136 136: def _reduce_5(val, _values, result) 137: name = val[0].to_sym 138: requirement = requirements[name] 139: result = REGEXP_NAMED_CAPTURE % [name, '.+' || requirement] 140: 141: result 142: end
# File lib/rack/mount/strexp/parser.rb, line 144 144: def _reduce_6(val, _values, result) 145: result = "(?:#{val[1]})?" 146: result 147: end
# File lib/rack/mount/strexp/parser.rb, line 149 149: def _reduce_7(val, _values, result) 150: result = Regexp.escape(val[0]) 151: result 152: end
# File lib/rack/mount/strexp/parser.rb, line 154 154: def _reduce_none(val, _values, result) 155: val[0] 156: end
# File lib/rack/mount/strexp/tokenizer.rb, line 23 23: def action 24: yield 25: end
# File lib/rack/mount/strexp/tokenizer.rb, line 33 33: def load_file( filename ) 34: @filename = filename 35: open(filename, "r") do |f| 36: scan_setup(f.read) 37: end 38: end
# File lib/rack/mount/strexp/tokenizer.rb, line 46 46: def next_token 47: return if @ss.eos? 48: 49: text = @ss.peek(1) 50: @lineno += 1 if text == "\n" 51: token = case @state 52: when nil 53: case 54: when (text = @ss.scan(/\\(\(|\)|:|\*)/)) 55: action { [:CHAR, @ss[1]] } 56: 57: when (text = @ss.scan(/\:([a-zA-Z_]\w*)/)) 58: action { [:PARAM, @ss[1]] } 59: 60: when (text = @ss.scan(/\*([a-zA-Z_]\w*)/)) 61: action { [:GLOB, @ss[1]] } 62: 63: when (text = @ss.scan(/\(/)) 64: action { [:LPAREN, text] } 65: 66: when (text = @ss.scan(/\)/)) 67: action { [:RPAREN, text] } 68: 69: when (text = @ss.scan(/./)) 70: action { [:CHAR, text] } 71: 72: else 73: text = @ss.string[@ss.pos .. 1] 74: raise ScanError, "can not match: '" + text + "'" 75: end # if 76: 77: else 78: raise ScanError, "undefined state: '" + state.to_s + "'" 79: end # case state 80: token 81: end
# File lib/rack/mount/strexp/tokenizer.rb, line 40 40: def scan_file( filename ) 41: load_file(filename) 42: do_parse 43: end
# File lib/rack/mount/strexp/tokenizer.rb, line 17 17: def scan_setup(str) 18: @ss = StringScanner.new(str) 19: @lineno = 1 20: @state = nil 21: end
# File lib/rack/mount/strexp/tokenizer.rb, line 27 27: def scan_str(str) 28: scan_setup(str) 29: do_parse 30: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.