sourcify 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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