antlr3 1.8.0 → 1.8.2

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 (111) hide show
  1. data/History.txt +35 -0
  2. data/Manifest.txt +73 -0
  3. data/README.txt +6 -13
  4. data/java/RubyTarget.java +43 -19
  5. data/java/antlr-full-3.2.1.jar +0 -0
  6. data/lib/antlr3/debug.rb +2 -0
  7. data/lib/antlr3/debug/event-hub.rb +55 -55
  8. data/lib/antlr3/debug/record-event-listener.rb +2 -2
  9. data/lib/antlr3/debug/rule-tracer.rb +14 -14
  10. data/lib/antlr3/debug/socket.rb +47 -47
  11. data/lib/antlr3/debug/trace-event-listener.rb +8 -8
  12. data/lib/antlr3/main.rb +29 -9
  13. data/lib/antlr3/modes/ast-builder.rb +7 -7
  14. data/lib/antlr3/modes/filter.rb +19 -17
  15. data/lib/antlr3/profile.rb +34 -6
  16. data/lib/antlr3/recognizers.rb +50 -1
  17. data/lib/antlr3/streams.rb +19 -15
  18. data/lib/antlr3/streams/rewrite.rb +241 -229
  19. data/lib/antlr3/template/group-file-lexer.rb +6 -8
  20. data/lib/antlr3/template/group-file-parser.rb +16 -16
  21. data/lib/antlr3/template/group-file.rb +1 -1
  22. data/lib/antlr3/test/call-stack.rb +13 -13
  23. data/lib/antlr3/test/core-extensions.rb +69 -69
  24. data/lib/antlr3/test/functional.rb +0 -4
  25. data/lib/antlr3/test/grammar.rb +70 -70
  26. data/lib/antlr3/token.rb +41 -17
  27. data/lib/antlr3/tree.rb +11 -14
  28. data/lib/antlr3/tree/debug.rb +53 -53
  29. data/lib/antlr3/tree/visitor.rb +11 -11
  30. data/lib/antlr3/tree/wizard.rb +35 -35
  31. data/lib/antlr3/util.rb +18 -0
  32. data/lib/antlr3/version.rb +1 -1
  33. data/rakefile +1 -0
  34. data/samples/ANTLRv3Grammar.g +3 -3
  35. data/samples/JavaScript.g +702 -0
  36. data/samples/standard/C/C.g +543 -0
  37. data/samples/standard/C/C.tokens +175 -0
  38. data/samples/standard/C/C__testrig.st +0 -0
  39. data/samples/standard/C/c.rb +12 -0
  40. data/samples/standard/C/input +3479 -0
  41. data/samples/standard/C/output +171 -0
  42. data/samples/standard/LL-star/LLStar.g +101 -0
  43. data/samples/standard/LL-star/input +12 -0
  44. data/samples/standard/LL-star/ll-star.rb +12 -0
  45. data/samples/standard/LL-star/output +2 -0
  46. data/samples/standard/calc/Calculator.g +47 -0
  47. data/samples/standard/calc/Calculator.py +16 -0
  48. data/samples/standard/calc/Calculator.rb +28 -0
  49. data/samples/standard/cminus/CMinus.g +141 -0
  50. data/samples/standard/cminus/bytecode.group +80 -0
  51. data/samples/standard/cminus/cminus.rb +16 -0
  52. data/samples/standard/cminus/input +9 -0
  53. data/samples/standard/cminus/java.group +91 -0
  54. data/samples/standard/cminus/output +11 -0
  55. data/samples/standard/cminus/python.group +48 -0
  56. data/samples/standard/dynamic-scope/DynamicScopes.g +50 -0
  57. data/samples/standard/dynamic-scope/dynamic-scopes.rb +12 -0
  58. data/samples/standard/dynamic-scope/input +7 -0
  59. data/samples/standard/dynamic-scope/output +4 -0
  60. data/samples/standard/fuzzy/FuzzyJava.g +89 -0
  61. data/samples/standard/fuzzy/fuzzy.py +11 -0
  62. data/samples/standard/fuzzy/fuzzy.rb +9 -0
  63. data/samples/standard/fuzzy/input +13 -0
  64. data/samples/standard/fuzzy/output +12 -0
  65. data/samples/standard/hoisted-predicates/HoistedPredicates.g +40 -0
  66. data/samples/standard/hoisted-predicates/hoisted-predicates.rb +13 -0
  67. data/samples/standard/hoisted-predicates/input +1 -0
  68. data/samples/standard/hoisted-predicates/output +1 -0
  69. data/samples/standard/island-grammar/Javadoc.g +46 -0
  70. data/samples/standard/island-grammar/Simple.g +104 -0
  71. data/samples/standard/island-grammar/input +11 -0
  72. data/samples/standard/island-grammar/island.rb +12 -0
  73. data/samples/standard/island-grammar/output +16 -0
  74. data/samples/standard/java/Java.g +827 -0
  75. data/samples/standard/java/input +80 -0
  76. data/samples/standard/java/java.rb +13 -0
  77. data/samples/standard/java/output +1 -0
  78. data/samples/standard/python/Python.g +718 -0
  79. data/samples/standard/python/PythonTokenSource.rb +107 -0
  80. data/samples/standard/python/input +210 -0
  81. data/samples/standard/python/output +24 -0
  82. data/samples/standard/python/python.rb +14 -0
  83. data/samples/standard/rakefile +18 -0
  84. data/samples/standard/scopes/SymbolTable.g +66 -0
  85. data/samples/standard/scopes/input +12 -0
  86. data/samples/standard/scopes/output +3 -0
  87. data/samples/standard/scopes/scopes.rb +12 -0
  88. data/samples/standard/simplecTreeParser/SimpleC.g +113 -0
  89. data/samples/standard/simplecTreeParser/SimpleCWalker.g +64 -0
  90. data/samples/standard/simplecTreeParser/input +12 -0
  91. data/samples/standard/simplecTreeParser/output +1 -0
  92. data/samples/standard/simplecTreeParser/simplec.rb +18 -0
  93. data/samples/standard/treeparser/Lang.g +24 -0
  94. data/samples/standard/treeparser/LangDumpDecl.g +17 -0
  95. data/samples/standard/treeparser/input +1 -0
  96. data/samples/standard/treeparser/output +2 -0
  97. data/samples/standard/treeparser/treeparser.rb +18 -0
  98. data/samples/standard/tweak/Tweak.g +68 -0
  99. data/samples/standard/tweak/input +9 -0
  100. data/samples/standard/tweak/output +16 -0
  101. data/samples/standard/tweak/tweak.rb +13 -0
  102. data/samples/standard/xml/README +16 -0
  103. data/samples/standard/xml/XML.g +123 -0
  104. data/samples/standard/xml/input +21 -0
  105. data/samples/standard/xml/output +39 -0
  106. data/samples/standard/xml/xml.rb +9 -0
  107. data/templates/Ruby.stg +4 -4
  108. data/test/functional/ast-output/auto-ast.rb +0 -5
  109. data/test/functional/ast-output/rewrites.rb +4 -4
  110. data/test/unit/test-scope.rb +45 -0
  111. metadata +96 -8
@@ -11,53 +11,53 @@ Adds debugging event hooks to TreeAdaptor objects
11
11
  module TreeAdaptor
12
12
 
13
13
  def self.wrap( adaptor, debug_listener = nil )
14
- adaptor.extend(self)
14
+ adaptor.extend( self )
15
15
  adaptor.debug_listener = debug_listener
16
16
  return( adaptor )
17
17
  end
18
18
 
19
19
  attr_accessor :debug_listener
20
20
 
21
- def create_with_payload(payload)
21
+ def create_with_payload( payload )
22
22
  node = super
23
- @debug_listener.create_node(node, payload)
23
+ @debug_listener.create_node( node, payload )
24
24
  return node
25
25
  end
26
26
 
27
- def create_from_token(token_type, from_token, text = nil)
27
+ def create_from_token( token_type, from_token, text = nil )
28
28
  node = super
29
- @debug_listener.create_node(node)
29
+ @debug_listener.create_node( node )
30
30
  return node
31
31
  end
32
32
 
33
- def create_from_type(token_type, text)
33
+ def create_from_type( token_type, text )
34
34
  node = super
35
- @debug_listener.create_node(node)
35
+ @debug_listener.create_node( node )
36
36
  return node
37
37
  end
38
38
 
39
- def create_error_node(input, start, stop, exc)
39
+ def create_error_node( input, start, stop, exc )
40
40
  node = super
41
- node.nil? or @debug_listener.error_node(node)
41
+ node.nil? or @debug_listener.error_node( node )
42
42
  return node
43
43
  end
44
44
 
45
- def copy_tree(tree)
45
+ def copy_tree( tree )
46
46
  t = super
47
- simulate_tree_construction(t)
47
+ simulate_tree_construction( t )
48
48
  return t
49
49
  end
50
50
 
51
- def simulate_tree_construction(tree)
52
- @debug_listener.create_node(tree)
53
- child_count(tree).times do |i|
54
- child = self.child_of(tree, i)
55
- simulate_tree_construction(child)
56
- @debug_listener.add_child(tree, child)
51
+ def simulate_tree_construction( tree )
52
+ @debug_listener.create_node( tree )
53
+ child_count( tree ).times do |i|
54
+ child = self.child_of( tree, i )
55
+ simulate_tree_construction( child )
56
+ @debug_listener.add_child( tree, child )
57
57
  end
58
58
  end
59
59
 
60
- def copy_node(tree_node)
60
+ def copy_node( tree_node )
61
61
  duplicate = super
62
62
  @debug_listener.create_node duplicate
63
63
  return duplicate
@@ -65,39 +65,39 @@ module TreeAdaptor
65
65
 
66
66
  def create_flat_list
67
67
  node = super
68
- @debug_listener.flat_node(node)
68
+ @debug_listener.flat_node( node )
69
69
  return node
70
70
  end
71
71
 
72
- def add_child(tree, child)
72
+ def add_child( tree, child )
73
73
  case child
74
74
  when Token
75
- node = create_with_payload(child)
76
- add_child(tree, node)
75
+ node = create_with_payload( child )
76
+ add_child( tree, node )
77
77
  else
78
78
  tree.nil? || child.nil? and return
79
- super(tree, child)
80
- @debug_listener.add_child(tree, child)
79
+ super( tree, child )
80
+ @debug_listener.add_child( tree, child )
81
81
  end
82
82
  end
83
83
 
84
- def become_root(new_root, old_root)
84
+ def become_root( new_root, old_root )
85
85
  case new_root
86
86
  when Token
87
- n = create_with_payload(new_root)
88
- super(n, old_root)
87
+ n = create_with_payload( new_root )
88
+ super( n, old_root )
89
89
  else
90
- n = super(new_root, old_root)
90
+ n = super( new_root, old_root )
91
91
  end
92
- @debug_listener.become_root(new_root, old_root)
92
+ @debug_listener.become_root( new_root, old_root )
93
93
  return n
94
94
  end
95
95
 
96
- def set_token_boundaries(tree, start_token, stop_token)
97
- super(tree, start_token, stop_token)
96
+ def set_token_boundaries( tree, start_token, stop_token )
97
+ super( tree, start_token, stop_token )
98
98
  return unless tree && start_token && stop_token
99
- @debug_listener.set_token_boundaries(tree,
100
- start_token.token_index, stop_token.token_index)
99
+ @debug_listener.set_token_boundaries( tree,
100
+ start_token.token_index, stop_token.token_index )
101
101
  end
102
102
  end
103
103
 
@@ -110,8 +110,8 @@ not already a Debug::TreeNodeStream.
110
110
  =end
111
111
  class TreeNodeStream
112
112
 
113
- def self.wrap(stream, debug_listener = nil)
114
- stream.extend(self)
113
+ def self.wrap( stream, debug_listener = nil )
114
+ stream.extend( self )
115
115
  stream.debug_listener ||= debug_listener
116
116
  end
117
117
  attr_accessor :debug_listener
@@ -119,36 +119,36 @@ class TreeNodeStream
119
119
  def consume
120
120
  node = @input >> 1
121
121
  super
122
- @debug_listener.consume_node(node)
122
+ @debug_listener.consume_node( node )
123
123
  end
124
124
 
125
- def look(i = 1)
125
+ def look( i = 1 )
126
126
  node = super
127
- id = @adaptor.unique_id(node)
128
- text = @adaptor.text_of(node)
129
- type = @adaptor.type_of(node)
130
- @debug_listener.look(i, node)
131
- return(node)
127
+ id = @adaptor.unique_id( node )
128
+ text = @adaptor.text_of( node )
129
+ type = @adaptor.type_of( node )
130
+ @debug_listener.look( i, node )
131
+ return( node )
132
132
  end
133
133
 
134
- def peek(i = 1)
134
+ def peek( i = 1 )
135
135
  node = self >> 1
136
- id = @adaptor.unique_id(node)
137
- text = @adaptor.text_of(node)
138
- type = @adaptor.type_of(node)
139
- @debug_listener.look(i, node)
140
- return(type)
136
+ id = @adaptor.unique_id( node )
137
+ text = @adaptor.text_of( node )
138
+ type = @adaptor.type_of( node )
139
+ @debug_listener.look( i, node )
140
+ return( type )
141
141
  end
142
142
 
143
143
  def mark
144
144
  @last_marker = super
145
- @debug_listener.mark(@last_marker)
146
- return(@last_marker)
145
+ @debug_listener.mark( @last_marker )
146
+ return( @last_marker )
147
147
  end
148
148
 
149
- def rewind(marker = nil)
150
- @debug_listener.rewind(marker)
151
- super(marker || @last_marker)
149
+ def rewind( marker = nil )
150
+ @debug_listener.rewind( marker )
151
+ super( marker || @last_marker )
152
152
  end
153
153
 
154
154
  =begin This actually differs with reset in CommonTreeNodeStream -- why is this one blank?
@@ -48,34 +48,34 @@ children have been visited.
48
48
  =end
49
49
 
50
50
  class Visitor
51
- def initialize(adaptor = nil)
51
+ def initialize( adaptor = nil )
52
52
  @adaptor = adaptor || CommonTreeAdaptor.new()
53
53
  @pre_action = nil
54
54
  @post_action = nil
55
- block_given? and yield(self)
55
+ block_given? and yield( self )
56
56
  end
57
57
 
58
- def pre_action(&block)
58
+ def pre_action( &block )
59
59
  block_given? and @pre_action = block
60
60
  return @pre_action
61
61
  end
62
62
 
63
- def post_action(&block)
63
+ def post_action( &block )
64
64
  block_given? and @post_action = block
65
65
  return @post_action
66
66
  end
67
67
 
68
- def visit(tree, pre_action = nil, post_action = nil)
69
- flat = @adaptor.flat_list?(tree)
68
+ def visit( tree, pre_action = nil, post_action = nil )
69
+ flat = @adaptor.flat_list?( tree )
70
70
  before = pre_action || @pre_action
71
71
  after = post_action || @post_action
72
72
 
73
- tree = before.call(tree) unless before.nil? or flat
74
- @adaptor.child_count(tree).times do |index|
75
- child = @adaptor.child_of(tree, index)
76
- visit(child, pre_action, post_action)
73
+ tree = before.call( tree ) unless before.nil? or flat
74
+ @adaptor.child_count( tree ).times do |index|
75
+ child = @adaptor.child_of( tree, index )
76
+ visit( child, pre_action, post_action )
77
77
  end
78
- tree = after.call(tree) unless after.nil? or flat
78
+ tree = after.call( tree ) unless after.nil? or flat
79
79
 
80
80
  return tree
81
81
  end
@@ -130,15 +130,15 @@ A class that is used internally by AST::Wizard to tokenize tree patterns
130
130
 
131
131
  autoload :StringScanner, 'strscan'
132
132
 
133
- PATTERNS = [
134
- [:space, /\s+/],
135
- [:identifier, /[a-z_]\w*/i],
136
- [:open, /\(/],
137
- [:close, /\)/],
138
- [:percent, /%/],
139
- [:colon, /:/],
140
- [:dot, /\./],
141
- [:argument, /\[((?:[^\[\]\\]|\\\[|\\\]|\\.)*?)\]/]
133
+ PATTERNS = [
134
+ [ :space, /\s+/ ],
135
+ [ :identifier, /[a-z_]\w*/i ],
136
+ [ :open, /\(/ ],
137
+ [ :close, /\)/ ],
138
+ [ :percent, /%/ ],
139
+ [ :colon, /:/ ],
140
+ [ :dot, /\./ ],
141
+ [ :argument, /\[((?:[^\[\]\\]|\\\[|\\\]|\\.)*?)\]/ ]
142
142
  ]
143
143
 
144
144
  attr_reader :text, :error, :pattern
@@ -154,7 +154,7 @@ A class that is used internally by AST::Wizard to tokenize tree patterns
154
154
  @scanner.eos? and return EOF
155
155
 
156
156
  type, = PATTERNS.find do |type, pattern|
157
- @scanner.scan(pattern)
157
+ @scanner.scan( pattern )
158
158
  end
159
159
 
160
160
  case type
@@ -164,7 +164,7 @@ A class that is used internally by AST::Wizard to tokenize tree patterns
164
164
  when :identifier then @text = @scanner.matched
165
165
  when :argument
166
166
  # remove escapes from \] sequences in the text argument
167
- (@text = @scanner[1]).gsub!(/\\(?=[\[\]])/, '')
167
+ ( @text = @scanner[ 1 ] ).gsub!( /\\(?=[\[\]])/, '' )
168
168
  end
169
169
  end while type == :space
170
170
 
@@ -208,7 +208,7 @@ from a tokenized tree pattern
208
208
  return nil
209
209
  end
210
210
 
211
- CONTINUE_TYPES = [:open, :identifier, :percent, :dot]
211
+ CONTINUE_TYPES = [ :open, :identifier, :percent, :dot ]
212
212
 
213
213
  def parse_tree
214
214
  @token_type != :open and return nil
@@ -219,10 +219,10 @@ from a tokenized tree pattern
219
219
  case @token_type
220
220
  when :open
221
221
  subtree = parse_tree
222
- @adaptor.add_child(root, subtree)
222
+ @adaptor.add_child( root, subtree )
223
223
  when :identifier, :percent, :dot
224
224
  child = parse_node or return nil
225
- @adaptor.add_child(root, child)
225
+ @adaptor.add_child( root, child )
226
226
  else break
227
227
  end
228
228
  end
@@ -234,16 +234,16 @@ from a tokenized tree pattern
234
234
  def parse_node
235
235
  label = nil
236
236
  if @token_type == :percent
237
- (@token_type = @tokenizer.next_token) == :identifier or return nil
237
+ ( @token_type = @tokenizer.next_token ) == :identifier or return nil
238
238
  label = @tokenizer.text
239
- (@token_type = @tokenizer.next_token) == :colon or return nil
239
+ ( @token_type = @tokenizer.next_token ) == :colon or return nil
240
240
  @token_type = @tokenizer.next_token
241
241
  end
242
242
 
243
243
  if @token_type == :dot
244
244
  @token_type = @tokenizer.next_token
245
- wildcard_payload = CommonToken.create(:type => 0, :text => '.')
246
- node = WildcardPattern.new(wildcard_payload)
245
+ wildcard_payload = CommonToken.create( :type => 0, :text => '.' )
246
+ node = WildcardPattern.new( wildcard_payload )
247
247
  label and node.label = label
248
248
  return node
249
249
  end
@@ -281,7 +281,7 @@ to validate tree structures as well as to extract nodes that match the pattern.
281
281
 
282
282
  class Pattern < CommonTree
283
283
  def self.parse( pattern_str, scheme )
284
- PatternParser.parse(
284
+ PatternParser.parse(
285
285
  pattern_str, scheme, PatternAdaptor.new( scheme.token_class )
286
286
  )
287
287
  end
@@ -349,20 +349,20 @@ A customized TreeAdaptor used by AST::Wizards to build tree patterns.
349
349
 
350
350
  def find( tree, what )
351
351
  case what
352
- when Integer then find_token_type(tree, what)
353
- when String then find_pattern(tree, what)
352
+ when Integer then find_token_type( tree, what )
353
+ when String then find_pattern( tree, what )
354
354
  when Symbol then find_token_type( tree, @token_scheme[ what ] )
355
355
  else raise ArgumentError, "search subject must be a token type (integer) or a string"
356
356
  end
357
357
  end
358
358
 
359
- def find_token_type(tree, type)
359
+ def find_token_type( tree, type )
360
360
  nodes = []
361
361
  visit( tree, type ) { | t, | nodes << t }
362
362
  return nodes
363
363
  end
364
364
 
365
- def find_pattern(tree, pattern)
365
+ def find_pattern( tree, pattern )
366
366
  subtrees = []
367
367
  visit_pattern( tree, pattern ) { | t, | subtrees << t }
368
368
  return( subtrees )
@@ -392,7 +392,7 @@ A customized TreeAdaptor used by AST::Wizards to build tree patterns.
392
392
  end
393
393
 
394
394
  def visit_type( tree, parent, type, &block )
395
- tree.nil? and return(nil)
395
+ tree.nil? and return( nil )
396
396
  index = @adaptor.child_index( tree )
397
397
  @adaptor.type_of( tree ) == type and yield( tree, parent, index, nil )
398
398
  @adaptor.each_child( tree ) do | child |
@@ -422,20 +422,20 @@ A customized TreeAdaptor used by AST::Wizards to build tree patterns.
422
422
  def match!( tree, pattern, labels = {} )
423
423
  tree.nil? || pattern.nil? and return false
424
424
  unless pattern.is_a? WildcardPattern
425
- @adaptor.type_of(tree) == pattern.type or return false
426
- pattern.has_text_arg && (@adaptor.text_of(tree) != pattern.text) and
425
+ @adaptor.type_of( tree ) == pattern.type or return false
426
+ pattern.has_text_arg && ( @adaptor.text_of( tree ) != pattern.text ) and
427
427
  return false
428
428
  end
429
429
  labels[ pattern.label ] = tree if labels && pattern.label
430
430
 
431
- number_of_children = @adaptor.child_count(tree)
431
+ number_of_children = @adaptor.child_count( tree )
432
432
  return false unless number_of_children == pattern.child_count
433
433
 
434
434
  number_of_children.times do |index|
435
- actual_child = @adaptor.child_of(tree, index)
435
+ actual_child = @adaptor.child_of( tree, index )
436
436
  pattern_child = pattern.child( index )
437
437
 
438
- return(false) unless match!( actual_child, pattern_child, labels )
438
+ return( false ) unless match!( actual_child, pattern_child, labels )
439
439
  end
440
440
 
441
441
  return labels
@@ -444,11 +444,11 @@ A customized TreeAdaptor used by AST::Wizards to build tree patterns.
444
444
  def equals( tree_a, tree_b, adaptor = @adaptor )
445
445
  tree_a && tree_b or return( false )
446
446
 
447
- adaptor.type_of(tree_a) == adaptor.type_of(tree_b) or return false
448
- adaptor.text_of(tree_a) == adaptor.text_of(tree_b) or return false
447
+ adaptor.type_of( tree_a ) == adaptor.type_of( tree_b ) or return false
448
+ adaptor.text_of( tree_a ) == adaptor.text_of( tree_b ) or return false
449
449
 
450
- child_count_a = adaptor.child_count(tree_a)
451
- child_count_b = adaptor.child_count(tree_b)
450
+ child_count_a = adaptor.child_count( tree_a )
451
+ child_count_b = adaptor.child_count( tree_b )
452
452
  child_count_a == child_count_b or return false
453
453
 
454
454
  child_count_a.times do | i |
@@ -469,9 +469,9 @@ A customized TreeAdaptor used by AST::Wizards to build tree patterns.
469
469
  when DOUBLE_ETC_PATTERN then raise ArgumentError, "invalid syntax: ... ..."
470
470
  end
471
471
 
472
- context = context.gsub(/([^\.\s])\.{3}([^\.])/, '\1 ... \2')
472
+ context = context.gsub( /([^\.\s])\.{3}([^\.])/, '\1 ... \2' )
473
473
  context.strip!
474
- nodes = context.split(/\s+/)
474
+ nodes = context.split( /\s+/ )
475
475
 
476
476
  while tree = @adaptor.parent( tree ) and node = nodes.pop
477
477
  if node == '...'
@@ -73,6 +73,24 @@ private
73
73
  END
74
74
  end
75
75
 
76
+ def deprecate( name, extra_message = nil )
77
+ hidden_name = "deprecated_#{ name }"
78
+ method_defined?( hidden_name ) and return
79
+
80
+ alias_method( hidden_name, name )
81
+ private( hidden_name )
82
+
83
+ message = "warning: method #{ self }##{ name } is deprecated"
84
+ extra_message and message << '; ' << extra_message.to_s
85
+
86
+ class_eval( <<-END )
87
+ def #{ name }( *args, &block )
88
+ warn( #{ message.inspect } )
89
+ #{ hidden_name }( *args, &block )
90
+ end
91
+ END
92
+ end
93
+
76
94
  def alias_accessor( alias_name, attr_name )
77
95
  alias_method( alias_name, attr_name )
78
96
  alias_method( :"#{ alias_name }=", :"#{ attr_name }=" )
@@ -20,7 +20,7 @@ module ANTLR3
20
20
  #
21
21
  MAJOR_VERSION = 1
22
22
  MINOR_VERSION = 8
23
- PATCH_VERSION = 0
23
+ PATCH_VERSION = 2
24
24
  VERSION = [ MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION ]
25
25
  VERSION_STRING = VERSION.join( '.' ).freeze
26
26