sourcify 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/.gitignore +1 -0
  2. data/HISTORY.txt +11 -0
  3. data/README.rdoc +52 -28
  4. data/VERSION +1 -1
  5. data/lib/sourcify.rb +13 -1
  6. data/lib/sourcify/proc.rb +7 -4
  7. data/lib/sourcify/proc/parser.rb +109 -40
  8. data/lib/sourcify/proc/scanner.rb +2140 -0
  9. data/lib/sourcify/proc/scanner.rl +285 -0
  10. data/lib/sourcify/proc/scanner/comment.rb +21 -0
  11. data/lib/sourcify/proc/scanner/counter.rb +44 -0
  12. data/lib/sourcify/proc/scanner/dstring.rb +58 -0
  13. data/lib/sourcify/proc/scanner/extensions.rb +135 -0
  14. data/lib/sourcify/proc/scanner/heredoc.rb +24 -0
  15. data/sourcify.gemspec +38 -9
  16. data/spec/dump_object_space_procs.rb +84 -0
  17. data/spec/proc/created_on_the_fly_proc_spec.rb +172 -0
  18. data/spec/proc/others_spec.rb +36 -0
  19. data/spec/proc/to_sexp_variables_spec.rb +6 -6
  20. data/spec/proc/to_source_from_do_end_block_w_nested_literal_keyword_spec.rb +2 -0
  21. data/spec/proc/to_source_from_multi_blocks_w_many_matches_spec.rb +105 -29
  22. data/spec/proc/to_source_from_multi_blocks_w_single_match_spec.rb +85 -17
  23. data/spec/proc_scanner/block_comment_spec.rb +59 -0
  24. data/spec/proc_scanner/double_colons_spec.rb +14 -0
  25. data/spec/proc_scanner/double_quote_str_w_interpolation_spec.rb +62 -0
  26. data/spec/proc_scanner/double_quote_str_wo_interpolation_spec.rb +75 -0
  27. data/spec/proc_scanner/heredoc_spec.rb +142 -0
  28. data/spec/proc_scanner/kw_do_alias1_spec.rb +87 -0
  29. data/spec/proc_scanner/kw_do_alias2_spec.rb +86 -0
  30. data/spec/proc_scanner/per_line_comment_spec.rb +34 -0
  31. data/spec/proc_scanner/single_quote_str_spec.rb +68 -0
  32. data/spec/proc_scanner/spec_helper.rb +33 -0
  33. data/spec/proc_scanner/to_proc_spec.rb +15 -0
  34. data/spec/spec_helper.rb +23 -0
  35. metadata +39 -10
  36. data/lib/sourcify/proc/counter.rb +0 -41
  37. data/lib/sourcify/proc/lexer.rb +0 -40
  38. data/lib/sourcify/proc/lexer18.rb +0 -237
  39. data/lib/sourcify/proc/lexer19.rb +0 -204
  40. data/spec/proc/misc_spec.rb +0 -16
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ rdoc
19
19
  pkg
20
20
 
21
21
  ## PROJECT::SPECIFIC
22
+ tmp
@@ -1,3 +1,14 @@
1
+ === 0.2.0 (Sep 10, 2010)
2
+
3
+ * use home-baked ragel-based scanner for scanning for proc code [#ngty]
4
+ * renamed Sourcify::LexerInternalError to Sourcify::ParserInternalError since
5
+ we are not using any lexer anymore [#ngty]
6
+ * introduces CannotParseEvalCodeError, CannotParseIrbCodeError &
7
+ CannotHandleCreatedOnTheFlyProcError to handle procs that there is no way
8
+ to extract code from [#ngty]
9
+ * tested against well known projects (eg. spree & redmine) to show that it is
10
+ indeed working [#ngty]
11
+
1
12
  === 0.1.2 (Aug 30, 2010)
2
13
 
3
14
  * introduced throwing of Sourcify::LexerInternalError when parser cannot handle
@@ -1,11 +1,11 @@
1
1
  = Sourcify
2
2
 
3
- *ParseTree* is great, it accesses the runtime AST (abstract syntax tree) and makes it
4
- possible to convert any object to ruby code & S-expression, BUT ParseTree doesn't work
5
- for 1.9.* & JRuby.
3
+ ParseTree[http://github.com/seattlerb/parsetree] is great, it accesses the runtime AST
4
+ (abstract syntax tree) and makes it possible to convert any object to ruby code &
5
+ S-expression, BUT ParseTree doesn't work for 1.9.* & JRuby.
6
6
 
7
- *RubyParser* is great, and it works for any rubies (of course, not 100% compatible for
8
- 1.9.* syntax yet), BUT it works only with static code.
7
+ RubyParser[http://github.com/seattlerb/ruby_parser] is great, and it works for any rubies
8
+ (of course, not 100% compatible for 1.9.* syntax yet), BUT it works only with static code.
9
9
 
10
10
  I truely enjoy using the above tools, but with my other projects, the absence of ParseTree
11
11
  on the different rubies is forcing me to hand-baked my own solution each time to extract
@@ -14,13 +14,10 @@ never perfect, and i'm reinventing the wheel each time just to address a particu
14
14
  pattern of usage (using regexp kungfu).
15
15
 
16
16
  Enough is enough, and now we have Sourcify, a unified solution to extract proc code.
17
- When ParseTree is available, it simply works as a wrapper round it, otherwise, it uses:
18
-
19
- * Ripper (part of the stdlib for 1.9.*), OR
20
- * RubyLex (under irb, which is part of the stdlib for any ruby)
21
-
22
- to extract the code, and does further processing with RubyParser & Ruby2Ruby to ensure
23
- 100% compatbility with ParseTree (yup, there is no denying that i really like ParseTree).
17
+ When ParseTree is available, it simply works as a wrapper round it, otherwise, it uses
18
+ a home-baked ragel-generated scanner to extract the proc code. Further processing
19
+ with RubyParser & Ruby2Ruby to ensure 100% with ParseTree (yup, there is no denying that
20
+ i really like ParseTree).
24
21
 
25
22
  == Installing It
26
23
 
@@ -79,25 +76,29 @@ consistency under 1.8.*:
79
76
 
80
77
  == Performance
81
78
 
82
- Performance is reasonable (but can always be improved on):
79
+ Performance is embarassing for now, benchmarking results for processing 500 procs
80
+ (in the ObjectSpace of an average rails project) yiels the following:
83
81
 
84
- ruby user system total real
85
- 1.8.7 (w ParseTree) 0.010000 0.000000 1.270000 1.273631
86
- 1.8.7 (w RubyLex) 0.000000 0.000000 1.640000 1.641778
87
- 1.9.1 (w Ripper) 0.000000 0.000000 1.070000 1.067248
88
- JRuby (w RubyLex) 5.054000 0.000000 5.054000 5.055000
82
+ ruby user system total real
83
+ ruby-1.8.7-p299 (w ParseTree) 10.270000 0.010000 10.280000 ( 10.311430)
84
+ ruby-1.8.7-p299 (static scanner) 14.120000 0.080000 14.200000 ( 14.283817)
85
+ ruby-1.9.1-p376 (static scanner) 17.380000 0.050000 17.430000 ( 17.405966)
86
+ jruby-1.5.2 (static scanner) 21.318000 0.000000 21.318000 ( 21.318000)
89
87
 
90
- It would be great if Ripper can be ported over to 1.8.* & JRuby (hint hint).
88
+ Since i'm still pretty new to ragel[http://www.complang.org/ragel], the code scanner will
89
+ probably become better & faster as my knowlegde & skills with ragel improve. Also,
90
+ instead of generating a pure ruby scanner, we can generate native code (eg. C or java, or
91
+ whatever) instead. As i'm a C & java noob, this will probably take some time to realize.
91
92
 
92
93
  == Gotchas
93
94
 
94
95
  Nothing beats ParseTree's ability to access the runtime AST, it is a very powerful feature.
95
- The lexer-based (static) implementations suffer the following gotchas:
96
+ The scanner-based (static) implementation suffer the following gotchas:
96
97
 
97
98
  === 1. The source code is everything
98
99
 
99
100
  Since static code analysis is involved, the subject code needs to physically exist within a
100
- file, meaning Proc#source_location must return the expected [file, lineno], the following
101
+ file, meaning Proc#source_location must return the expected *[file, lineno]*, the following
101
102
  will not work:
102
103
 
103
104
  def test
@@ -108,7 +109,23 @@ will not work:
108
109
  # >> ["(eval)", 1]
109
110
 
110
111
  puts test.to_source
111
- # >> `initialize': No such file or directory - (eval) (Errno::ENOENT)
112
+ # >> Sourcify::CannotParseEvalCodeError
113
+
114
+ The same applies to *Blah#to_proc* & *&:blah*:
115
+
116
+ klass = Class.new do
117
+ def aa(&block); block ; end
118
+ def bb; 1+2; end
119
+ end
120
+
121
+ klass.new.method(:bb).to_proc.to_source
122
+ # >> Sourcify::CannotHandleCreatedOnTheFlyProcError
123
+
124
+ klass.new.aa(&:bb).to_source
125
+ # >> Sourcify::CannotHandleCreatedOnTheFlyProcError
126
+
127
+ Also, irb code parsing doesn't work (yet), you will get Sourcify::CannotParseIrbCodeError
128
+ when attempting to do so.
112
129
 
113
130
  === 2. Multiple matching procs per line error
114
131
 
@@ -127,9 +144,10 @@ subject proc has arity that is unique from others:
127
144
 
128
145
  Using Proc#arity is a pretty good way to uniquely identify the subject proc, since having
129
146
  too many procs per line is not a good practice as it reduces readability. However, the
130
- following bug under 1.8.* may trip u over:
147
+ following bug[http://redmine.ruby-lang.org/issues/show/574] under 1.8.* may trip u over:
131
148
 
132
149
  lambda { }.arity # 1.8.* (-1) / 1.9.* (0) (?!)
150
+ lambda {|| }.arity # 1.8.* (0) / 1.9.* (0)
133
151
  lambda {|x| }.arity # 1.8.* (1) / 1.9.* (1)
134
152
  lambda {|x,y| }.arity # 1.8.* (2) / 1.9.* (2)
135
153
  lambda {|*x| }.arity # 1.8.* (-1) / 1.9.* (-1)
@@ -137,13 +155,19 @@ following bug under 1.8.* may trip u over:
137
155
  lambda {|(x,y)| }.arity # 1.8.* (1) / 1.9.* (1)
138
156
 
139
157
  This is another reason to install ParseTree when u are on 1.8.*. On JRuby, where u don't
140
- have the choice, just avoid multiple procs here line.
158
+ have the choice, just avoid multiple procs per line.
159
+
160
+ == Is it working ??
161
+
162
+ Besides its own spec suite, sourcify has been tested to handle:
163
+
164
+ ObjectSpace.each_object(Proc) {|o| puts o.to_source }
141
165
 
142
- === 3. Imperfect lexer
166
+ For projects:
167
+ * Spree[http://github.com/railsdog/spree] (ruby-1.8.7-p299, ruby-1.9.1-p376 & jruby-1.5.2)
168
+ * Redmine[http://github.com/edavis10/redmine] (ruby-1.8.7-p299, ruby-1.9.1-p376 & jruby-1.5.2)
143
169
 
144
- Nothing is perfect, bugs are always lurking somewhere. When the parser encounters
145
- unexpected lexing error (which may be due to Ripper, RubyLex, or Sourcify's wrapper lexer),
146
- Sourcify::LexerInternalError is thrown.
170
+ (TODO: the more the merrier)
147
171
 
148
172
  == Additional Resources
149
173
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.2.0
@@ -10,4 +10,16 @@ rescue LoadError
10
10
  require 'file/tail'
11
11
  end
12
12
 
13
- require 'sourcify/proc'
13
+ module Sourcify
14
+
15
+ ROOT = File.dirname(File.expand_path(__FILE__))
16
+
17
+ class << self
18
+ def require_rb(*args)
19
+ require File.join(ROOT, 'sourcify', *args)
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ Sourcify.require_rb('proc')
@@ -1,7 +1,10 @@
1
1
  module Sourcify
2
2
 
3
- class MultipleMatchingProcsPerLineError < Exception ; end
4
- class LexerInternalError < Exception ; end
3
+ class MultipleMatchingProcsPerLineError < Exception; end
4
+ class ParserInternalError < Exception; end
5
+ class CannotParseEvalCodeError < Exception; end
6
+ class CannotParseIrbCodeError < Exception; end
7
+ class CannotHandleCreatedOnTheFlyProcError < Exception; end
5
8
 
6
9
  module Proc
7
10
 
@@ -29,14 +32,14 @@ module Sourcify
29
32
 
30
33
  unless meths.include?('to_source')
31
34
  def to_source
32
- require 'sourcify/proc/parser'
35
+ Sourcify.require_rb('proc', 'parser')
33
36
  (@parser ||= Parser.new(self)).source
34
37
  end
35
38
  end
36
39
 
37
40
  unless meths.include?('to_sexp')
38
41
  def to_sexp
39
- require 'sourcify/proc/parser'
42
+ Sourcify.require_rb('proc', 'parser')
40
43
  (@parser ||= Parser.new(self)).sexp
41
44
  end
42
45
  end
@@ -1,5 +1,4 @@
1
- require 'sourcify/proc/lexer'
2
- require 'sourcify/proc/counter'
1
+ Sourcify.require_rb('proc', 'scanner')
3
2
 
4
3
  module Sourcify
5
4
  module Proc
@@ -8,75 +7,145 @@ module Sourcify
8
7
  RUBY_PARSER = RubyParser.new
9
8
  RUBY_2_RUBY = Ruby2Ruby.new
10
9
 
10
+ IS_19x = RUBY_VERSION.include?('1.9.')
11
+ IS_JAVA = RUBY_PLATFORM =~ /java/i
12
+ SYMBOL_TO_PROC_SRC = '/lib/ruby/site_ruby/shared/builtin/core_ext/symbol.rb'
13
+
11
14
  def initialize(_proc)
12
- @binding, @arity = _proc.binding, _proc.arity
13
- @file, @line = _proc.source_location
15
+ @arity, @source_code = _proc.arity, SourceCode.new(*_proc.source_location)
16
+ assert_proc_has_static_code_block!
17
+ @binding = _proc.binding # this must come after the above assertion
18
+ case @source_code.file
19
+ when /\(eval\)/ then raise CannotParseEvalCodeError
20
+ when /\(irb\)/ then raise CannotParseIrbCodeError
21
+ end
14
22
  end
15
23
 
16
24
  def source
17
- RUBY_2_RUBY.process(Sexp.from_array(sexp.to_a))
25
+ @source ||= RUBY_2_RUBY.process(Sexp.from_array(sexp.to_a))
18
26
  end
19
27
 
20
28
  def sexp
21
29
  @sexp ||= (
22
- raw_sexp = RUBY_PARSER.parse(raw_source, @file)
23
- Sexp.from_array(replace_with_lvars(raw_sexp.to_a))
30
+ raw_sexp = RUBY_PARSER.parse(raw_source, @source_code.file)
31
+ Sexp.from_array(Normalizer.process(raw_sexp, @binding))
24
32
  )
25
33
  end
26
34
 
27
35
  private
28
36
 
29
- def raw_source
30
- @raw_source ||=
31
- if (frags = raw_source_frags).size > 1
32
- raise MultipleMatchingProcsPerLineError
33
- else
34
- 'proc %s' % frags[0]
37
+ def assert_proc_has_static_code_block!
38
+ if IS_19x
39
+ # In 1.9.* Proc#source_location.nil? implies dynamic proc, without source
40
+ # location, parsing is impossible
41
+ raise CannotHandleCreatedOnTheFlyProcError unless @source_code.file
42
+ elsif IS_JAVA
43
+ # In JRuby, &:blah creates a proc with
44
+ # */ruby/site_ruby/shared/builtin/core_ext/symbol.rb as file location
45
+ if @source_code.file.end_with?(SYMBOL_TO_PROC_SRC) or @arity.zero?
46
+ raise CannotHandleCreatedOnTheFlyProcError
35
47
  end
48
+ elsif @arity.zero?
49
+ # In 1.8.*, Proc#arity returns -1 for zero & single optional arg, thus,
50
+ # Proc#arity.zero? implies dynamic proc generated by Method#to_proc ..
51
+ raise CannotHandleCreatedOnTheFlyProcError
52
+ end
36
53
  end
37
54
 
38
- def raw_source_frags
39
- Sourcify::Proc::Lexer.new(raw_source_io, @file, @line).work.select do |frag|
55
+ def raw_source
56
+ CodeScanner.process(@source_code) do |code|
40
57
  begin
41
- eval('proc ' + frag).arity == @arity
42
- rescue SyntaxError, TypeError
43
- raise LexerInternalError
58
+ if IS_19x or IS_JAVA or @arity != -1
59
+ # NOTE: we won't have dynamic proc problem on 1.9.* & jruby, and when arity
60
+ # is NOT -1 (can be zero or single optional arity for 1.8.*)
61
+ code == :symbol_to_proc ? false : (eval(code).arity == @arity)
62
+ elsif code == :symbol_to_proc
63
+ true if @arity == -1
64
+ else
65
+ eval(code).arity == @arity
66
+ end
67
+ rescue Exception
68
+ raise ParserInternalError
44
69
  end
45
70
  end
46
71
  end
47
72
 
48
- def raw_source_io
49
- File.open(@file, 'r') do |fh|
50
- fh.extend(File::Tail).forward(@line.pred)
51
- StringIO.new(fh.readlines.join, 'r')
73
+ class Normalizer
74
+ class << self
75
+
76
+ def process(sexp, binding)
77
+ @binding = binding
78
+ fix_no_arg_method_calls(sexp.to_a)
79
+ end
80
+
81
+ def fix_no_arg_method_calls(array)
82
+ return array if [:class, :sclass, :defn, :module].include?(array[0])
83
+ array.map do |e|
84
+ if e.is_a?(Array)
85
+ no_arg_method_call?(e) or fix_no_arg_method_calls(e)
86
+ else
87
+ e
88
+ end
89
+ end
90
+ end
91
+
92
+ def no_arg_method_call?(e)
93
+ if like_no_arg_method_call?(e)
94
+ bounded_var?(var = e[2]) ? [:lvar, var] : e
95
+ end
96
+ end
97
+
98
+ def like_no_arg_method_call?(e)
99
+ e.size == 4 && e[0..1] == [:call, nil] &&
100
+ e[3] == [:arglist] && (var = e[2]).is_a?(Symbol)
101
+ end
102
+
103
+ def bounded_var?(var)
104
+ qvar = (@q ||= (IS_19x ? ":%s" : "'%s'")) % var
105
+ @binding.eval("local_variables.include?(#{qvar})")
106
+ end
107
+
52
108
  end
53
109
  end
54
110
 
55
- def replace_with_lvars(array)
56
- return array if [:class, :sclass, :defn, :module].include?(array[0])
57
- array.map do |e|
58
- if e.is_a?(Array)
59
- no_arg_method_call_or_lvar(e) or replace_with_lvars(e)
60
- else
61
- e
111
+ class CodeScanner
112
+ class << self
113
+
114
+ def process(source_code, &matcher)
115
+ result = rscan(source_code.to_s, false).flatten.select(&matcher)
116
+ case result.size
117
+ when 1
118
+ raise CannotHandleCreatedOnTheFlyProcError if result[0] == :symbol_to_proc
119
+ ("\n" * source_code.line) + result[0]
120
+ else
121
+ raise MultipleMatchingProcsPerLineError
122
+ end
123
+ end
124
+
125
+ def rscan(str, stop_on_newline)
126
+ (Scanner.process(str, stop_on_newline) || []).map do |outer|
127
+ inner = outer.is_a?(Symbol) ? [] : rscan(outer.sub(/^proc\s*(do|\{)/,''), true)
128
+ [outer, inner]
129
+ end
62
130
  end
131
+
63
132
  end
64
133
  end
65
134
 
66
- def no_arg_method_call_or_lvar(e)
67
- if represents_no_arg_call?(e)
68
- has_as_local_var?(var = e[2]) ? [:lvar, var] : e
135
+ class SourceCode < Struct.new(:file, :line)
136
+
137
+ def line
138
+ super.pred
69
139
  end
70
- end
71
140
 
72
- def represents_no_arg_call?(e)
73
- e.size == 4 && e[0..1] == [:call, nil] &&
74
- e[3] == [:arglist] && (var = e[2]).is_a?(Symbol)
75
- end
141
+ def to_s
142
+ File.open(file, 'r') do |fh|
143
+ fh.extend(File::Tail)
144
+ fh.forward(line)
145
+ fh.readlines.join
146
+ end
147
+ end
76
148
 
77
- def has_as_local_var?(var)
78
- qvar = (@q ||= (RUBY_VERSION.include?('1.9.') ? ":%s" : "'%s'")) % var
79
- @binding.eval("local_variables.include?(#{qvar})")
80
149
  end
81
150
 
82
151
  end
@@ -0,0 +1,2140 @@
1
+
2
+ # line 1 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
3
+ Sourcify.require_rb('proc', 'scanner', 'extensions')
4
+
5
+ module Sourcify
6
+ module Proc
7
+ module Scanner #:nodoc:all
8
+
9
+
10
+ # line 271 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
11
+
12
+
13
+ # line 2 "./spec/proc/../../lib/sourcify/proc/scanner.rb"
14
+ class << self
15
+ attr_accessor :_proc_scanner_actions
16
+ private :_proc_scanner_actions, :_proc_scanner_actions=
17
+ end
18
+ self._proc_scanner_actions = [
19
+ 0, 1, 0, 1, 2, 1, 3, 1,
20
+ 4, 1, 5, 1, 6, 1, 7, 1,
21
+ 8, 1, 9, 1, 10, 1, 11, 1,
22
+ 13, 1, 15, 1, 16, 1, 17, 1,
23
+ 18, 1, 25, 1, 26, 1, 27, 1,
24
+ 28, 1, 29, 1, 30, 1, 31, 1,
25
+ 32, 1, 33, 1, 34, 1, 35, 1,
26
+ 36, 1, 37, 1, 38, 1, 39, 1,
27
+ 40, 1, 41, 1, 42, 1, 43, 1,
28
+ 44, 1, 45, 1, 46, 1, 47, 1,
29
+ 48, 1, 49, 1, 50, 1, 51, 1,
30
+ 52, 1, 53, 2, 0, 1, 2, 3,
31
+ 12, 2, 3, 14, 2, 3, 19, 2,
32
+ 3, 20, 2, 3, 21, 2, 3, 22,
33
+ 2, 3, 23, 2, 3, 24
34
+ ]
35
+
36
+ class << self
37
+ attr_accessor :_proc_scanner_key_offsets
38
+ private :_proc_scanner_key_offsets, :_proc_scanner_key_offsets=
39
+ end
40
+ self._proc_scanner_key_offsets = [
41
+ 0, 0, 1, 2, 3, 4, 5, 6,
42
+ 9, 13, 15, 17, 20, 23, 27, 30,
43
+ 33, 37, 39, 41, 44, 47, 51, 54,
44
+ 56, 57, 58, 60, 62, 65, 69, 71,
45
+ 73, 76, 79, 83, 86, 89, 93, 95,
46
+ 97, 100, 103, 107, 110, 113, 117, 119,
47
+ 121, 124, 127, 131, 134, 137, 141, 143,
48
+ 145, 148, 151, 155, 158, 161, 165, 167,
49
+ 169, 172, 175, 179, 182, 185, 189, 191,
50
+ 193, 196, 199, 203, 206, 209, 213, 215,
51
+ 217, 220, 223, 227, 230, 233, 237, 239,
52
+ 241, 244, 247, 251, 254, 257, 261, 263,
53
+ 265, 268, 271, 275, 278, 281, 285, 287,
54
+ 289, 292, 295, 299, 302, 305, 309, 311,
55
+ 313, 316, 319, 323, 326, 329, 333, 335,
56
+ 337, 340, 343, 347, 350, 353, 357, 359,
57
+ 361, 364, 367, 371, 374, 377, 381, 383,
58
+ 385, 388, 391, 395, 398, 401, 405, 407,
59
+ 409, 412, 415, 419, 422, 425, 429, 431,
60
+ 433, 436, 439, 443, 446, 449, 453, 455,
61
+ 457, 460, 463, 467, 470, 498, 501, 505,
62
+ 507, 509, 512, 515, 519, 522, 524, 527,
63
+ 530, 534, 536, 538, 541, 544, 548, 551,
64
+ 554, 558, 560, 562, 565, 568, 572, 575,
65
+ 578, 582, 584, 586, 589, 592, 596, 599,
66
+ 602, 606, 608, 610, 613, 616, 620, 623,
67
+ 626, 630, 632, 634, 637, 640, 644, 647,
68
+ 650, 654, 656, 658, 661, 664, 668, 671,
69
+ 699, 701, 702, 703, 705, 707, 709, 710,
70
+ 711, 713, 715, 717, 718, 719, 721, 723,
71
+ 725, 726, 727, 729, 731, 733, 734, 735,
72
+ 737, 739, 741, 742, 743, 745, 747, 749,
73
+ 750, 751, 753, 755, 757, 758, 759, 761,
74
+ 763, 765, 766, 767, 769, 771, 773, 774,
75
+ 775, 777, 779, 781, 782, 783, 785, 787,
76
+ 789, 790, 791, 793, 795, 797, 798, 799,
77
+ 801, 803, 805, 806, 807, 809, 811, 813,
78
+ 814, 815, 817, 819, 821, 822, 823, 825,
79
+ 827, 829, 830, 831, 833, 835, 837, 838,
80
+ 839, 841, 843, 845, 846, 847, 849, 851,
81
+ 853, 854, 855, 857, 859, 861, 862, 863,
82
+ 865, 867, 869, 870, 872, 874, 875, 876,
83
+ 878, 879, 880, 882, 884, 886, 887, 888,
84
+ 890, 892, 894, 895, 896, 898, 900, 902,
85
+ 903, 904, 906, 908, 910, 911, 912, 914,
86
+ 916, 918, 919, 920, 922, 924, 929, 930,
87
+ 934, 942, 947, 958, 959, 960, 964, 974,
88
+ 981, 985, 986, 987, 988, 995, 996, 997,
89
+ 998, 999, 1000, 1012, 1017, 1018, 1019, 1020,
90
+ 1021, 1028, 1029, 1030, 1031, 1033, 1034, 1035,
91
+ 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1044,
92
+ 1046, 1048, 1050, 1051, 1052, 1064, 1090, 1094,
93
+ 1095, 1098, 1101, 1135, 1138, 1139, 1142, 1145,
94
+ 1148, 1151, 1154, 1157, 1160, 1163, 1166, 1169,
95
+ 1172, 1175, 1178, 1181, 1184, 1187, 1190, 1193,
96
+ 1196, 1197, 1200, 1203, 1206, 1209, 1212, 1215,
97
+ 1217, 1219, 1221, 1223, 1225, 1227, 1229, 1231,
98
+ 1233, 1235, 1237, 1239, 1241, 1243, 1245, 1247,
99
+ 1249, 1251, 1253, 1255, 1257, 1259, 1260, 1262,
100
+ 1264, 1266, 1268, 1270, 1272, 1273, 1280, 1282,
101
+ 1285, 1290, 1298, 1305, 1306, 1307, 1315, 1316,
102
+ 1324, 1327, 1336, 1345, 1354, 1363, 1372, 1381,
103
+ 1393, 1397, 1398, 1400, 1405, 1406, 1407, 1408,
104
+ 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416,
105
+ 1417, 1418, 1419
106
+ ]
107
+
108
+ class << self
109
+ attr_accessor :_proc_scanner_trans_keys
110
+ private :_proc_scanner_trans_keys, :_proc_scanner_trans_keys=
111
+ end
112
+ self._proc_scanner_trans_keys = [
113
+ 98, 101, 103, 105, 110, 10, 34, 35,
114
+ 92, 34, 35, 92, 123, 34, 35, 34,
115
+ 35, 34, 35, 123, 34, 35, 92, 34,
116
+ 35, 92, 123, 34, 35, 92, 33, 35,
117
+ 92, 33, 35, 92, 123, 33, 35, 33,
118
+ 35, 33, 35, 123, 33, 35, 92, 33,
119
+ 35, 92, 123, 33, 35, 92, 35, 92,
120
+ 35, 35, 35, 92, 35, 92, 35, 36,
121
+ 92, 35, 36, 92, 123, 35, 36, 35,
122
+ 36, 35, 36, 123, 35, 36, 92, 35,
123
+ 36, 92, 123, 35, 36, 92, 35, 37,
124
+ 92, 35, 37, 92, 123, 35, 37, 35,
125
+ 37, 35, 37, 123, 35, 37, 92, 35,
126
+ 37, 92, 123, 35, 37, 92, 35, 38,
127
+ 92, 35, 38, 92, 123, 35, 38, 35,
128
+ 38, 35, 38, 123, 35, 38, 92, 35,
129
+ 38, 92, 123, 35, 38, 92, 35, 39,
130
+ 92, 35, 39, 92, 123, 35, 39, 35,
131
+ 39, 35, 39, 123, 35, 39, 92, 35,
132
+ 39, 92, 123, 35, 39, 92, 35, 41,
133
+ 92, 35, 41, 92, 123, 35, 41, 35,
134
+ 41, 35, 41, 123, 35, 41, 92, 35,
135
+ 41, 92, 123, 35, 41, 92, 35, 42,
136
+ 92, 35, 42, 92, 123, 35, 42, 35,
137
+ 42, 35, 42, 123, 35, 42, 92, 35,
138
+ 42, 92, 123, 35, 42, 92, 35, 43,
139
+ 92, 35, 43, 92, 123, 35, 43, 35,
140
+ 43, 35, 43, 123, 35, 43, 92, 35,
141
+ 43, 92, 123, 35, 43, 92, 35, 44,
142
+ 92, 35, 44, 92, 123, 35, 44, 35,
143
+ 44, 35, 44, 123, 35, 44, 92, 35,
144
+ 44, 92, 123, 35, 44, 92, 35, 45,
145
+ 92, 35, 45, 92, 123, 35, 45, 35,
146
+ 45, 35, 45, 123, 35, 45, 92, 35,
147
+ 45, 92, 123, 35, 45, 92, 35, 46,
148
+ 92, 35, 46, 92, 123, 35, 46, 35,
149
+ 46, 35, 46, 123, 35, 46, 92, 35,
150
+ 46, 92, 123, 35, 46, 92, 35, 47,
151
+ 92, 35, 47, 92, 123, 35, 47, 35,
152
+ 47, 35, 47, 123, 35, 47, 92, 35,
153
+ 47, 92, 123, 35, 47, 92, 35, 58,
154
+ 92, 35, 58, 92, 123, 35, 58, 35,
155
+ 58, 35, 58, 123, 35, 58, 92, 35,
156
+ 58, 92, 123, 35, 58, 92, 35, 59,
157
+ 92, 35, 59, 92, 123, 35, 59, 35,
158
+ 59, 35, 59, 123, 35, 59, 92, 35,
159
+ 59, 92, 123, 35, 59, 92, 35, 62,
160
+ 92, 35, 62, 92, 123, 35, 62, 35,
161
+ 62, 35, 62, 123, 35, 62, 92, 35,
162
+ 62, 92, 123, 35, 62, 92, 35, 61,
163
+ 92, 35, 61, 92, 123, 35, 61, 35,
164
+ 61, 35, 61, 123, 35, 61, 92, 35,
165
+ 61, 92, 123, 35, 61, 92, 35, 63,
166
+ 92, 35, 63, 92, 123, 35, 63, 35,
167
+ 63, 35, 63, 123, 35, 63, 92, 35,
168
+ 63, 92, 123, 35, 63, 92, 35, 64,
169
+ 92, 35, 64, 92, 123, 35, 64, 35,
170
+ 64, 35, 64, 123, 35, 64, 92, 35,
171
+ 64, 92, 123, 35, 64, 92, 33, 34,
172
+ 35, 36, 37, 38, 39, 40, 42, 43,
173
+ 44, 45, 46, 47, 58, 59, 60, 61,
174
+ 63, 64, 91, 92, 94, 95, 96, 123,
175
+ 124, 126, 35, 92, 93, 35, 92, 93,
176
+ 123, 35, 93, 35, 93, 35, 93, 123,
177
+ 35, 92, 93, 35, 92, 93, 123, 35,
178
+ 92, 93, 35, 92, 35, 92, 123, 35,
179
+ 92, 94, 35, 92, 94, 123, 35, 94,
180
+ 35, 94, 35, 94, 123, 35, 92, 94,
181
+ 35, 92, 94, 123, 35, 92, 94, 35,
182
+ 92, 95, 35, 92, 95, 123, 35, 95,
183
+ 35, 95, 35, 95, 123, 35, 92, 95,
184
+ 35, 92, 95, 123, 35, 92, 95, 35,
185
+ 92, 96, 35, 92, 96, 123, 35, 96,
186
+ 35, 96, 35, 96, 123, 35, 92, 96,
187
+ 35, 92, 96, 123, 35, 92, 96, 35,
188
+ 92, 125, 35, 92, 123, 125, 35, 125,
189
+ 35, 125, 35, 123, 125, 35, 92, 125,
190
+ 35, 92, 123, 125, 35, 92, 125, 35,
191
+ 92, 124, 35, 92, 123, 124, 35, 124,
192
+ 35, 124, 35, 123, 124, 35, 92, 124,
193
+ 35, 92, 123, 124, 35, 92, 124, 35,
194
+ 92, 126, 35, 92, 123, 126, 35, 126,
195
+ 35, 126, 35, 123, 126, 35, 92, 126,
196
+ 35, 92, 123, 126, 35, 92, 126, 33,
197
+ 34, 35, 36, 37, 38, 39, 40, 42,
198
+ 43, 44, 45, 46, 47, 58, 59, 60,
199
+ 61, 63, 64, 91, 92, 94, 95, 96,
200
+ 123, 124, 126, 33, 92, 33, 33, 33,
201
+ 92, 33, 92, 34, 92, 34, 34, 34,
202
+ 92, 34, 92, 35, 92, 35, 35, 35,
203
+ 92, 35, 92, 36, 92, 36, 36, 36,
204
+ 92, 36, 92, 37, 92, 37, 37, 37,
205
+ 92, 37, 92, 38, 92, 38, 38, 38,
206
+ 92, 38, 92, 39, 92, 39, 39, 39,
207
+ 92, 39, 92, 41, 92, 41, 41, 41,
208
+ 92, 41, 92, 42, 92, 42, 42, 42,
209
+ 92, 42, 92, 43, 92, 43, 43, 43,
210
+ 92, 43, 92, 44, 92, 44, 44, 44,
211
+ 92, 44, 92, 45, 92, 45, 45, 45,
212
+ 92, 45, 92, 46, 92, 46, 46, 46,
213
+ 92, 46, 92, 47, 92, 47, 47, 47,
214
+ 92, 47, 92, 58, 92, 58, 58, 58,
215
+ 92, 58, 92, 59, 92, 59, 59, 59,
216
+ 92, 59, 92, 62, 92, 62, 62, 62,
217
+ 92, 62, 92, 61, 92, 61, 61, 61,
218
+ 92, 61, 92, 63, 92, 63, 63, 63,
219
+ 92, 63, 92, 64, 92, 64, 64, 64,
220
+ 92, 64, 92, 92, 93, 93, 93, 92,
221
+ 93, 92, 93, 41, 92, 92, 41, 92,
222
+ 41, 92, 92, 92, 92, 94, 94, 94,
223
+ 92, 94, 92, 94, 92, 95, 95, 95,
224
+ 92, 95, 92, 95, 92, 96, 96, 96,
225
+ 92, 96, 92, 96, 92, 125, 125, 125,
226
+ 92, 125, 92, 125, 92, 124, 124, 124,
227
+ 92, 124, 92, 124, 92, 126, 126, 126,
228
+ 92, 126, 92, 126, 95, 65, 90, 97,
229
+ 122, 58, 65, 90, 97, 122, 34, 39,
230
+ 45, 95, 65, 90, 97, 122, 95, 65,
231
+ 90, 97, 122, 10, 34, 39, 58, 95,
232
+ 48, 57, 65, 90, 97, 122, 10, 58,
233
+ 65, 90, 97, 122, 10, 34, 39, 95,
234
+ 48, 57, 65, 90, 97, 122, 34, 39,
235
+ 95, 65, 90, 97, 122, 65, 90, 97,
236
+ 122, 103, 105, 110, 95, 48, 57, 65,
237
+ 90, 97, 122, 115, 101, 97, 115, 115,
238
+ 9, 32, 60, 95, 11, 13, 48, 57,
239
+ 65, 90, 97, 122, 9, 32, 60, 11,
240
+ 13, 60, 10, 102, 114, 95, 48, 57,
241
+ 65, 90, 97, 122, 100, 117, 108, 108,
242
+ 116, 101, 115, 115, 105, 108, 105, 108,
243
+ 101, 10, 10, 61, 10, 101, 10, 110,
244
+ 10, 100, 10, 10, 33, 39, 41, 47,
245
+ 58, 59, 61, 64, 92, 96, 124, 126,
246
+ 10, 32, 34, 35, 37, 38, 39, 40,
247
+ 44, 47, 58, 59, 60, 61, 96, 100,
248
+ 101, 116, 123, 125, 9, 13, 65, 90,
249
+ 95, 122, 9, 32, 11, 13, 61, 34,
250
+ 35, 92, 34, 35, 92, 33, 34, 35,
251
+ 36, 37, 38, 39, 40, 42, 43, 44,
252
+ 45, 46, 47, 58, 59, 60, 61, 63,
253
+ 64, 81, 87, 91, 92, 94, 95, 96,
254
+ 113, 114, 119, 120, 123, 124, 126, 33,
255
+ 35, 92, 123, 35, 92, 123, 35, 36,
256
+ 92, 35, 37, 92, 35, 38, 92, 35,
257
+ 39, 92, 35, 41, 92, 35, 42, 92,
258
+ 35, 43, 92, 35, 44, 92, 35, 45,
259
+ 92, 35, 46, 92, 35, 47, 92, 35,
260
+ 58, 92, 35, 59, 92, 35, 62, 92,
261
+ 35, 61, 92, 35, 63, 92, 35, 64,
262
+ 92, 35, 92, 93, 92, 35, 92, 94,
263
+ 35, 92, 95, 35, 92, 96, 35, 92,
264
+ 125, 35, 92, 124, 35, 92, 126, 33,
265
+ 92, 34, 92, 35, 92, 36, 92, 37,
266
+ 92, 38, 92, 39, 92, 41, 92, 42,
267
+ 92, 43, 92, 44, 92, 45, 92, 46,
268
+ 92, 47, 92, 58, 92, 59, 92, 62,
269
+ 92, 61, 92, 63, 92, 64, 92, 92,
270
+ 93, 41, 92, 92, 92, 94, 92, 95,
271
+ 92, 96, 92, 125, 92, 124, 92, 126,
272
+ 58, 95, 48, 57, 65, 90, 97, 122,
273
+ 39, 92, 35, 47, 92, 95, 65, 90,
274
+ 97, 122, 58, 95, 48, 57, 65, 90,
275
+ 97, 122, 95, 48, 57, 65, 90, 97,
276
+ 122, 60, 62, 58, 95, 48, 57, 65,
277
+ 90, 97, 122, 58, 58, 95, 48, 57,
278
+ 65, 90, 97, 122, 35, 92, 96, 58,
279
+ 95, 111, 48, 57, 65, 90, 97, 122,
280
+ 58, 95, 110, 48, 57, 65, 90, 97,
281
+ 122, 58, 95, 100, 48, 57, 65, 90,
282
+ 97, 122, 58, 95, 104, 48, 57, 65,
283
+ 90, 97, 122, 58, 95, 101, 48, 57,
284
+ 65, 90, 97, 122, 58, 95, 110, 48,
285
+ 57, 65, 90, 97, 122, 9, 32, 98,
286
+ 99, 100, 102, 105, 109, 117, 119, 11,
287
+ 13, 9, 32, 11, 13, 101, 97, 108,
288
+ 9, 32, 60, 11, 13, 10, 60, 101,
289
+ 111, 102, 111, 110, 104, 10, 10, 10,
290
+ 10, 10, 10, 33, 39, 41, 47, 58,
291
+ 59, 61, 64, 92, 96, 124, 126, 0
292
+ ]
293
+
294
+ class << self
295
+ attr_accessor :_proc_scanner_single_lengths
296
+ private :_proc_scanner_single_lengths, :_proc_scanner_single_lengths=
297
+ end
298
+ self._proc_scanner_single_lengths = [
299
+ 0, 1, 1, 1, 1, 1, 1, 3,
300
+ 4, 2, 2, 3, 3, 4, 3, 3,
301
+ 4, 2, 2, 3, 3, 4, 3, 2,
302
+ 1, 1, 2, 2, 3, 4, 2, 2,
303
+ 3, 3, 4, 3, 3, 4, 2, 2,
304
+ 3, 3, 4, 3, 3, 4, 2, 2,
305
+ 3, 3, 4, 3, 3, 4, 2, 2,
306
+ 3, 3, 4, 3, 3, 4, 2, 2,
307
+ 3, 3, 4, 3, 3, 4, 2, 2,
308
+ 3, 3, 4, 3, 3, 4, 2, 2,
309
+ 3, 3, 4, 3, 3, 4, 2, 2,
310
+ 3, 3, 4, 3, 3, 4, 2, 2,
311
+ 3, 3, 4, 3, 3, 4, 2, 2,
312
+ 3, 3, 4, 3, 3, 4, 2, 2,
313
+ 3, 3, 4, 3, 3, 4, 2, 2,
314
+ 3, 3, 4, 3, 3, 4, 2, 2,
315
+ 3, 3, 4, 3, 3, 4, 2, 2,
316
+ 3, 3, 4, 3, 3, 4, 2, 2,
317
+ 3, 3, 4, 3, 3, 4, 2, 2,
318
+ 3, 3, 4, 3, 3, 4, 2, 2,
319
+ 3, 3, 4, 3, 28, 3, 4, 2,
320
+ 2, 3, 3, 4, 3, 2, 3, 3,
321
+ 4, 2, 2, 3, 3, 4, 3, 3,
322
+ 4, 2, 2, 3, 3, 4, 3, 3,
323
+ 4, 2, 2, 3, 3, 4, 3, 3,
324
+ 4, 2, 2, 3, 3, 4, 3, 3,
325
+ 2, 2, 2, 1, 3, 2, 3, 3,
326
+ 4, 2, 2, 3, 3, 4, 3, 28,
327
+ 2, 1, 1, 2, 2, 2, 1, 1,
328
+ 2, 2, 2, 1, 1, 2, 2, 2,
329
+ 1, 1, 2, 2, 2, 1, 1, 2,
330
+ 2, 2, 1, 1, 2, 2, 2, 1,
331
+ 1, 2, 2, 2, 1, 1, 2, 2,
332
+ 2, 1, 1, 2, 2, 2, 1, 1,
333
+ 2, 2, 2, 1, 1, 2, 2, 2,
334
+ 1, 1, 2, 2, 2, 1, 1, 2,
335
+ 2, 2, 1, 1, 2, 2, 2, 1,
336
+ 1, 2, 2, 2, 1, 1, 2, 2,
337
+ 2, 1, 1, 2, 2, 2, 1, 1,
338
+ 2, 2, 2, 1, 1, 2, 2, 2,
339
+ 1, 1, 2, 2, 2, 1, 1, 2,
340
+ 2, 2, 1, 2, 2, 1, 1, 2,
341
+ 1, 1, 2, 2, 2, 1, 1, 2,
342
+ 2, 2, 1, 1, 2, 2, 2, 1,
343
+ 1, 2, 2, 2, 1, 1, 2, 2,
344
+ 2, 1, 1, 2, 2, 1, 1, 0,
345
+ 4, 1, 5, 1, 1, 0, 4, 3,
346
+ 0, 1, 1, 1, 1, 1, 1, 1,
347
+ 1, 1, 4, 3, 1, 1, 1, 1,
348
+ 1, 1, 1, 1, 2, 1, 1, 1,
349
+ 1, 1, 1, 1, 1, 1, 2, 2,
350
+ 2, 2, 1, 1, 0, 20, 2, 1,
351
+ 3, 3, 34, 3, 1, 3, 3, 3,
352
+ 3, 3, 3, 3, 3, 3, 3, 3,
353
+ 3, 3, 3, 3, 3, 3, 3, 3,
354
+ 1, 3, 3, 3, 3, 3, 3, 2,
355
+ 2, 2, 2, 2, 2, 2, 2, 2,
356
+ 2, 2, 2, 2, 2, 2, 2, 2,
357
+ 2, 2, 2, 2, 2, 1, 2, 2,
358
+ 2, 2, 2, 2, 1, 1, 2, 3,
359
+ 1, 2, 1, 1, 1, 2, 1, 2,
360
+ 3, 3, 3, 3, 3, 3, 3, 10,
361
+ 2, 1, 2, 3, 1, 1, 1, 1,
362
+ 1, 1, 1, 1, 1, 1, 1, 1,
363
+ 1, 1, 0
364
+ ]
365
+
366
+ class << self
367
+ attr_accessor :_proc_scanner_range_lengths
368
+ private :_proc_scanner_range_lengths, :_proc_scanner_range_lengths=
369
+ end
370
+ self._proc_scanner_range_lengths = [
371
+ 0, 0, 0, 0, 0, 0, 0, 0,
372
+ 0, 0, 0, 0, 0, 0, 0, 0,
373
+ 0, 0, 0, 0, 0, 0, 0, 0,
374
+ 0, 0, 0, 0, 0, 0, 0, 0,
375
+ 0, 0, 0, 0, 0, 0, 0, 0,
376
+ 0, 0, 0, 0, 0, 0, 0, 0,
377
+ 0, 0, 0, 0, 0, 0, 0, 0,
378
+ 0, 0, 0, 0, 0, 0, 0, 0,
379
+ 0, 0, 0, 0, 0, 0, 0, 0,
380
+ 0, 0, 0, 0, 0, 0, 0, 0,
381
+ 0, 0, 0, 0, 0, 0, 0, 0,
382
+ 0, 0, 0, 0, 0, 0, 0, 0,
383
+ 0, 0, 0, 0, 0, 0, 0, 0,
384
+ 0, 0, 0, 0, 0, 0, 0, 0,
385
+ 0, 0, 0, 0, 0, 0, 0, 0,
386
+ 0, 0, 0, 0, 0, 0, 0, 0,
387
+ 0, 0, 0, 0, 0, 0, 0, 0,
388
+ 0, 0, 0, 0, 0, 0, 0, 0,
389
+ 0, 0, 0, 0, 0, 0, 0, 0,
390
+ 0, 0, 0, 0, 0, 0, 0, 0,
391
+ 0, 0, 0, 0, 0, 0, 0, 0,
392
+ 0, 0, 0, 0, 0, 0, 0, 0,
393
+ 0, 0, 0, 0, 0, 0, 0, 0,
394
+ 0, 0, 0, 0, 0, 0, 0, 0,
395
+ 0, 0, 0, 0, 0, 0, 0, 0,
396
+ 0, 0, 0, 0, 0, 0, 0, 0,
397
+ 1, 0, 0, 1, 0, 1, 0, 0,
398
+ 0, 0, 0, 0, 0, 0, 0, 0,
399
+ 0, 0, 0, 0, 0, 0, 0, 0,
400
+ 0, 0, 0, 0, 0, 0, 0, 0,
401
+ 0, 0, 0, 0, 0, 0, 0, 0,
402
+ 0, 0, 0, 0, 0, 0, 0, 0,
403
+ 0, 0, 0, 0, 0, 0, 0, 0,
404
+ 0, 0, 0, 0, 0, 0, 0, 0,
405
+ 0, 0, 0, 0, 0, 0, 0, 0,
406
+ 0, 0, 0, 0, 0, 0, 0, 0,
407
+ 0, 0, 0, 0, 0, 0, 0, 0,
408
+ 0, 0, 0, 0, 0, 0, 0, 0,
409
+ 0, 0, 0, 0, 0, 0, 0, 0,
410
+ 0, 0, 0, 0, 0, 0, 0, 0,
411
+ 0, 0, 0, 0, 0, 0, 0, 0,
412
+ 0, 0, 0, 0, 0, 0, 0, 0,
413
+ 0, 0, 0, 0, 0, 0, 0, 0,
414
+ 0, 0, 0, 0, 0, 0, 0, 0,
415
+ 0, 0, 0, 0, 0, 0, 0, 0,
416
+ 0, 0, 0, 0, 0, 2, 0, 2,
417
+ 2, 2, 3, 0, 0, 2, 3, 2,
418
+ 2, 0, 0, 0, 3, 0, 0, 0,
419
+ 0, 0, 4, 1, 0, 0, 0, 0,
420
+ 3, 0, 0, 0, 0, 0, 0, 0,
421
+ 0, 0, 0, 0, 0, 0, 0, 0,
422
+ 0, 0, 0, 0, 6, 3, 1, 0,
423
+ 0, 0, 0, 0, 0, 0, 0, 0,
424
+ 0, 0, 0, 0, 0, 0, 0, 0,
425
+ 0, 0, 0, 0, 0, 0, 0, 0,
426
+ 0, 0, 0, 0, 0, 0, 0, 0,
427
+ 0, 0, 0, 0, 0, 0, 0, 0,
428
+ 0, 0, 0, 0, 0, 0, 0, 0,
429
+ 0, 0, 0, 0, 0, 0, 0, 0,
430
+ 0, 0, 0, 0, 0, 3, 0, 0,
431
+ 2, 3, 3, 0, 0, 3, 0, 3,
432
+ 0, 3, 3, 3, 3, 3, 3, 1,
433
+ 1, 0, 0, 1, 0, 0, 0, 0,
434
+ 0, 0, 0, 0, 0, 0, 0, 0,
435
+ 0, 0, 6
436
+ ]
437
+
438
+ class << self
439
+ attr_accessor :_proc_scanner_index_offsets
440
+ private :_proc_scanner_index_offsets, :_proc_scanner_index_offsets=
441
+ end
442
+ self._proc_scanner_index_offsets = [
443
+ 0, 0, 2, 4, 6, 8, 10, 12,
444
+ 16, 21, 24, 27, 31, 35, 40, 44,
445
+ 48, 53, 56, 59, 63, 67, 72, 76,
446
+ 79, 81, 83, 86, 89, 93, 98, 101,
447
+ 104, 108, 112, 117, 121, 125, 130, 133,
448
+ 136, 140, 144, 149, 153, 157, 162, 165,
449
+ 168, 172, 176, 181, 185, 189, 194, 197,
450
+ 200, 204, 208, 213, 217, 221, 226, 229,
451
+ 232, 236, 240, 245, 249, 253, 258, 261,
452
+ 264, 268, 272, 277, 281, 285, 290, 293,
453
+ 296, 300, 304, 309, 313, 317, 322, 325,
454
+ 328, 332, 336, 341, 345, 349, 354, 357,
455
+ 360, 364, 368, 373, 377, 381, 386, 389,
456
+ 392, 396, 400, 405, 409, 413, 418, 421,
457
+ 424, 428, 432, 437, 441, 445, 450, 453,
458
+ 456, 460, 464, 469, 473, 477, 482, 485,
459
+ 488, 492, 496, 501, 505, 509, 514, 517,
460
+ 520, 524, 528, 533, 537, 541, 546, 549,
461
+ 552, 556, 560, 565, 569, 573, 578, 581,
462
+ 584, 588, 592, 597, 601, 605, 610, 613,
463
+ 616, 620, 624, 629, 633, 662, 666, 671,
464
+ 674, 677, 681, 685, 690, 694, 697, 701,
465
+ 705, 710, 713, 716, 720, 724, 729, 733,
466
+ 737, 742, 745, 748, 752, 756, 761, 765,
467
+ 769, 774, 777, 780, 784, 788, 793, 797,
468
+ 801, 806, 809, 812, 816, 820, 825, 829,
469
+ 833, 837, 840, 843, 846, 850, 854, 858,
470
+ 862, 867, 870, 873, 877, 881, 886, 890,
471
+ 919, 922, 924, 926, 929, 932, 935, 937,
472
+ 939, 942, 945, 948, 950, 952, 955, 958,
473
+ 961, 963, 965, 968, 971, 974, 976, 978,
474
+ 981, 984, 987, 989, 991, 994, 997, 1000,
475
+ 1002, 1004, 1007, 1010, 1013, 1015, 1017, 1020,
476
+ 1023, 1026, 1028, 1030, 1033, 1036, 1039, 1041,
477
+ 1043, 1046, 1049, 1052, 1054, 1056, 1059, 1062,
478
+ 1065, 1067, 1069, 1072, 1075, 1078, 1080, 1082,
479
+ 1085, 1088, 1091, 1093, 1095, 1098, 1101, 1104,
480
+ 1106, 1108, 1111, 1114, 1117, 1119, 1121, 1124,
481
+ 1127, 1130, 1132, 1134, 1137, 1140, 1143, 1145,
482
+ 1147, 1150, 1153, 1156, 1158, 1160, 1163, 1166,
483
+ 1169, 1171, 1173, 1176, 1179, 1182, 1184, 1186,
484
+ 1189, 1192, 1195, 1197, 1200, 1203, 1205, 1207,
485
+ 1210, 1212, 1214, 1217, 1220, 1223, 1225, 1227,
486
+ 1230, 1233, 1236, 1238, 1240, 1243, 1246, 1249,
487
+ 1251, 1253, 1256, 1259, 1262, 1264, 1266, 1269,
488
+ 1272, 1275, 1277, 1279, 1282, 1285, 1289, 1291,
489
+ 1294, 1301, 1305, 1314, 1316, 1318, 1321, 1329,
490
+ 1335, 1338, 1340, 1342, 1344, 1349, 1351, 1353,
491
+ 1355, 1357, 1359, 1368, 1373, 1375, 1377, 1379,
492
+ 1381, 1386, 1388, 1390, 1392, 1395, 1397, 1399,
493
+ 1401, 1403, 1405, 1407, 1409, 1411, 1413, 1416,
494
+ 1419, 1422, 1425, 1427, 1429, 1436, 1460, 1464,
495
+ 1466, 1470, 1474, 1509, 1513, 1515, 1519, 1523,
496
+ 1527, 1531, 1535, 1539, 1543, 1547, 1551, 1555,
497
+ 1559, 1563, 1567, 1571, 1575, 1579, 1583, 1587,
498
+ 1591, 1593, 1597, 1601, 1605, 1609, 1613, 1617,
499
+ 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641,
500
+ 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665,
501
+ 1668, 1671, 1674, 1677, 1680, 1683, 1685, 1688,
502
+ 1691, 1694, 1697, 1700, 1703, 1705, 1710, 1713,
503
+ 1717, 1721, 1727, 1732, 1734, 1736, 1742, 1744,
504
+ 1750, 1754, 1761, 1768, 1775, 1782, 1789, 1796,
505
+ 1808, 1812, 1814, 1817, 1822, 1824, 1826, 1828,
506
+ 1830, 1832, 1834, 1836, 1838, 1840, 1842, 1844,
507
+ 1846, 1848, 1850
508
+ ]
509
+
510
+ class << self
511
+ attr_accessor :_proc_scanner_trans_targs
512
+ private :_proc_scanner_trans_targs, :_proc_scanner_trans_targs=
513
+ end
514
+ self._proc_scanner_trans_targs = [
515
+ 2, 413, 3, 413, 4, 413, 5, 413,
516
+ 6, 413, 413, 6, 413, 8, 9, 7,
517
+ 413, 8, 9, 413, 7, 417, 11, 10,
518
+ 413, 11, 10, 413, 11, 413, 10, 413,
519
+ 13, 14, 12, 413, 13, 14, 413, 12,
520
+ 417, 13, 14, 12, 413, 16, 17, 15,
521
+ 413, 16, 17, 413, 15, 419, 19, 18,
522
+ 413, 19, 18, 413, 19, 413, 18, 413,
523
+ 21, 22, 20, 413, 21, 22, 413, 20,
524
+ 419, 21, 22, 20, 420, 24, 23, 421,
525
+ 25, 420, 25, 420, 27, 26, 421, 27,
526
+ 26, 29, 413, 30, 28, 29, 413, 30,
527
+ 413, 28, 32, 422, 31, 32, 413, 31,
528
+ 32, 413, 413, 31, 34, 413, 35, 33,
529
+ 34, 413, 35, 413, 33, 34, 422, 35,
530
+ 33, 37, 413, 38, 36, 37, 413, 38,
531
+ 413, 36, 40, 423, 39, 40, 413, 39,
532
+ 40, 413, 413, 39, 42, 413, 43, 41,
533
+ 42, 413, 43, 413, 41, 42, 423, 43,
534
+ 41, 45, 413, 46, 44, 45, 413, 46,
535
+ 413, 44, 48, 424, 47, 48, 413, 47,
536
+ 48, 413, 413, 47, 50, 413, 51, 49,
537
+ 50, 413, 51, 413, 49, 50, 424, 51,
538
+ 49, 53, 413, 54, 52, 53, 413, 54,
539
+ 413, 52, 56, 425, 55, 56, 413, 55,
540
+ 56, 413, 413, 55, 58, 413, 59, 57,
541
+ 58, 413, 59, 413, 57, 58, 425, 59,
542
+ 57, 61, 413, 62, 60, 61, 413, 62,
543
+ 413, 60, 64, 426, 63, 64, 413, 63,
544
+ 64, 413, 413, 63, 66, 413, 67, 65,
545
+ 66, 413, 67, 413, 65, 66, 426, 67,
546
+ 65, 69, 413, 70, 68, 69, 413, 70,
547
+ 413, 68, 72, 427, 71, 72, 413, 71,
548
+ 72, 413, 413, 71, 74, 413, 75, 73,
549
+ 74, 413, 75, 413, 73, 74, 427, 75,
550
+ 73, 77, 413, 78, 76, 77, 413, 78,
551
+ 413, 76, 80, 428, 79, 80, 413, 79,
552
+ 80, 413, 413, 79, 82, 413, 83, 81,
553
+ 82, 413, 83, 413, 81, 82, 428, 83,
554
+ 81, 85, 413, 86, 84, 85, 413, 86,
555
+ 413, 84, 88, 429, 87, 88, 413, 87,
556
+ 88, 413, 413, 87, 90, 413, 91, 89,
557
+ 90, 413, 91, 413, 89, 90, 429, 91,
558
+ 89, 93, 413, 94, 92, 93, 413, 94,
559
+ 413, 92, 96, 430, 95, 96, 413, 95,
560
+ 96, 413, 413, 95, 98, 413, 99, 97,
561
+ 98, 413, 99, 413, 97, 98, 430, 99,
562
+ 97, 101, 413, 102, 100, 101, 413, 102,
563
+ 413, 100, 104, 431, 103, 104, 413, 103,
564
+ 104, 413, 413, 103, 106, 413, 107, 105,
565
+ 106, 413, 107, 413, 105, 106, 431, 107,
566
+ 105, 109, 413, 110, 108, 109, 413, 110,
567
+ 413, 108, 112, 432, 111, 112, 413, 111,
568
+ 112, 413, 413, 111, 114, 413, 115, 113,
569
+ 114, 413, 115, 413, 113, 114, 432, 115,
570
+ 113, 117, 413, 118, 116, 117, 413, 118,
571
+ 413, 116, 120, 433, 119, 120, 413, 119,
572
+ 120, 413, 413, 119, 122, 413, 123, 121,
573
+ 122, 413, 123, 413, 121, 122, 433, 123,
574
+ 121, 125, 413, 126, 124, 125, 413, 126,
575
+ 413, 124, 128, 434, 127, 128, 413, 127,
576
+ 128, 413, 413, 127, 130, 413, 131, 129,
577
+ 130, 413, 131, 413, 129, 130, 434, 131,
578
+ 129, 133, 413, 134, 132, 133, 413, 134,
579
+ 413, 132, 136, 435, 135, 136, 413, 135,
580
+ 136, 413, 413, 135, 138, 413, 139, 137,
581
+ 138, 413, 139, 413, 137, 138, 435, 139,
582
+ 137, 141, 413, 142, 140, 141, 413, 142,
583
+ 413, 140, 144, 436, 143, 144, 413, 143,
584
+ 144, 413, 413, 143, 146, 413, 147, 145,
585
+ 146, 413, 147, 413, 145, 146, 436, 147,
586
+ 145, 149, 413, 150, 148, 149, 413, 150,
587
+ 413, 148, 152, 437, 151, 152, 413, 151,
588
+ 152, 413, 413, 151, 154, 413, 155, 153,
589
+ 154, 413, 155, 413, 153, 154, 437, 155,
590
+ 153, 157, 413, 158, 156, 157, 413, 158,
591
+ 413, 156, 160, 438, 159, 160, 413, 159,
592
+ 160, 413, 413, 159, 162, 413, 163, 161,
593
+ 162, 413, 163, 413, 161, 162, 438, 163,
594
+ 161, 15, 7, 23, 28, 36, 44, 52,
595
+ 60, 68, 76, 84, 92, 100, 108, 116,
596
+ 124, 132, 140, 148, 156, 165, 173, 175,
597
+ 183, 191, 199, 207, 215, 413, 166, 167,
598
+ 413, 165, 166, 167, 413, 413, 165, 169,
599
+ 439, 168, 169, 413, 168, 169, 413, 413,
600
+ 168, 171, 172, 413, 170, 171, 172, 413,
601
+ 413, 170, 171, 172, 439, 170, 174, 440,
602
+ 173, 174, 440, 413, 173, 176, 177, 413,
603
+ 175, 176, 177, 413, 413, 175, 179, 441,
604
+ 178, 179, 413, 178, 179, 413, 413, 178,
605
+ 181, 182, 413, 180, 181, 182, 413, 413,
606
+ 180, 181, 182, 441, 180, 184, 185, 413,
607
+ 183, 184, 185, 413, 413, 183, 187, 442,
608
+ 186, 187, 413, 186, 187, 413, 413, 186,
609
+ 189, 190, 413, 188, 189, 190, 413, 413,
610
+ 188, 189, 190, 442, 188, 192, 193, 413,
611
+ 191, 192, 193, 413, 413, 191, 195, 443,
612
+ 194, 195, 413, 194, 195, 413, 413, 194,
613
+ 197, 198, 413, 196, 197, 198, 413, 413,
614
+ 196, 197, 198, 443, 196, 200, 201, 413,
615
+ 199, 200, 201, 413, 413, 199, 203, 444,
616
+ 202, 203, 413, 202, 203, 413, 413, 202,
617
+ 205, 206, 413, 204, 205, 206, 413, 413,
618
+ 204, 205, 206, 444, 204, 208, 209, 413,
619
+ 207, 208, 209, 413, 207, 211, 445, 210,
620
+ 211, 413, 210, 211, 413, 210, 213, 214,
621
+ 413, 212, 213, 214, 413, 212, 213, 214,
622
+ 445, 212, 216, 217, 413, 215, 216, 217,
623
+ 413, 413, 215, 219, 446, 218, 219, 413,
624
+ 218, 219, 413, 413, 218, 221, 222, 413,
625
+ 220, 221, 222, 413, 413, 220, 221, 222,
626
+ 446, 220, 224, 229, 234, 239, 244, 249,
627
+ 254, 259, 264, 269, 274, 279, 284, 289,
628
+ 294, 299, 304, 309, 314, 319, 324, 329,
629
+ 335, 340, 345, 350, 355, 360, 413, 413,
630
+ 225, 224, 447, 226, 413, 226, 413, 228,
631
+ 227, 447, 228, 227, 413, 230, 229, 448,
632
+ 231, 413, 231, 413, 233, 232, 448, 233,
633
+ 232, 413, 235, 234, 449, 236, 413, 236,
634
+ 413, 238, 237, 449, 238, 237, 413, 240,
635
+ 239, 450, 241, 413, 241, 413, 243, 242,
636
+ 450, 243, 242, 413, 245, 244, 451, 246,
637
+ 413, 246, 413, 248, 247, 451, 248, 247,
638
+ 413, 250, 249, 452, 251, 413, 251, 413,
639
+ 253, 252, 452, 253, 252, 413, 255, 254,
640
+ 453, 256, 413, 256, 413, 258, 257, 453,
641
+ 258, 257, 413, 260, 259, 454, 261, 413,
642
+ 261, 413, 263, 262, 454, 263, 262, 413,
643
+ 265, 264, 455, 266, 413, 266, 413, 268,
644
+ 267, 455, 268, 267, 413, 270, 269, 456,
645
+ 271, 413, 271, 413, 273, 272, 456, 273,
646
+ 272, 413, 275, 274, 457, 276, 413, 276,
647
+ 413, 278, 277, 457, 278, 277, 413, 280,
648
+ 279, 458, 281, 413, 281, 413, 283, 282,
649
+ 458, 283, 282, 413, 285, 284, 459, 286,
650
+ 413, 286, 413, 288, 287, 459, 288, 287,
651
+ 413, 290, 289, 460, 291, 413, 291, 413,
652
+ 293, 292, 460, 293, 292, 413, 295, 294,
653
+ 461, 296, 413, 296, 413, 298, 297, 461,
654
+ 298, 297, 413, 300, 299, 462, 301, 413,
655
+ 301, 413, 303, 302, 462, 303, 302, 413,
656
+ 305, 304, 463, 306, 413, 306, 413, 308,
657
+ 307, 463, 308, 307, 413, 310, 309, 464,
658
+ 311, 413, 311, 413, 313, 312, 464, 313,
659
+ 312, 413, 315, 314, 465, 316, 413, 316,
660
+ 413, 318, 317, 465, 318, 317, 413, 320,
661
+ 319, 466, 321, 413, 321, 413, 323, 322,
662
+ 466, 323, 322, 325, 413, 324, 467, 326,
663
+ 413, 326, 328, 413, 327, 328, 467, 327,
664
+ 330, 468, 329, 413, 330, 413, 332, 331,
665
+ 413, 333, 331, 469, 334, 468, 334, 336,
666
+ 413, 335, 470, 337, 413, 337, 339, 413,
667
+ 338, 339, 470, 338, 341, 413, 340, 471,
668
+ 342, 413, 342, 344, 413, 343, 344, 471,
669
+ 343, 346, 413, 345, 472, 347, 413, 347,
670
+ 349, 413, 348, 349, 472, 348, 351, 413,
671
+ 350, 473, 352, 413, 352, 354, 413, 353,
672
+ 354, 473, 353, 356, 413, 355, 474, 357,
673
+ 413, 357, 359, 413, 358, 359, 474, 358,
674
+ 361, 413, 360, 475, 362, 413, 362, 364,
675
+ 413, 363, 364, 475, 363, 477, 477, 477,
676
+ 413, 367, 413, 481, 481, 413, 369, 369,
677
+ 375, 374, 370, 374, 413, 374, 370, 374,
678
+ 413, 413, 371, 371, 372, 370, 370, 370,
679
+ 370, 413, 413, 413, 373, 413, 370, 370,
680
+ 413, 413, 371, 371, 374, 374, 374, 374,
681
+ 413, 369, 369, 374, 370, 374, 413, 485,
682
+ 485, 413, 378, 495, 379, 495, 380, 495,
683
+ 495, 495, 495, 495, 495, 382, 495, 380,
684
+ 495, 384, 495, 385, 495, 386, 495, 499,
685
+ 499, 501, 495, 499, 495, 495, 495, 495,
686
+ 387, 387, 388, 387, 495, 389, 495, 495,
687
+ 500, 380, 495, 392, 495, 495, 495, 495,
688
+ 495, 495, 394, 495, 395, 495, 382, 495,
689
+ 397, 400, 495, 398, 495, 399, 495, 380,
690
+ 495, 401, 495, 392, 495, 403, 495, 404,
691
+ 495, 392, 495, 406, 405, 406, 407, 405,
692
+ 406, 408, 405, 406, 409, 405, 406, 511,
693
+ 405, 411, 410, 0, 513, 514, 514, 514,
694
+ 514, 514, 514, 412, 415, 414, 416, 413,
695
+ 418, 476, 478, 413, 413, 479, 480, 413,
696
+ 483, 484, 488, 489, 490, 492, 413, 413,
697
+ 414, 485, 487, 413, 414, 414, 414, 413,
698
+ 1, 413, 413, 8, 9, 7, 413, 13,
699
+ 14, 12, 15, 7, 23, 28, 36, 44,
700
+ 52, 60, 68, 76, 84, 92, 100, 108,
701
+ 116, 124, 132, 140, 148, 156, 164, 164,
702
+ 165, 173, 175, 183, 191, 223, 164, 223,
703
+ 164, 199, 207, 215, 413, 413, 21, 22,
704
+ 20, 413, 413, 420, 27, 413, 26, 34,
705
+ 413, 35, 33, 42, 413, 43, 41, 50,
706
+ 413, 51, 49, 58, 413, 59, 57, 66,
707
+ 413, 67, 65, 74, 413, 75, 73, 82,
708
+ 413, 83, 81, 90, 413, 91, 89, 98,
709
+ 413, 99, 97, 106, 413, 107, 105, 114,
710
+ 413, 115, 113, 122, 413, 123, 121, 130,
711
+ 413, 131, 129, 138, 413, 139, 137, 146,
712
+ 413, 147, 145, 154, 413, 155, 153, 162,
713
+ 413, 163, 161, 171, 172, 413, 170, 173,
714
+ 413, 181, 182, 413, 180, 189, 190, 413,
715
+ 188, 197, 198, 413, 196, 205, 206, 413,
716
+ 204, 213, 214, 413, 212, 221, 222, 413,
717
+ 220, 413, 228, 227, 413, 233, 232, 413,
718
+ 238, 237, 413, 243, 242, 413, 248, 247,
719
+ 413, 253, 252, 413, 258, 257, 413, 263,
720
+ 262, 413, 268, 267, 413, 273, 272, 413,
721
+ 278, 277, 413, 283, 282, 413, 288, 287,
722
+ 413, 293, 292, 413, 298, 297, 413, 303,
723
+ 302, 413, 308, 307, 413, 313, 312, 413,
724
+ 318, 317, 413, 323, 322, 328, 413, 327,
725
+ 413, 333, 331, 469, 334, 339, 413, 338,
726
+ 344, 413, 343, 349, 413, 348, 354, 413,
727
+ 353, 359, 413, 358, 364, 413, 363, 365,
728
+ 413, 477, 477, 477, 477, 413, 413, 255,
729
+ 254, 109, 413, 110, 108, 482, 481, 482,
730
+ 413, 366, 481, 481, 481, 481, 413, 482,
731
+ 482, 482, 482, 413, 368, 413, 413, 413,
732
+ 486, 485, 485, 485, 485, 413, 376, 413,
733
+ 413, 487, 487, 487, 487, 413, 192, 193,
734
+ 413, 191, 413, 487, 487, 487, 487, 487,
735
+ 413, 413, 487, 491, 487, 487, 487, 413,
736
+ 413, 487, 487, 487, 487, 487, 413, 413,
737
+ 487, 493, 487, 487, 487, 413, 413, 487,
738
+ 494, 487, 487, 487, 413, 413, 487, 487,
739
+ 487, 487, 487, 413, 496, 496, 497, 498,
740
+ 502, 503, 504, 505, 506, 507, 496, 495,
741
+ 496, 496, 496, 495, 377, 495, 381, 383,
742
+ 495, 387, 387, 388, 387, 495, 495, 500,
743
+ 389, 495, 390, 495, 391, 495, 380, 495,
744
+ 393, 495, 396, 495, 402, 495, 0, 509,
745
+ 508, 509, 406, 405, 406, 511, 411, 410,
746
+ 512, 513, 514, 514, 514, 514, 514, 514,
747
+ 412, 413, 413, 413, 413, 413, 413, 413,
748
+ 413, 413, 413, 413, 413, 413, 413, 413,
749
+ 413, 413, 413, 413, 413, 413, 413, 413,
750
+ 413, 413, 413, 413, 413, 413, 413, 413,
751
+ 413, 413, 413, 413, 413, 413, 413, 413,
752
+ 413, 413, 413, 413, 413, 413, 413, 413,
753
+ 413, 413, 413, 413, 413, 413, 413, 413,
754
+ 413, 413, 413, 413, 413, 413, 413, 413,
755
+ 413, 413, 413, 413, 413, 413, 413, 413,
756
+ 413, 413, 413, 413, 413, 413, 413, 413,
757
+ 413, 413, 413, 413, 413, 413, 413, 413,
758
+ 413, 413, 413, 413, 413, 413, 413, 413,
759
+ 413, 413, 413, 413, 413, 413, 413, 413,
760
+ 413, 413, 413, 413, 413, 413, 413, 413,
761
+ 413, 413, 413, 413, 413, 413, 413, 413,
762
+ 413, 413, 413, 413, 413, 413, 413, 413,
763
+ 413, 413, 413, 413, 413, 413, 413, 413,
764
+ 413, 413, 413, 413, 413, 413, 413, 413,
765
+ 413, 413, 413, 413, 413, 413, 413, 413,
766
+ 413, 413, 413, 413, 413, 413, 413, 413,
767
+ 413, 413, 413, 413, 413, 413, 413, 413,
768
+ 413, 413, 413, 413, 413, 413, 413, 413,
769
+ 413, 413, 413, 413, 413, 413, 413, 413,
770
+ 413, 413, 413, 413, 413, 413, 413, 413,
771
+ 413, 413, 413, 413, 413, 413, 413, 413,
772
+ 413, 413, 413, 413, 413, 413, 413, 413,
773
+ 413, 413, 413, 413, 413, 413, 413, 413,
774
+ 413, 413, 413, 413, 413, 413, 413, 413,
775
+ 413, 413, 413, 413, 413, 413, 413, 413,
776
+ 413, 413, 413, 413, 413, 413, 413, 413,
777
+ 413, 413, 413, 413, 413, 413, 413, 413,
778
+ 413, 413, 413, 413, 413, 413, 413, 413,
779
+ 413, 413, 413, 413, 413, 413, 413, 413,
780
+ 413, 413, 413, 413, 413, 413, 413, 413,
781
+ 413, 413, 413, 413, 413, 413, 413, 413,
782
+ 413, 413, 413, 413, 413, 413, 413, 413,
783
+ 413, 413, 413, 413, 413, 413, 413, 413,
784
+ 413, 413, 413, 413, 413, 413, 413, 413,
785
+ 413, 413, 413, 413, 413, 413, 413, 413,
786
+ 413, 413, 413, 413, 413, 413, 413, 413,
787
+ 413, 413, 413, 413, 413, 413, 413, 413,
788
+ 413, 413, 413, 413, 413, 413, 413, 413,
789
+ 413, 413, 413, 413, 413, 413, 413, 413,
790
+ 413, 413, 413, 413, 413, 413, 413, 413,
791
+ 413, 413, 413, 413, 413, 413, 413, 413,
792
+ 413, 413, 413, 413, 413, 413, 413, 413,
793
+ 413, 413, 413, 413, 413, 413, 413, 413,
794
+ 413, 495, 495, 495, 495, 495, 495, 495,
795
+ 495, 495, 495, 495, 495, 495, 495, 495,
796
+ 495, 495, 495, 495, 495, 495, 495, 495,
797
+ 495, 495, 495, 495, 495, 510, 510, 510,
798
+ 510, 510, 413, 413, 413, 413, 413, 413,
799
+ 413, 413, 413, 413, 413, 413, 413, 413,
800
+ 413, 413, 413, 413, 413, 413, 413, 413,
801
+ 413, 413, 413, 413, 413, 413, 413, 413,
802
+ 413, 413, 413, 413, 413, 413, 413, 413,
803
+ 413, 413, 413, 413, 413, 413, 413, 413,
804
+ 413, 413, 413, 413, 413, 413, 413, 413,
805
+ 413, 413, 413, 413, 413, 413, 413, 413,
806
+ 413, 413, 413, 413, 413, 413, 413, 413,
807
+ 413, 413, 413, 413, 413, 413, 413, 413,
808
+ 413, 413, 413, 495, 495, 495, 495, 495,
809
+ 495, 495, 495, 495, 495, 495, 495, 508,
810
+ 510, 512, 0
811
+ ]
812
+
813
+ class << self
814
+ attr_accessor :_proc_scanner_trans_actions
815
+ private :_proc_scanner_trans_actions, :_proc_scanner_trans_actions=
816
+ end
817
+ self._proc_scanner_trans_actions = [
818
+ 0, 79, 0, 79, 0, 79, 0, 79,
819
+ 0, 79, 45, 0, 53, 0, 0, 0,
820
+ 53, 0, 0, 53, 0, 5, 0, 0,
821
+ 53, 0, 0, 53, 0, 53, 0, 53,
822
+ 0, 0, 0, 53, 0, 0, 53, 0,
823
+ 5, 0, 0, 0, 53, 0, 0, 0,
824
+ 53, 0, 0, 53, 0, 5, 0, 0,
825
+ 53, 0, 0, 53, 0, 53, 0, 53,
826
+ 0, 0, 0, 53, 0, 0, 53, 0,
827
+ 5, 0, 0, 0, 0, 0, 0, 5,
828
+ 0, 0, 0, 0, 0, 0, 5, 0,
829
+ 0, 0, 53, 0, 0, 0, 53, 0,
830
+ 53, 0, 0, 5, 0, 0, 53, 0,
831
+ 0, 53, 53, 0, 0, 53, 0, 0,
832
+ 0, 53, 0, 53, 0, 0, 5, 0,
833
+ 0, 0, 53, 0, 0, 0, 53, 0,
834
+ 53, 0, 0, 5, 0, 0, 53, 0,
835
+ 0, 53, 53, 0, 0, 53, 0, 0,
836
+ 0, 53, 0, 53, 0, 0, 5, 0,
837
+ 0, 0, 53, 0, 0, 0, 53, 0,
838
+ 53, 0, 0, 5, 0, 0, 53, 0,
839
+ 0, 53, 53, 0, 0, 53, 0, 0,
840
+ 0, 53, 0, 53, 0, 0, 5, 0,
841
+ 0, 0, 53, 0, 0, 0, 53, 0,
842
+ 53, 0, 0, 5, 0, 0, 53, 0,
843
+ 0, 53, 53, 0, 0, 53, 0, 0,
844
+ 0, 53, 0, 53, 0, 0, 5, 0,
845
+ 0, 0, 53, 0, 0, 0, 53, 0,
846
+ 53, 0, 0, 5, 0, 0, 53, 0,
847
+ 0, 53, 53, 0, 0, 53, 0, 0,
848
+ 0, 53, 0, 53, 0, 0, 5, 0,
849
+ 0, 0, 53, 0, 0, 0, 53, 0,
850
+ 53, 0, 0, 5, 0, 0, 53, 0,
851
+ 0, 53, 53, 0, 0, 53, 0, 0,
852
+ 0, 53, 0, 53, 0, 0, 5, 0,
853
+ 0, 0, 53, 0, 0, 0, 53, 0,
854
+ 53, 0, 0, 5, 0, 0, 53, 0,
855
+ 0, 53, 53, 0, 0, 53, 0, 0,
856
+ 0, 53, 0, 53, 0, 0, 5, 0,
857
+ 0, 0, 53, 0, 0, 0, 53, 0,
858
+ 53, 0, 0, 5, 0, 0, 53, 0,
859
+ 0, 53, 53, 0, 0, 53, 0, 0,
860
+ 0, 53, 0, 53, 0, 0, 5, 0,
861
+ 0, 0, 53, 0, 0, 0, 53, 0,
862
+ 53, 0, 0, 5, 0, 0, 53, 0,
863
+ 0, 53, 53, 0, 0, 53, 0, 0,
864
+ 0, 53, 0, 53, 0, 0, 5, 0,
865
+ 0, 0, 53, 0, 0, 0, 53, 0,
866
+ 53, 0, 0, 5, 0, 0, 53, 0,
867
+ 0, 53, 53, 0, 0, 53, 0, 0,
868
+ 0, 53, 0, 53, 0, 0, 5, 0,
869
+ 0, 0, 53, 0, 0, 0, 53, 0,
870
+ 53, 0, 0, 5, 0, 0, 53, 0,
871
+ 0, 53, 53, 0, 0, 53, 0, 0,
872
+ 0, 53, 0, 53, 0, 0, 5, 0,
873
+ 0, 0, 53, 0, 0, 0, 53, 0,
874
+ 53, 0, 0, 5, 0, 0, 53, 0,
875
+ 0, 53, 53, 0, 0, 53, 0, 0,
876
+ 0, 53, 0, 53, 0, 0, 5, 0,
877
+ 0, 0, 53, 0, 0, 0, 53, 0,
878
+ 53, 0, 0, 5, 0, 0, 53, 0,
879
+ 0, 53, 53, 0, 0, 53, 0, 0,
880
+ 0, 53, 0, 53, 0, 0, 5, 0,
881
+ 0, 0, 53, 0, 0, 0, 53, 0,
882
+ 53, 0, 0, 5, 0, 0, 53, 0,
883
+ 0, 53, 53, 0, 0, 53, 0, 0,
884
+ 0, 53, 0, 53, 0, 0, 5, 0,
885
+ 0, 0, 53, 0, 0, 0, 53, 0,
886
+ 53, 0, 0, 5, 0, 0, 53, 0,
887
+ 0, 53, 53, 0, 0, 53, 0, 0,
888
+ 0, 53, 0, 53, 0, 0, 5, 0,
889
+ 0, 0, 53, 0, 0, 0, 53, 0,
890
+ 53, 0, 0, 5, 0, 0, 53, 0,
891
+ 0, 53, 53, 0, 0, 53, 0, 0,
892
+ 0, 53, 0, 53, 0, 0, 5, 0,
893
+ 0, 0, 53, 0, 0, 0, 53, 0,
894
+ 53, 0, 0, 5, 0, 0, 53, 0,
895
+ 0, 53, 53, 0, 0, 53, 0, 0,
896
+ 0, 53, 0, 53, 0, 0, 5, 0,
897
+ 0, 0, 0, 0, 0, 0, 0, 0,
898
+ 0, 0, 0, 0, 0, 0, 0, 0,
899
+ 0, 0, 0, 0, 0, 0, 0, 0,
900
+ 0, 0, 0, 0, 0, 83, 0, 0,
901
+ 53, 0, 0, 0, 53, 53, 0, 0,
902
+ 5, 0, 0, 53, 0, 0, 53, 53,
903
+ 0, 0, 0, 53, 0, 0, 0, 53,
904
+ 53, 0, 0, 0, 5, 0, 0, 115,
905
+ 0, 0, 115, 53, 0, 0, 0, 53,
906
+ 0, 0, 0, 53, 53, 0, 0, 5,
907
+ 0, 0, 53, 0, 0, 53, 53, 0,
908
+ 0, 0, 53, 0, 0, 0, 53, 53,
909
+ 0, 0, 0, 5, 0, 0, 0, 53,
910
+ 0, 0, 0, 53, 53, 0, 0, 5,
911
+ 0, 0, 53, 0, 0, 53, 53, 0,
912
+ 0, 0, 53, 0, 0, 0, 53, 53,
913
+ 0, 0, 0, 5, 0, 0, 0, 53,
914
+ 0, 0, 0, 53, 53, 0, 0, 5,
915
+ 0, 0, 53, 0, 0, 53, 53, 0,
916
+ 0, 0, 53, 0, 0, 0, 53, 53,
917
+ 0, 0, 0, 5, 0, 0, 0, 53,
918
+ 0, 0, 0, 53, 53, 0, 0, 5,
919
+ 0, 0, 53, 0, 0, 53, 53, 0,
920
+ 0, 0, 53, 0, 0, 0, 53, 53,
921
+ 0, 0, 0, 5, 0, 0, 0, 53,
922
+ 0, 0, 0, 53, 0, 0, 5, 0,
923
+ 0, 53, 0, 0, 53, 0, 0, 0,
924
+ 53, 0, 0, 0, 53, 0, 0, 0,
925
+ 5, 0, 0, 0, 53, 0, 0, 0,
926
+ 53, 53, 0, 0, 5, 0, 0, 53,
927
+ 0, 0, 53, 53, 0, 0, 0, 53,
928
+ 0, 0, 0, 53, 53, 0, 0, 0,
929
+ 5, 0, 0, 0, 0, 0, 0, 0,
930
+ 0, 0, 0, 0, 0, 0, 0, 0,
931
+ 0, 0, 0, 0, 0, 0, 0, 0,
932
+ 0, 0, 0, 0, 0, 0, 83, 51,
933
+ 0, 0, 5, 0, 51, 0, 51, 0,
934
+ 0, 5, 0, 0, 51, 0, 0, 5,
935
+ 0, 51, 0, 51, 0, 0, 5, 0,
936
+ 0, 51, 0, 0, 5, 0, 51, 0,
937
+ 51, 0, 0, 5, 0, 0, 51, 0,
938
+ 0, 5, 0, 51, 0, 51, 0, 0,
939
+ 5, 0, 0, 51, 0, 0, 5, 0,
940
+ 51, 0, 51, 0, 0, 5, 0, 0,
941
+ 51, 0, 0, 5, 0, 51, 0, 51,
942
+ 0, 0, 5, 0, 0, 51, 0, 0,
943
+ 5, 0, 51, 0, 51, 0, 0, 5,
944
+ 0, 0, 51, 0, 0, 5, 0, 51,
945
+ 0, 51, 0, 0, 5, 0, 0, 51,
946
+ 0, 0, 5, 0, 51, 0, 51, 0,
947
+ 0, 5, 0, 0, 51, 0, 0, 5,
948
+ 0, 51, 0, 51, 0, 0, 5, 0,
949
+ 0, 51, 0, 0, 5, 0, 51, 0,
950
+ 51, 0, 0, 5, 0, 0, 51, 0,
951
+ 0, 5, 0, 51, 0, 51, 0, 0,
952
+ 5, 0, 0, 51, 0, 0, 5, 0,
953
+ 51, 0, 51, 0, 0, 5, 0, 0,
954
+ 51, 0, 0, 5, 0, 51, 0, 51,
955
+ 0, 0, 5, 0, 0, 51, 0, 0,
956
+ 5, 0, 51, 0, 51, 0, 0, 5,
957
+ 0, 0, 51, 0, 0, 5, 0, 51,
958
+ 0, 51, 0, 0, 5, 0, 0, 51,
959
+ 0, 0, 5, 0, 51, 0, 51, 0,
960
+ 0, 5, 0, 0, 51, 0, 0, 5,
961
+ 0, 51, 0, 51, 0, 0, 5, 0,
962
+ 0, 51, 0, 0, 5, 0, 51, 0,
963
+ 51, 0, 0, 5, 0, 0, 51, 0,
964
+ 0, 5, 0, 51, 0, 51, 0, 0,
965
+ 5, 0, 0, 0, 51, 0, 5, 0,
966
+ 51, 0, 0, 51, 0, 0, 5, 0,
967
+ 0, 5, 0, 51, 0, 85, 0, 0,
968
+ 85, 0, 0, 5, 0, 5, 0, 0,
969
+ 51, 0, 5, 0, 51, 0, 0, 51,
970
+ 0, 0, 5, 0, 0, 51, 0, 5,
971
+ 0, 51, 0, 0, 51, 0, 0, 5,
972
+ 0, 0, 51, 0, 5, 0, 51, 0,
973
+ 0, 51, 0, 0, 5, 0, 0, 51,
974
+ 0, 5, 0, 51, 0, 0, 51, 0,
975
+ 0, 5, 0, 0, 51, 0, 5, 0,
976
+ 51, 0, 0, 51, 0, 0, 5, 0,
977
+ 0, 51, 0, 5, 0, 51, 0, 0,
978
+ 51, 0, 0, 5, 0, 0, 0, 0,
979
+ 83, 0, 81, 5, 5, 81, 0, 0,
980
+ 0, 0, 0, 0, 83, 0, 0, 0,
981
+ 83, 49, 0, 0, 0, 0, 0, 0,
982
+ 0, 83, 49, 83, 0, 83, 0, 0,
983
+ 83, 49, 0, 0, 0, 0, 0, 0,
984
+ 83, 0, 0, 0, 0, 0, 83, 0,
985
+ 0, 77, 0, 21, 0, 21, 0, 21,
986
+ 21, 21, 21, 21, 9, 0, 21, 0,
987
+ 21, 0, 21, 0, 21, 0, 21, 5,
988
+ 5, 5, 21, 5, 21, 21, 21, 9,
989
+ 0, 0, 0, 0, 19, 0, 19, 19,
990
+ 0, 0, 21, 0, 21, 21, 21, 21,
991
+ 21, 7, 0, 21, 0, 21, 0, 21,
992
+ 0, 0, 21, 0, 21, 0, 21, 0,
993
+ 21, 0, 21, 0, 21, 0, 21, 0,
994
+ 21, 0, 21, 0, 0, 0, 0, 0,
995
+ 0, 0, 0, 0, 0, 0, 0, 97,
996
+ 0, 0, 0, 0, 0, 31, 31, 31,
997
+ 31, 31, 31, 0, 5, 0, 5, 43,
998
+ 112, 5, 5, 41, 41, 5, 0, 41,
999
+ 5, 0, 5, 0, 0, 0, 33, 35,
1000
+ 0, 0, 109, 47, 0, 0, 0, 67,
1001
+ 0, 57, 53, 0, 0, 0, 53, 0,
1002
+ 0, 0, 0, 0, 0, 0, 0, 0,
1003
+ 0, 0, 0, 0, 0, 0, 0, 0,
1004
+ 0, 0, 0, 0, 0, 0, 0, 0,
1005
+ 0, 0, 0, 0, 0, 0, 0, 0,
1006
+ 0, 0, 0, 0, 69, 53, 0, 0,
1007
+ 0, 53, 75, 0, 0, 53, 0, 0,
1008
+ 53, 0, 0, 0, 53, 0, 0, 0,
1009
+ 53, 0, 0, 0, 53, 0, 0, 0,
1010
+ 53, 0, 0, 0, 53, 0, 0, 0,
1011
+ 53, 0, 0, 0, 53, 0, 0, 0,
1012
+ 53, 0, 0, 0, 53, 0, 0, 0,
1013
+ 53, 0, 0, 0, 53, 0, 0, 0,
1014
+ 53, 0, 0, 0, 53, 0, 0, 0,
1015
+ 53, 0, 0, 0, 53, 0, 0, 0,
1016
+ 53, 0, 0, 0, 0, 53, 0, 0,
1017
+ 75, 0, 0, 53, 0, 0, 0, 53,
1018
+ 0, 0, 0, 53, 0, 0, 0, 53,
1019
+ 0, 0, 0, 53, 0, 0, 0, 53,
1020
+ 0, 51, 0, 0, 51, 0, 0, 51,
1021
+ 0, 0, 51, 0, 0, 51, 0, 0,
1022
+ 51, 0, 0, 51, 0, 0, 51, 0,
1023
+ 0, 51, 0, 0, 51, 0, 0, 51,
1024
+ 0, 0, 51, 0, 0, 51, 0, 0,
1025
+ 51, 0, 0, 51, 0, 0, 51, 0,
1026
+ 0, 51, 0, 0, 51, 0, 0, 51,
1027
+ 0, 0, 51, 0, 0, 0, 51, 0,
1028
+ 73, 0, 0, 5, 0, 0, 51, 0,
1029
+ 0, 51, 0, 0, 51, 0, 0, 51,
1030
+ 0, 0, 51, 0, 0, 51, 0, 0,
1031
+ 69, 0, 0, 0, 0, 71, 51, 0,
1032
+ 0, 0, 53, 0, 0, 0, 5, 0,
1033
+ 69, 0, 5, 5, 5, 5, 65, 0,
1034
+ 0, 0, 0, 65, 0, 69, 37, 59,
1035
+ 5, 0, 0, 0, 0, 63, 0, 55,
1036
+ 39, 109, 109, 109, 109, 89, 0, 0,
1037
+ 53, 0, 39, 109, 100, 109, 109, 109,
1038
+ 61, 39, 109, 0, 109, 109, 109, 61,
1039
+ 39, 109, 103, 109, 109, 109, 61, 39,
1040
+ 109, 0, 109, 109, 109, 61, 39, 109,
1041
+ 0, 109, 109, 109, 61, 39, 109, 106,
1042
+ 109, 109, 109, 61, 0, 0, 5, 5,
1043
+ 5, 5, 5, 5, 5, 5, 0, 11,
1044
+ 0, 0, 0, 15, 0, 17, 0, 0,
1045
+ 17, 0, 0, 0, 0, 13, 13, 0,
1046
+ 0, 13, 0, 17, 0, 17, 0, 17,
1047
+ 0, 17, 0, 17, 0, 17, 0, 94,
1048
+ 23, 94, 0, 0, 0, 97, 0, 0,
1049
+ 29, 0, 31, 31, 31, 31, 31, 31,
1050
+ 0, 79, 79, 79, 79, 79, 79, 83,
1051
+ 83, 83, 83, 83, 87, 87, 87, 83,
1052
+ 83, 83, 83, 83, 87, 87, 87, 83,
1053
+ 83, 83, 87, 87, 83, 83, 83, 83,
1054
+ 83, 87, 87, 87, 83, 83, 83, 83,
1055
+ 83, 87, 87, 87, 83, 83, 83, 83,
1056
+ 83, 87, 87, 87, 83, 83, 83, 83,
1057
+ 83, 87, 87, 87, 83, 83, 83, 83,
1058
+ 83, 87, 87, 87, 83, 83, 83, 83,
1059
+ 83, 87, 87, 87, 83, 83, 83, 83,
1060
+ 83, 87, 87, 87, 83, 83, 83, 83,
1061
+ 83, 87, 87, 87, 83, 83, 83, 83,
1062
+ 83, 87, 87, 87, 83, 83, 83, 83,
1063
+ 83, 87, 87, 87, 83, 83, 83, 83,
1064
+ 83, 87, 87, 87, 83, 83, 83, 83,
1065
+ 83, 87, 87, 87, 83, 83, 83, 83,
1066
+ 83, 87, 87, 87, 83, 83, 83, 83,
1067
+ 83, 87, 87, 87, 83, 83, 83, 83,
1068
+ 83, 87, 87, 87, 83, 83, 83, 83,
1069
+ 83, 87, 87, 87, 83, 83, 83, 83,
1070
+ 83, 87, 87, 87, 83, 83, 83, 83,
1071
+ 83, 83, 87, 87, 87, 89, 89, 83,
1072
+ 83, 83, 83, 83, 87, 87, 87, 83,
1073
+ 83, 83, 83, 83, 87, 87, 87, 83,
1074
+ 83, 83, 83, 83, 87, 87, 87, 83,
1075
+ 83, 83, 83, 83, 87, 87, 87, 83,
1076
+ 83, 83, 83, 83, 87, 87, 87, 83,
1077
+ 83, 83, 83, 83, 87, 87, 87, 83,
1078
+ 83, 83, 83, 85, 85, 83, 83, 83,
1079
+ 85, 85, 83, 83, 83, 85, 85, 83,
1080
+ 83, 83, 85, 85, 83, 83, 83, 85,
1081
+ 85, 83, 83, 83, 85, 85, 83, 83,
1082
+ 83, 85, 85, 83, 83, 83, 85, 85,
1083
+ 83, 83, 83, 85, 85, 83, 83, 83,
1084
+ 85, 85, 83, 83, 83, 85, 85, 83,
1085
+ 83, 83, 85, 85, 83, 83, 83, 85,
1086
+ 85, 83, 83, 83, 85, 85, 83, 83,
1087
+ 83, 85, 85, 83, 83, 83, 85, 85,
1088
+ 83, 83, 83, 85, 85, 83, 83, 83,
1089
+ 85, 85, 83, 83, 83, 85, 85, 83,
1090
+ 83, 83, 85, 85, 83, 83, 83, 85,
1091
+ 85, 83, 83, 85, 85, 85, 85, 83,
1092
+ 83, 83, 85, 85, 83, 83, 83, 85,
1093
+ 85, 83, 83, 83, 85, 85, 83, 83,
1094
+ 83, 85, 85, 83, 83, 83, 85, 85,
1095
+ 83, 83, 83, 85, 85, 83, 81, 81,
1096
+ 83, 83, 83, 83, 83, 83, 83, 83,
1097
+ 77, 21, 21, 21, 21, 21, 21, 21,
1098
+ 21, 21, 21, 19, 19, 19, 21, 21,
1099
+ 21, 21, 21, 21, 21, 21, 21, 21,
1100
+ 21, 21, 21, 21, 21, 27, 27, 27,
1101
+ 27, 27, 67, 57, 69, 75, 69, 75,
1102
+ 75, 75, 75, 75, 75, 75, 75, 75,
1103
+ 75, 75, 75, 75, 75, 75, 75, 75,
1104
+ 75, 75, 75, 75, 75, 75, 75, 75,
1105
+ 75, 75, 75, 73, 73, 73, 73, 73,
1106
+ 73, 73, 73, 73, 73, 73, 73, 73,
1107
+ 73, 73, 73, 73, 73, 73, 73, 73,
1108
+ 73, 73, 73, 73, 73, 73, 73, 73,
1109
+ 69, 71, 69, 69, 69, 65, 65, 69,
1110
+ 59, 63, 55, 89, 69, 61, 61, 61,
1111
+ 61, 61, 61, 15, 17, 17, 13, 13,
1112
+ 13, 17, 17, 17, 17, 17, 17, 23,
1113
+ 25, 29, 0
1114
+ ]
1115
+
1116
+ class << self
1117
+ attr_accessor :_proc_scanner_to_state_actions
1118
+ private :_proc_scanner_to_state_actions, :_proc_scanner_to_state_actions=
1119
+ end
1120
+ self._proc_scanner_to_state_actions = [
1121
+ 0, 0, 0, 0, 0, 0, 0, 0,
1122
+ 0, 0, 0, 0, 0, 0, 0, 0,
1123
+ 0, 0, 0, 0, 0, 0, 0, 0,
1124
+ 0, 0, 0, 0, 0, 0, 0, 0,
1125
+ 0, 0, 0, 0, 0, 0, 0, 0,
1126
+ 0, 0, 0, 0, 0, 0, 0, 0,
1127
+ 0, 0, 0, 0, 0, 0, 0, 0,
1128
+ 0, 0, 0, 0, 0, 0, 0, 0,
1129
+ 0, 0, 0, 0, 0, 0, 0, 0,
1130
+ 0, 0, 0, 0, 0, 0, 0, 0,
1131
+ 0, 0, 0, 0, 0, 0, 0, 0,
1132
+ 0, 0, 0, 0, 0, 0, 0, 0,
1133
+ 0, 0, 0, 0, 0, 0, 0, 0,
1134
+ 0, 0, 0, 0, 0, 0, 0, 0,
1135
+ 0, 0, 0, 0, 0, 0, 0, 0,
1136
+ 0, 0, 0, 0, 0, 0, 0, 0,
1137
+ 0, 0, 0, 0, 0, 0, 0, 0,
1138
+ 0, 0, 0, 0, 0, 0, 0, 0,
1139
+ 0, 0, 0, 0, 0, 0, 0, 0,
1140
+ 0, 0, 0, 0, 0, 0, 0, 0,
1141
+ 0, 0, 0, 0, 0, 0, 0, 0,
1142
+ 0, 0, 0, 0, 0, 0, 0, 0,
1143
+ 0, 0, 0, 0, 0, 0, 0, 0,
1144
+ 0, 0, 0, 0, 0, 0, 0, 0,
1145
+ 0, 0, 0, 0, 0, 0, 0, 0,
1146
+ 0, 0, 0, 0, 0, 0, 0, 0,
1147
+ 0, 0, 0, 0, 0, 0, 0, 0,
1148
+ 0, 0, 0, 0, 0, 0, 0, 0,
1149
+ 0, 0, 0, 0, 0, 0, 0, 0,
1150
+ 0, 0, 0, 0, 0, 0, 0, 0,
1151
+ 0, 0, 0, 0, 0, 0, 0, 0,
1152
+ 0, 0, 0, 0, 0, 0, 0, 0,
1153
+ 0, 0, 0, 0, 0, 0, 0, 0,
1154
+ 0, 0, 0, 0, 0, 0, 0, 0,
1155
+ 0, 0, 0, 0, 0, 0, 0, 0,
1156
+ 0, 0, 0, 0, 0, 0, 0, 0,
1157
+ 0, 0, 0, 0, 0, 0, 0, 0,
1158
+ 0, 0, 0, 0, 0, 0, 0, 0,
1159
+ 0, 0, 0, 0, 0, 0, 0, 0,
1160
+ 0, 0, 0, 0, 0, 0, 0, 0,
1161
+ 0, 0, 0, 0, 0, 0, 0, 0,
1162
+ 0, 0, 0, 0, 0, 0, 0, 0,
1163
+ 0, 0, 0, 0, 0, 0, 0, 0,
1164
+ 0, 0, 0, 0, 0, 0, 0, 0,
1165
+ 0, 0, 0, 0, 0, 0, 0, 0,
1166
+ 0, 0, 0, 0, 0, 0, 0, 0,
1167
+ 0, 0, 0, 0, 0, 0, 0, 0,
1168
+ 0, 0, 0, 0, 0, 0, 0, 0,
1169
+ 0, 0, 0, 0, 0, 0, 0, 0,
1170
+ 0, 0, 0, 0, 0, 0, 0, 0,
1171
+ 0, 0, 0, 0, 0, 0, 0, 0,
1172
+ 0, 0, 0, 0, 0, 1, 0, 0,
1173
+ 0, 0, 0, 0, 0, 0, 0, 0,
1174
+ 0, 0, 0, 0, 0, 0, 0, 0,
1175
+ 0, 0, 0, 0, 0, 0, 0, 0,
1176
+ 0, 0, 0, 0, 0, 0, 0, 0,
1177
+ 0, 0, 0, 0, 0, 0, 0, 0,
1178
+ 0, 0, 0, 0, 0, 0, 0, 0,
1179
+ 0, 0, 0, 0, 0, 0, 0, 0,
1180
+ 0, 0, 0, 0, 0, 0, 0, 0,
1181
+ 0, 0, 0, 0, 0, 0, 0, 0,
1182
+ 0, 0, 0, 0, 0, 0, 0, 1,
1183
+ 0, 0, 0, 0, 0, 0, 0, 0,
1184
+ 0, 0, 0, 0, 91, 0, 91, 0,
1185
+ 1, 0, 1
1186
+ ]
1187
+
1188
+ class << self
1189
+ attr_accessor :_proc_scanner_from_state_actions
1190
+ private :_proc_scanner_from_state_actions, :_proc_scanner_from_state_actions=
1191
+ end
1192
+ self._proc_scanner_from_state_actions = [
1193
+ 0, 0, 0, 0, 0, 0, 0, 0,
1194
+ 0, 0, 0, 0, 0, 0, 0, 0,
1195
+ 0, 0, 0, 0, 0, 0, 0, 0,
1196
+ 0, 0, 0, 0, 0, 0, 0, 0,
1197
+ 0, 0, 0, 0, 0, 0, 0, 0,
1198
+ 0, 0, 0, 0, 0, 0, 0, 0,
1199
+ 0, 0, 0, 0, 0, 0, 0, 0,
1200
+ 0, 0, 0, 0, 0, 0, 0, 0,
1201
+ 0, 0, 0, 0, 0, 0, 0, 0,
1202
+ 0, 0, 0, 0, 0, 0, 0, 0,
1203
+ 0, 0, 0, 0, 0, 0, 0, 0,
1204
+ 0, 0, 0, 0, 0, 0, 0, 0,
1205
+ 0, 0, 0, 0, 0, 0, 0, 0,
1206
+ 0, 0, 0, 0, 0, 0, 0, 0,
1207
+ 0, 0, 0, 0, 0, 0, 0, 0,
1208
+ 0, 0, 0, 0, 0, 0, 0, 0,
1209
+ 0, 0, 0, 0, 0, 0, 0, 0,
1210
+ 0, 0, 0, 0, 0, 0, 0, 0,
1211
+ 0, 0, 0, 0, 0, 0, 0, 0,
1212
+ 0, 0, 0, 0, 0, 0, 0, 0,
1213
+ 0, 0, 0, 0, 0, 0, 0, 0,
1214
+ 0, 0, 0, 0, 0, 0, 0, 0,
1215
+ 0, 0, 0, 0, 0, 0, 0, 0,
1216
+ 0, 0, 0, 0, 0, 0, 0, 0,
1217
+ 0, 0, 0, 0, 0, 0, 0, 0,
1218
+ 0, 0, 0, 0, 0, 0, 0, 0,
1219
+ 0, 0, 0, 0, 0, 0, 0, 0,
1220
+ 0, 0, 0, 0, 0, 0, 0, 0,
1221
+ 0, 0, 0, 0, 0, 0, 0, 0,
1222
+ 0, 0, 0, 0, 0, 0, 0, 0,
1223
+ 0, 0, 0, 0, 0, 0, 0, 0,
1224
+ 0, 0, 0, 0, 0, 0, 0, 0,
1225
+ 0, 0, 0, 0, 0, 0, 0, 0,
1226
+ 0, 0, 0, 0, 0, 0, 0, 0,
1227
+ 0, 0, 0, 0, 0, 0, 0, 0,
1228
+ 0, 0, 0, 0, 0, 0, 0, 0,
1229
+ 0, 0, 0, 0, 0, 0, 0, 0,
1230
+ 0, 0, 0, 0, 0, 0, 0, 0,
1231
+ 0, 0, 0, 0, 0, 0, 0, 0,
1232
+ 0, 0, 0, 0, 0, 0, 0, 0,
1233
+ 0, 0, 0, 0, 0, 0, 0, 0,
1234
+ 0, 0, 0, 0, 0, 0, 0, 0,
1235
+ 0, 0, 0, 0, 0, 0, 0, 0,
1236
+ 0, 0, 0, 0, 0, 0, 0, 0,
1237
+ 0, 0, 0, 0, 0, 0, 0, 0,
1238
+ 0, 0, 0, 0, 0, 0, 0, 0,
1239
+ 0, 0, 0, 0, 0, 0, 0, 0,
1240
+ 0, 0, 0, 0, 0, 0, 0, 0,
1241
+ 0, 0, 0, 0, 0, 0, 0, 0,
1242
+ 0, 0, 0, 0, 0, 0, 0, 0,
1243
+ 0, 0, 0, 0, 0, 0, 0, 0,
1244
+ 0, 0, 0, 0, 0, 3, 0, 0,
1245
+ 0, 0, 0, 0, 0, 0, 0, 0,
1246
+ 0, 0, 0, 0, 0, 0, 0, 0,
1247
+ 0, 0, 0, 0, 0, 0, 0, 0,
1248
+ 0, 0, 0, 0, 0, 0, 0, 0,
1249
+ 0, 0, 0, 0, 0, 0, 0, 0,
1250
+ 0, 0, 0, 0, 0, 0, 0, 0,
1251
+ 0, 0, 0, 0, 0, 0, 0, 0,
1252
+ 0, 0, 0, 0, 0, 0, 0, 0,
1253
+ 0, 0, 0, 0, 0, 0, 0, 0,
1254
+ 0, 0, 0, 0, 0, 0, 0, 3,
1255
+ 0, 0, 0, 0, 0, 0, 0, 0,
1256
+ 0, 0, 0, 0, 3, 0, 3, 0,
1257
+ 3, 0, 3
1258
+ ]
1259
+
1260
+ class << self
1261
+ attr_accessor :_proc_scanner_eof_trans
1262
+ private :_proc_scanner_eof_trans, :_proc_scanner_eof_trans=
1263
+ end
1264
+ self._proc_scanner_eof_trans = [
1265
+ 0, 1863, 1863, 1863, 1863, 1863, 1863, 2232,
1266
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1267
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1268
+ 2232, 2232, 2079, 2079, 2232, 2232, 2232, 2232,
1269
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1270
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1271
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1272
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1273
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1274
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1275
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1276
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1277
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1278
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1279
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1280
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1281
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1282
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1283
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1284
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1285
+ 2232, 2079, 2079, 2079, 2232, 2232, 2232, 2232,
1286
+ 2232, 2232, 2079, 2079, 2079, 2340, 2340, 2232,
1287
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1288
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1289
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1290
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1291
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1292
+ 2232, 2232, 2232, 2232, 2079, 2079, 2079, 2232,
1293
+ 2232, 2232, 2232, 2221, 2221, 2232, 2232, 2232,
1294
+ 2221, 2221, 2232, 2232, 2232, 2221, 2221, 2232,
1295
+ 2232, 2232, 2221, 2221, 2232, 2232, 2232, 2221,
1296
+ 2221, 2232, 2232, 2232, 2221, 2221, 2232, 2232,
1297
+ 2232, 2221, 2221, 2232, 2232, 2232, 2221, 2221,
1298
+ 2232, 2232, 2232, 2221, 2221, 2232, 2232, 2232,
1299
+ 2221, 2221, 2232, 2232, 2232, 2221, 2221, 2232,
1300
+ 2232, 2232, 2221, 2221, 2232, 2232, 2232, 2221,
1301
+ 2221, 2232, 2232, 2232, 2221, 2221, 2232, 2232,
1302
+ 2232, 2221, 2221, 2232, 2232, 2232, 2221, 2221,
1303
+ 2232, 2232, 2232, 2221, 2221, 2232, 2232, 2232,
1304
+ 2221, 2221, 2232, 2232, 2232, 2221, 2221, 2232,
1305
+ 2232, 2232, 2221, 2221, 2232, 2232, 2232, 2221,
1306
+ 2221, 2232, 2232, 2221, 2221, 2221, 2221, 2232,
1307
+ 2232, 2232, 2221, 2221, 2232, 2232, 2232, 2221,
1308
+ 2221, 2232, 2232, 2232, 2221, 2221, 2232, 2232,
1309
+ 2232, 2221, 2221, 2232, 2232, 2232, 2221, 2221,
1310
+ 2232, 2232, 2232, 2221, 2221, 2232, 2224, 2224,
1311
+ 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
1312
+ 2233, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
1313
+ 2261, 2261, 2261, 2246, 2246, 2246, 2261, 2261,
1314
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
1315
+ 2261, 2261, 2261, 2261, 2261, 2266, 2266, 2266,
1316
+ 2266, 2266, 0, 0, 0, 0, 2267, 2268,
1317
+ 2341, 2299, 2341, 2299, 2299, 2299, 2299, 2299,
1318
+ 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299,
1319
+ 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299,
1320
+ 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2328,
1321
+ 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328,
1322
+ 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328,
1323
+ 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328,
1324
+ 2328, 2328, 2328, 2328, 2341, 2330, 2341, 2341,
1325
+ 2341, 2335, 2335, 2341, 2337, 2338, 2339, 2340,
1326
+ 2341, 2347, 2347, 2347, 2347, 2347, 2347, 0,
1327
+ 2348, 2359, 2359, 2353, 2353, 2353, 2359, 2359,
1328
+ 2359, 2359, 2359, 2359, 0, 2360, 0, 2361,
1329
+ 0, 2362, 0
1330
+ ]
1331
+
1332
+ class << self
1333
+ attr_accessor :proc_scanner_start
1334
+ end
1335
+ self.proc_scanner_start = 413;
1336
+ class << self
1337
+ attr_accessor :proc_scanner_first_final
1338
+ end
1339
+ self.proc_scanner_first_final = 413;
1340
+ class << self
1341
+ attr_accessor :proc_scanner_error
1342
+ end
1343
+ self.proc_scanner_error = 0;
1344
+
1345
+ class << self
1346
+ attr_accessor :proc_scanner_en_new_statement
1347
+ end
1348
+ self.proc_scanner_en_new_statement = 495;
1349
+ class << self
1350
+ attr_accessor :proc_scanner_en_per_line_comment
1351
+ end
1352
+ self.proc_scanner_en_per_line_comment = 508;
1353
+ class << self
1354
+ attr_accessor :proc_scanner_en_block_comment
1355
+ end
1356
+ self.proc_scanner_en_block_comment = 510;
1357
+ class << self
1358
+ attr_accessor :proc_scanner_en_heredoc
1359
+ end
1360
+ self.proc_scanner_en_heredoc = 512;
1361
+ class << self
1362
+ attr_accessor :proc_scanner_en_double_quote_str
1363
+ end
1364
+ self.proc_scanner_en_double_quote_str = 514;
1365
+ class << self
1366
+ attr_accessor :proc_scanner_en_main
1367
+ end
1368
+ self.proc_scanner_en_main = 413;
1369
+
1370
+
1371
+ # line 273 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1372
+
1373
+ extend Scanner::Extensions
1374
+
1375
+ def self.execute!
1376
+ data = @data
1377
+ eof = data.length
1378
+
1379
+ # line 2 "./spec/proc/../../lib/sourcify/proc/scanner.rb"
1380
+ begin
1381
+ p ||= 0
1382
+ pe ||= data.length
1383
+ cs = proc_scanner_start
1384
+ ts = nil
1385
+ te = nil
1386
+ act = 0
1387
+ end
1388
+
1389
+ # line 280 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1390
+
1391
+ # line 2 "./spec/proc/../../lib/sourcify/proc/scanner.rb"
1392
+ begin
1393
+ _klen, _trans, _keys, _acts, _nacts = nil
1394
+ _goto_level = 0
1395
+ _resume = 10
1396
+ _eof_trans = 15
1397
+ _again = 20
1398
+ _test_eof = 30
1399
+ _out = 40
1400
+ while true
1401
+ _trigger_goto = false
1402
+ if _goto_level <= 0
1403
+ if p == pe
1404
+ _goto_level = _test_eof
1405
+ next
1406
+ end
1407
+ if cs == 0
1408
+ _goto_level = _out
1409
+ next
1410
+ end
1411
+ end
1412
+ if _goto_level <= _resume
1413
+ _acts = _proc_scanner_from_state_actions[cs]
1414
+ _nacts = _proc_scanner_actions[_acts]
1415
+ _acts += 1
1416
+ while _nacts > 0
1417
+ _nacts -= 1
1418
+ _acts += 1
1419
+ case _proc_scanner_actions[_acts - 1]
1420
+ when 2 then
1421
+ # line 1 "NONE"
1422
+ begin
1423
+ ts = p
1424
+ end
1425
+ # line 2 "./spec/proc/../../lib/sourcify/proc/scanner.rb"
1426
+ end # from state action switch
1427
+ end
1428
+ if _trigger_goto
1429
+ next
1430
+ end
1431
+ _keys = _proc_scanner_key_offsets[cs]
1432
+ _trans = _proc_scanner_index_offsets[cs]
1433
+ _klen = _proc_scanner_single_lengths[cs]
1434
+ _break_match = false
1435
+
1436
+ begin
1437
+ if _klen > 0
1438
+ _lower = _keys
1439
+ _upper = _keys + _klen - 1
1440
+
1441
+ loop do
1442
+ break if _upper < _lower
1443
+ _mid = _lower + ( (_upper - _lower) >> 1 )
1444
+
1445
+ if data[p] < _proc_scanner_trans_keys[_mid]
1446
+ _upper = _mid - 1
1447
+ elsif data[p] > _proc_scanner_trans_keys[_mid]
1448
+ _lower = _mid + 1
1449
+ else
1450
+ _trans += (_mid - _keys)
1451
+ _break_match = true
1452
+ break
1453
+ end
1454
+ end # loop
1455
+ break if _break_match
1456
+ _keys += _klen
1457
+ _trans += _klen
1458
+ end
1459
+ _klen = _proc_scanner_range_lengths[cs]
1460
+ if _klen > 0
1461
+ _lower = _keys
1462
+ _upper = _keys + (_klen << 1) - 2
1463
+ loop do
1464
+ break if _upper < _lower
1465
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1)
1466
+ if data[p] < _proc_scanner_trans_keys[_mid]
1467
+ _upper = _mid - 2
1468
+ elsif data[p] > _proc_scanner_trans_keys[_mid+1]
1469
+ _lower = _mid + 2
1470
+ else
1471
+ _trans += ((_mid - _keys) >> 1)
1472
+ _break_match = true
1473
+ break
1474
+ end
1475
+ end # loop
1476
+ break if _break_match
1477
+ _trans += _klen
1478
+ end
1479
+ end while false
1480
+ end
1481
+ if _goto_level <= _eof_trans
1482
+ cs = _proc_scanner_trans_targs[_trans]
1483
+ if _proc_scanner_trans_actions[_trans] != 0
1484
+ _acts = _proc_scanner_trans_actions[_trans]
1485
+ _nacts = _proc_scanner_actions[_acts]
1486
+ _acts += 1
1487
+ while _nacts > 0
1488
+ _nacts -= 1
1489
+ _acts += 1
1490
+ case _proc_scanner_actions[_acts - 1]
1491
+ when 3 then
1492
+ # line 1 "NONE"
1493
+ begin
1494
+ te = p+1
1495
+ end
1496
+ when 4 then
1497
+ # line 46 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1498
+ begin
1499
+ te = p+1
1500
+ begin
1501
+ push(:kw_do_alias2, ts, te)
1502
+ increment_counter(:do_end, 0..1)
1503
+ begin
1504
+ cs = 413
1505
+ _trigger_goto = true
1506
+ _goto_level = _again
1507
+ break
1508
+ end
1509
+
1510
+ end
1511
+ end
1512
+ when 5 then
1513
+ # line 55 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1514
+ begin
1515
+ te = p+1
1516
+ begin
1517
+ push(:kw_do_alias1, ts, te)
1518
+ increment_counter(:do_end, 1)
1519
+ begin
1520
+ cs = 413
1521
+ _trigger_goto = true
1522
+ _goto_level = _again
1523
+ break
1524
+ end
1525
+
1526
+ end
1527
+ end
1528
+ when 6 then
1529
+ # line 62 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1530
+ begin
1531
+ te = p+1
1532
+ begin p = p - 1; begin
1533
+ cs = 413
1534
+ _trigger_goto = true
1535
+ _goto_level = _again
1536
+ break
1537
+ end
1538
+ end
1539
+ end
1540
+ when 7 then
1541
+ # line 55 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1542
+ begin
1543
+ te = p
1544
+ p = p - 1; begin
1545
+ push(:kw_do_alias1, ts, te)
1546
+ increment_counter(:do_end, 1)
1547
+ begin
1548
+ cs = 413
1549
+ _trigger_goto = true
1550
+ _goto_level = _again
1551
+ break
1552
+ end
1553
+
1554
+ end
1555
+ end
1556
+ when 8 then
1557
+ # line 61 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1558
+ begin
1559
+ te = p
1560
+ p = p - 1; begin push(:space, ts, te) end
1561
+ end
1562
+ when 9 then
1563
+ # line 62 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1564
+ begin
1565
+ te = p
1566
+ p = p - 1; begin p = p - 1; begin
1567
+ cs = 413
1568
+ _trigger_goto = true
1569
+ _goto_level = _again
1570
+ break
1571
+ end
1572
+ end
1573
+ end
1574
+ when 10 then
1575
+ # line 55 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1576
+ begin
1577
+ begin p = ((te))-1; end
1578
+ begin
1579
+ push(:kw_do_alias1, ts, te)
1580
+ increment_counter(:do_end, 1)
1581
+ begin
1582
+ cs = 413
1583
+ _trigger_goto = true
1584
+ _goto_level = _again
1585
+ break
1586
+ end
1587
+
1588
+ end
1589
+ end
1590
+ when 11 then
1591
+ # line 62 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1592
+ begin
1593
+ begin p = ((te))-1; end
1594
+ begin p = p - 1; begin
1595
+ cs = 413
1596
+ _trigger_goto = true
1597
+ _goto_level = _again
1598
+ break
1599
+ end
1600
+ end
1601
+ end
1602
+ when 12 then
1603
+ # line 68 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1604
+ begin
1605
+ act = 5; end
1606
+ when 13 then
1607
+ # line 1 "NONE"
1608
+ begin
1609
+ case act
1610
+ when 0 then
1611
+ begin begin
1612
+ cs = 0
1613
+ _trigger_goto = true
1614
+ _goto_level = _again
1615
+ break
1616
+ end
1617
+ end
1618
+ when 5 then
1619
+ begin begin p = ((te))-1; end
1620
+
1621
+ push(:comment, ts.pred, te)
1622
+ begin
1623
+ cs = 413
1624
+ _trigger_goto = true
1625
+ _goto_level = _again
1626
+ break
1627
+ end
1628
+
1629
+ end
1630
+ end
1631
+ end
1632
+ when 14 then
1633
+ # line 76 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1634
+ begin
1635
+ act = 6; end
1636
+ when 15 then
1637
+ # line 76 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1638
+ begin
1639
+ te = p
1640
+ p = p - 1; begin
1641
+ unless push_comment(ts, te)
1642
+ begin
1643
+ cs = 413
1644
+ _trigger_goto = true
1645
+ _goto_level = _again
1646
+ break
1647
+ end
1648
+
1649
+ end
1650
+ end
1651
+ end
1652
+ when 16 then
1653
+ # line 1 "NONE"
1654
+ begin
1655
+ case act
1656
+ when 0 then
1657
+ begin begin
1658
+ cs = 0
1659
+ _trigger_goto = true
1660
+ _goto_level = _again
1661
+ break
1662
+ end
1663
+ end
1664
+ when 6 then
1665
+ begin begin p = ((te))-1; end
1666
+
1667
+ unless push_comment(ts, te)
1668
+ begin
1669
+ cs = 413
1670
+ _trigger_goto = true
1671
+ _goto_level = _again
1672
+ break
1673
+ end
1674
+
1675
+ end
1676
+ end
1677
+ end
1678
+ end
1679
+ when 17 then
1680
+ # line 85 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1681
+ begin
1682
+ te = p
1683
+ p = p - 1; begin
1684
+ unless push_heredoc(ts, te)
1685
+ begin
1686
+ cs = 413
1687
+ _trigger_goto = true
1688
+ _goto_level = _again
1689
+ break
1690
+ end
1691
+
1692
+ end
1693
+ end
1694
+ end
1695
+ when 18 then
1696
+ # line 95 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1697
+ begin
1698
+ te = p+1
1699
+ begin
1700
+ unless push_dstring(ts, te)
1701
+ begin
1702
+ cs = 413
1703
+ _trigger_goto = true
1704
+ _goto_level = _again
1705
+ break
1706
+ end
1707
+
1708
+ end
1709
+ end
1710
+ end
1711
+ when 19 then
1712
+ # line 107 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1713
+ begin
1714
+ act = 9; end
1715
+ when 20 then
1716
+ # line 113 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1717
+ begin
1718
+ act = 10; end
1719
+ when 21 then
1720
+ # line 148 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1721
+ begin
1722
+ act = 16; end
1723
+ when 22 then
1724
+ # line 167 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1725
+ begin
1726
+ act = 19; end
1727
+ when 23 then
1728
+ # line 171 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1729
+ begin
1730
+ act = 23; end
1731
+ when 24 then
1732
+ # line 263 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1733
+ begin
1734
+ act = 27; end
1735
+ when 25 then
1736
+ # line 120 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1737
+ begin
1738
+ te = p+1
1739
+ begin
1740
+ push(:lbrace, ts, te)
1741
+ increment_counter(:brace)
1742
+ end
1743
+ end
1744
+ when 26 then
1745
+ # line 125 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1746
+ begin
1747
+ te = p+1
1748
+ begin
1749
+ push(:rbrace, ts, te)
1750
+ decrement_counter(:brace)
1751
+ end
1752
+ end
1753
+ when 27 then
1754
+ # line 130 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1755
+ begin
1756
+ te = p+1
1757
+ begin
1758
+ push(:assoc, ts, te)
1759
+ fix_counter_false_start(:brace)
1760
+ end
1761
+ end
1762
+ when 28 then
1763
+ # line 135 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1764
+ begin
1765
+ te = p+1
1766
+ begin
1767
+ push_label(ts, te)
1768
+ fix_counter_false_start(:brace)
1769
+ end
1770
+ end
1771
+ when 29 then
1772
+ # line 148 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1773
+ begin
1774
+ te = p+1
1775
+ begin
1776
+ push(:newline_alias, ts, te)
1777
+ begin
1778
+ cs = 495
1779
+ _trigger_goto = true
1780
+ _goto_level = _again
1781
+ break
1782
+ end
1783
+
1784
+ end
1785
+ end
1786
+ when 30 then
1787
+ # line 155 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1788
+ begin
1789
+ te = p+1
1790
+ begin
1791
+ begin
1792
+ cs = 508
1793
+ _trigger_goto = true
1794
+ _goto_level = _again
1795
+ break
1796
+ end
1797
+
1798
+ end
1799
+ end
1800
+ when 31 then
1801
+ # line 159 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1802
+ begin
1803
+ te = p+1
1804
+ begin
1805
+ push_comment(ts, te)
1806
+ increment_lineno
1807
+ begin
1808
+ cs = 510
1809
+ _trigger_goto = true
1810
+ _goto_level = _again
1811
+ break
1812
+ end
1813
+
1814
+ end
1815
+ end
1816
+ when 32 then
1817
+ # line 171 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1818
+ begin
1819
+ te = p+1
1820
+ begin push(:any, ts, te) end
1821
+ end
1822
+ when 33 then
1823
+ # line 176 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1824
+ begin
1825
+ te = p+1
1826
+ begin
1827
+ push_heredoc(ts, te)
1828
+ increment_lineno
1829
+ begin
1830
+ cs = 512
1831
+ _trigger_goto = true
1832
+ _goto_level = _again
1833
+ break
1834
+ end
1835
+
1836
+ end
1837
+ end
1838
+ when 34 then
1839
+ # line 220 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1840
+ begin
1841
+ te = p+1
1842
+ begin
1843
+ push(:sstring, ts, te)
1844
+ end
1845
+ end
1846
+ when 35 then
1847
+ # line 263 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1848
+ begin
1849
+ te = p+1
1850
+ begin
1851
+ if push_dstring(ts, te)
1852
+ begin
1853
+ cs = 514
1854
+ _trigger_goto = true
1855
+ _goto_level = _again
1856
+ break
1857
+ end
1858
+
1859
+ end
1860
+ end
1861
+ end
1862
+ when 36 then
1863
+ # line 135 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1864
+ begin
1865
+ te = p
1866
+ p = p - 1; begin
1867
+ push_label(ts, te)
1868
+ fix_counter_false_start(:brace)
1869
+ end
1870
+ end
1871
+ when 37 then
1872
+ # line 142 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1873
+ begin
1874
+ te = p
1875
+ p = p - 1; begin
1876
+ push(:newline, ts, te)
1877
+ increment_lineno
1878
+ begin
1879
+ cs = 495
1880
+ _trigger_goto = true
1881
+ _goto_level = _again
1882
+ break
1883
+ end
1884
+
1885
+ end
1886
+ end
1887
+ when 38 then
1888
+ # line 148 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1889
+ begin
1890
+ te = p
1891
+ p = p - 1; begin
1892
+ push(:newline_alias, ts, te)
1893
+ begin
1894
+ cs = 495
1895
+ _trigger_goto = true
1896
+ _goto_level = _again
1897
+ break
1898
+ end
1899
+
1900
+ end
1901
+ end
1902
+ when 39 then
1903
+ # line 167 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1904
+ begin
1905
+ te = p
1906
+ p = p - 1; begin push(:var, ts, te) end
1907
+ end
1908
+ when 40 then
1909
+ # line 168 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1910
+ begin
1911
+ te = p
1912
+ p = p - 1; begin push(:const, ts, te) end
1913
+ end
1914
+ when 41 then
1915
+ # line 169 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1916
+ begin
1917
+ te = p
1918
+ p = p - 1; begin push(:symbol, ts, te) end
1919
+ end
1920
+ when 42 then
1921
+ # line 170 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1922
+ begin
1923
+ te = p
1924
+ p = p - 1; begin push(:space, ts, te) end
1925
+ end
1926
+ when 43 then
1927
+ # line 171 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1928
+ begin
1929
+ te = p
1930
+ p = p - 1; begin push(:any, ts, te) end
1931
+ end
1932
+ when 44 then
1933
+ # line 172 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1934
+ begin
1935
+ te = p
1936
+ p = p - 1; begin push(:to_proc, ts, te) end
1937
+ end
1938
+ when 45 then
1939
+ # line 220 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1940
+ begin
1941
+ te = p
1942
+ p = p - 1; begin
1943
+ push(:sstring, ts, te)
1944
+ end
1945
+ end
1946
+ when 46 then
1947
+ # line 263 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1948
+ begin
1949
+ te = p
1950
+ p = p - 1; begin
1951
+ if push_dstring(ts, te)
1952
+ begin
1953
+ cs = 514
1954
+ _trigger_goto = true
1955
+ _goto_level = _again
1956
+ break
1957
+ end
1958
+
1959
+ end
1960
+ end
1961
+ end
1962
+ when 47 then
1963
+ # line 135 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1964
+ begin
1965
+ begin p = ((te))-1; end
1966
+ begin
1967
+ push_label(ts, te)
1968
+ fix_counter_false_start(:brace)
1969
+ end
1970
+ end
1971
+ when 48 then
1972
+ # line 142 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1973
+ begin
1974
+ begin p = ((te))-1; end
1975
+ begin
1976
+ push(:newline, ts, te)
1977
+ increment_lineno
1978
+ begin
1979
+ cs = 495
1980
+ _trigger_goto = true
1981
+ _goto_level = _again
1982
+ break
1983
+ end
1984
+
1985
+ end
1986
+ end
1987
+ when 49 then
1988
+ # line 169 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1989
+ begin
1990
+ begin p = ((te))-1; end
1991
+ begin push(:symbol, ts, te) end
1992
+ end
1993
+ when 50 then
1994
+ # line 171 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
1995
+ begin
1996
+ begin p = ((te))-1; end
1997
+ begin push(:any, ts, te) end
1998
+ end
1999
+ when 51 then
2000
+ # line 220 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
2001
+ begin
2002
+ begin p = ((te))-1; end
2003
+ begin
2004
+ push(:sstring, ts, te)
2005
+ end
2006
+ end
2007
+ when 52 then
2008
+ # line 263 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
2009
+ begin
2010
+ begin p = ((te))-1; end
2011
+ begin
2012
+ if push_dstring(ts, te)
2013
+ begin
2014
+ cs = 514
2015
+ _trigger_goto = true
2016
+ _goto_level = _again
2017
+ break
2018
+ end
2019
+
2020
+ end
2021
+ end
2022
+ end
2023
+ when 53 then
2024
+ # line 1 "NONE"
2025
+ begin
2026
+ case act
2027
+ when 9 then
2028
+ begin begin p = ((te))-1; end
2029
+
2030
+ push(:kw_do, ts, te)
2031
+ increment_counter(:do_end)
2032
+ begin
2033
+ cs = 495
2034
+ _trigger_goto = true
2035
+ _goto_level = _again
2036
+ break
2037
+ end
2038
+
2039
+ end
2040
+ when 10 then
2041
+ begin begin p = ((te))-1; end
2042
+
2043
+ push(:kw_end, ts, te)
2044
+ decrement_counter(:do_end)
2045
+ end
2046
+ when 16 then
2047
+ begin begin p = ((te))-1; end
2048
+
2049
+ push(:newline_alias, ts, te)
2050
+ begin
2051
+ cs = 495
2052
+ _trigger_goto = true
2053
+ _goto_level = _again
2054
+ break
2055
+ end
2056
+
2057
+ end
2058
+ when 19 then
2059
+ begin begin p = ((te))-1; end
2060
+ push(:var, ts, te) end
2061
+ when 23 then
2062
+ begin begin p = ((te))-1; end
2063
+ push(:any, ts, te) end
2064
+ when 27 then
2065
+ begin begin p = ((te))-1; end
2066
+
2067
+ if push_dstring(ts, te)
2068
+ begin
2069
+ cs = 514
2070
+ _trigger_goto = true
2071
+ _goto_level = _again
2072
+ break
2073
+ end
2074
+
2075
+ end
2076
+ end
2077
+ end
2078
+ end
2079
+ # line 2 "./spec/proc/../../lib/sourcify/proc/scanner.rb"
2080
+ end # action switch
2081
+ end
2082
+ end
2083
+ if _trigger_goto
2084
+ next
2085
+ end
2086
+ end
2087
+ if _goto_level <= _again
2088
+ _acts = _proc_scanner_to_state_actions[cs]
2089
+ _nacts = _proc_scanner_actions[_acts]
2090
+ _acts += 1
2091
+ while _nacts > 0
2092
+ _nacts -= 1
2093
+ _acts += 1
2094
+ case _proc_scanner_actions[_acts - 1]
2095
+ when 0 then
2096
+ # line 1 "NONE"
2097
+ begin
2098
+ ts = nil; end
2099
+ when 1 then
2100
+ # line 1 "NONE"
2101
+ begin
2102
+ act = 0
2103
+ end
2104
+ # line 2 "./spec/proc/../../lib/sourcify/proc/scanner.rb"
2105
+ end # to state action switch
2106
+ end
2107
+ if _trigger_goto
2108
+ next
2109
+ end
2110
+ if cs == 0
2111
+ _goto_level = _out
2112
+ next
2113
+ end
2114
+ p += 1
2115
+ if p != pe
2116
+ _goto_level = _resume
2117
+ next
2118
+ end
2119
+ end
2120
+ if _goto_level <= _test_eof
2121
+ if p == eof
2122
+ if _proc_scanner_eof_trans[cs] > 0
2123
+ _trans = _proc_scanner_eof_trans[cs] - 1;
2124
+ _goto_level = _eof_trans
2125
+ next;
2126
+ end
2127
+ end
2128
+ end
2129
+ if _goto_level <= _out
2130
+ break
2131
+ end
2132
+ end
2133
+ end
2134
+
2135
+ # line 281 "./spec/proc/../../lib/sourcify/proc/scanner.rl"
2136
+ end
2137
+
2138
+ end
2139
+ end
2140
+ end