Files
codeql/ruby/ql/test/library-tests/ast/TreeSitter.expected
2025-04-03 09:12:23 +02:00

6305 lines
227 KiB
Plaintext

calls/calls.rb:
# 1| [Program] Program
# 2| 0: [Call] Call
# 2| 0: [Identifier] foo
# 2| 1: [ArgumentList] ArgumentList
# 2| 0: [ReservedWord] (
# 2| 1: [ReservedWord] )
# 5| 1: [Call] Call
# 5| 0: [Constant] Foo
# 5| 1: [ReservedWord] ::
# 5| 2: [Identifier] bar
# 5| 3: [ArgumentList] ArgumentList
# 5| 0: [ReservedWord] (
# 5| 1: [ReservedWord] )
# 8| 2: [Call] Call
# 8| 0: [Integer] 123
# 8| 1: [ReservedWord] .
# 8| 2: [Identifier] bar
# 11| 3: [Call] Call
# 11| 0: [Identifier] foo
# 11| 1: [ArgumentList] ArgumentList
# 11| 0: [Integer] 0
# 11| 1: [ReservedWord] ,
# 11| 2: [Integer] 1
# 11| 3: [ReservedWord] ,
# 11| 4: [Integer] 2
# 14| 4: [Call] Call
# 14| 0: [Identifier] foo
# 14| 1: [Block] Block
# 14| 0: [ReservedWord] {
# 14| 1: [BlockParameters] BlockParameters
# 14| 0: [ReservedWord] |
# 14| 1: [Identifier] x
# 14| 2: [ReservedWord] |
# 14| 2: [BlockBody] BlockBody
# 14| 0: [Binary] Binary
# 14| 0: [Identifier] x
# 14| 1: [ReservedWord] +
# 14| 2: [Integer] 1
# 14| 3: [ReservedWord] }
# 17| 5: [Call] Call
# 17| 0: [Identifier] foo
# 17| 1: [DoBlock] DoBlock
# 17| 0: [ReservedWord] do
# 17| 1: [BlockParameters] BlockParameters
# 17| 0: [ReservedWord] |
# 17| 1: [Identifier] x
# 17| 2: [ReservedWord] |
# 18| 2: [BodyStatement] BodyStatement
# 18| 0: [Binary] Binary
# 18| 0: [Identifier] x
# 18| 1: [ReservedWord] +
# 18| 2: [Integer] 1
# 19| 3: [ReservedWord] end
# 22| 6: [Call] Call
# 22| 0: [Integer] 123
# 22| 1: [ReservedWord] .
# 22| 2: [Identifier] bar
# 22| 3: [ArgumentList] ArgumentList
# 22| 0: [ReservedWord] (
# 22| 1: [String] String
# 22| 0: [ReservedWord] '
# 22| 1: [StringContent] foo
# 22| 2: [ReservedWord] '
# 22| 2: [ReservedWord] )
# 22| 4: [DoBlock] DoBlock
# 22| 0: [ReservedWord] do
# 22| 1: [BlockParameters] BlockParameters
# 22| 0: [ReservedWord] |
# 22| 1: [Identifier] x
# 22| 2: [ReservedWord] |
# 23| 2: [BodyStatement] BodyStatement
# 23| 0: [Binary] Binary
# 23| 0: [Identifier] x
# 23| 1: [ReservedWord] +
# 23| 2: [Integer] 1
# 24| 3: [ReservedWord] end
# 27| 7: [Method] Method
# 27| 0: [ReservedWord] def
# 27| 1: [Identifier] method_that_yields
# 28| 2: [BodyStatement] BodyStatement
# 28| 0: [Yield] Yield
# 28| 0: [ReservedWord] yield
# 29| 3: [ReservedWord] end
# 32| 8: [Method] Method
# 32| 0: [ReservedWord] def
# 32| 1: [Identifier] another_method_that_yields
# 33| 2: [BodyStatement] BodyStatement
# 33| 0: [Yield] Yield
# 33| 0: [ReservedWord] yield
# 33| 1: [ArgumentList] ArgumentList
# 33| 0: [Integer] 100
# 33| 1: [ReservedWord] ,
# 33| 2: [Integer] 200
# 34| 3: [ReservedWord] end
# 43| 9: [Identifier] foo
# 44| 10: [Call] Call
# 44| 0: [Constant] X
# 44| 1: [ReservedWord] ::
# 44| 2: [Identifier] foo
# 47| 11: [ParenthesizedStatements] ParenthesizedStatements
# 47| 0: [ReservedWord] (
# 47| 1: [Identifier] foo
# 47| 2: [ReservedWord] )
# 48| 12: [ParenthesizedStatements] ParenthesizedStatements
# 48| 0: [ReservedWord] (
# 48| 1: [Call] Call
# 48| 0: [Constant] X
# 48| 1: [ReservedWord] ::
# 48| 2: [Identifier] foo
# 48| 2: [ReservedWord] )
# 51| 13: [Call] Call
# 51| 0: [Identifier] some_func
# 51| 1: [ArgumentList] ArgumentList
# 51| 0: [ReservedWord] (
# 51| 1: [Identifier] foo
# 51| 2: [ReservedWord] )
# 52| 14: [Call] Call
# 52| 0: [Identifier] some_func
# 52| 1: [ArgumentList] ArgumentList
# 52| 0: [ReservedWord] (
# 52| 1: [Call] Call
# 52| 0: [Constant] X
# 52| 1: [ReservedWord] ::
# 52| 2: [Identifier] foo
# 52| 2: [ReservedWord] )
# 55| 15: [Array] Array
# 55| 0: [ReservedWord] [
# 55| 1: [Identifier] foo
# 55| 2: [ReservedWord] ]
# 56| 16: [Array] Array
# 56| 0: [ReservedWord] [
# 56| 1: [Call] Call
# 56| 0: [Constant] X
# 56| 1: [ReservedWord] ::
# 56| 2: [Identifier] foo
# 56| 2: [ReservedWord] ]
# 59| 17: [Assignment] Assignment
# 59| 0: [Identifier] var1
# 59| 1: [ReservedWord] =
# 59| 2: [Identifier] foo
# 60| 18: [Assignment] Assignment
# 60| 0: [Identifier] var1
# 60| 1: [ReservedWord] =
# 60| 2: [Call] Call
# 60| 0: [Constant] X
# 60| 1: [ReservedWord] ::
# 60| 2: [Identifier] foo
# 63| 19: [OperatorAssignment] OperatorAssignment
# 63| 0: [Identifier] var1
# 63| 1: [ReservedWord] +=
# 63| 2: [Identifier] bar
# 64| 20: [OperatorAssignment] OperatorAssignment
# 64| 0: [Identifier] var1
# 64| 1: [ReservedWord] +=
# 64| 2: [Call] Call
# 64| 0: [Constant] X
# 64| 1: [ReservedWord] ::
# 64| 2: [Identifier] bar
# 67| 21: [Assignment] Assignment
# 67| 0: [Identifier] var1
# 67| 1: [ReservedWord] =
# 67| 2: [RightAssignmentList] RightAssignmentList
# 67| 0: [Identifier] foo
# 67| 1: [ReservedWord] ,
# 67| 2: [Call] Call
# 67| 0: [Constant] X
# 67| 1: [ReservedWord] ::
# 67| 2: [Identifier] bar
# 70| 22: [Begin] Begin
# 70| 0: [ReservedWord] begin
# 71| 1: [Identifier] foo
# 72| 2: [Call] Call
# 72| 0: [Constant] X
# 72| 1: [ReservedWord] ::
# 72| 2: [Identifier] foo
# 73| 3: [ReservedWord] end
# 76| 23: [BeginBlock] BeginBlock
# 76| 0: [ReservedWord] BEGIN
# 76| 1: [ReservedWord] {
# 76| 2: [Identifier] foo
# 76| 3: [ReservedWord] ;
# 76| 4: [Call] Call
# 76| 0: [Constant] X
# 76| 1: [ReservedWord] ::
# 76| 2: [Identifier] bar
# 76| 5: [ReservedWord] }
# 79| 24: [EndBlock] EndBlock
# 79| 0: [ReservedWord] END
# 79| 1: [ReservedWord] {
# 79| 2: [Identifier] foo
# 79| 3: [ReservedWord] ;
# 79| 4: [Call] Call
# 79| 0: [Constant] X
# 79| 1: [ReservedWord] ::
# 79| 2: [Identifier] bar
# 79| 5: [ReservedWord] }
# 82| 25: [Binary] Binary
# 82| 0: [Identifier] foo
# 82| 1: [ReservedWord] +
# 82| 2: [Call] Call
# 82| 0: [Constant] X
# 82| 1: [ReservedWord] ::
# 82| 2: [Identifier] bar
# 85| 26: [Unary] Unary
# 85| 0: [ReservedWord] !
# 85| 1: [Identifier] foo
# 86| 27: [Unary] Unary
# 86| 0: [ReservedWord] ~
# 86| 1: [Call] Call
# 86| 0: [Constant] X
# 86| 1: [ReservedWord] ::
# 86| 2: [Identifier] bar
# 89| 28: [Call] Call
# 89| 0: [Identifier] foo
# 89| 1: [ArgumentList] ArgumentList
# 89| 0: [ReservedWord] (
# 89| 1: [ReservedWord] )
# 89| 2: [Block] Block
# 89| 0: [ReservedWord] {
# 89| 1: [BlockBody] BlockBody
# 89| 0: [Identifier] bar
# 89| 1: [ReservedWord] ;
# 89| 2: [Call] Call
# 89| 0: [Constant] X
# 89| 1: [ReservedWord] ::
# 89| 2: [Identifier] baz
# 89| 2: [ReservedWord] }
# 92| 29: [Call] Call
# 92| 0: [Identifier] foo
# 92| 1: [ArgumentList] ArgumentList
# 92| 0: [ReservedWord] (
# 92| 1: [ReservedWord] )
# 92| 2: [DoBlock] DoBlock
# 92| 0: [ReservedWord] do
# 93| 1: [BodyStatement] BodyStatement
# 93| 0: [Identifier] bar
# 94| 1: [Call] Call
# 94| 0: [Constant] X
# 94| 1: [ReservedWord] ::
# 94| 2: [Identifier] baz
# 95| 2: [ReservedWord] end
# 98| 30: [Call] Call
# 98| 0: [Identifier] foo
# 98| 1: [ReservedWord] .
# 98| 2: [Identifier] bar
# 98| 3: [ArgumentList] ArgumentList
# 98| 0: [ReservedWord] (
# 98| 1: [ReservedWord] )
# 99| 31: [Call] Call
# 99| 0: [Identifier] bar
# 99| 1: [ReservedWord] .
# 99| 2: [Identifier] baz
# 99| 3: [ArgumentList] ArgumentList
# 99| 0: [ReservedWord] (
# 99| 1: [ReservedWord] )
# 103| 32: [Case] Case
# 103| 0: [ReservedWord] case
# 103| 1: [Identifier] foo
# 104| 2: [When] When
# 104| 0: [ReservedWord] when
# 104| 1: [Pattern] Pattern
# 104| 0: [Identifier] bar
# 104| 2: [Then] Then
# 105| 0: [Identifier] baz
# 106| 3: [ReservedWord] end
# 107| 33: [Case] Case
# 107| 0: [ReservedWord] case
# 107| 1: [Call] Call
# 107| 0: [Constant] X
# 107| 1: [ReservedWord] ::
# 107| 2: [Identifier] foo
# 108| 2: [When] When
# 108| 0: [ReservedWord] when
# 108| 1: [Pattern] Pattern
# 108| 0: [Call] Call
# 108| 0: [Constant] X
# 108| 1: [ReservedWord] ::
# 108| 2: [Identifier] bar
# 108| 2: [Then] Then
# 109| 0: [Call] Call
# 109| 0: [Constant] X
# 109| 1: [ReservedWord] ::
# 109| 2: [Identifier] baz
# 110| 3: [ReservedWord] end
# 113| 34: [Class] Class
# 113| 0: [ReservedWord] class
# 113| 1: [Constant] MyClass
# 114| 2: [BodyStatement] BodyStatement
# 114| 0: [Identifier] foo
# 115| 1: [Call] Call
# 115| 0: [Constant] X
# 115| 1: [ReservedWord] ::
# 115| 2: [Identifier] bar
# 116| 3: [ReservedWord] end
# 119| 35: [Class] Class
# 119| 0: [ReservedWord] class
# 119| 1: [Constant] MyClass
# 119| 2: [Superclass] Superclass
# 119| 0: [ReservedWord] <
# 119| 1: [Identifier] foo
# 120| 3: [ReservedWord] end
# 121| 36: [Class] Class
# 121| 0: [ReservedWord] class
# 121| 1: [Constant] MyClass2
# 121| 2: [Superclass] Superclass
# 121| 0: [ReservedWord] <
# 121| 1: [Call] Call
# 121| 0: [Constant] X
# 121| 1: [ReservedWord] ::
# 121| 2: [Identifier] foo
# 122| 3: [ReservedWord] end
# 125| 37: [SingletonClass] SingletonClass
# 125| 0: [ReservedWord] class
# 125| 1: [ReservedWord] <<
# 125| 2: [Identifier] foo
# 126| 3: [BodyStatement] BodyStatement
# 126| 0: [Identifier] bar
# 127| 4: [ReservedWord] end
# 128| 38: [SingletonClass] SingletonClass
# 128| 0: [ReservedWord] class
# 128| 1: [ReservedWord] <<
# 128| 2: [Call] Call
# 128| 0: [Constant] X
# 128| 1: [ReservedWord] ::
# 128| 2: [Identifier] foo
# 129| 3: [BodyStatement] BodyStatement
# 129| 0: [Call] Call
# 129| 0: [Constant] X
# 129| 1: [ReservedWord] ::
# 129| 2: [Identifier] bar
# 130| 4: [ReservedWord] end
# 133| 39: [Method] Method
# 133| 0: [ReservedWord] def
# 133| 1: [Identifier] some_method
# 134| 2: [BodyStatement] BodyStatement
# 134| 0: [Identifier] foo
# 135| 1: [Call] Call
# 135| 0: [Constant] X
# 135| 1: [ReservedWord] ::
# 135| 2: [Identifier] bar
# 136| 3: [ReservedWord] end
# 139| 40: [SingletonMethod] SingletonMethod
# 139| 0: [ReservedWord] def
# 139| 1: [Identifier] foo
# 139| 2: [ReservedWord] .
# 139| 3: [Identifier] some_method
# 140| 4: [BodyStatement] BodyStatement
# 140| 0: [Identifier] bar
# 141| 1: [Call] Call
# 141| 0: [Constant] X
# 141| 1: [ReservedWord] ::
# 141| 2: [Identifier] baz
# 142| 5: [ReservedWord] end
# 145| 41: [Method] Method
# 145| 0: [ReservedWord] def
# 145| 1: [Identifier] method_with_keyword_param
# 145| 2: [MethodParameters] MethodParameters
# 145| 0: [ReservedWord] (
# 145| 1: [KeywordParameter] KeywordParameter
# 145| 0: [Identifier] keyword
# 145| 1: [ReservedWord] :
# 145| 2: [Identifier] foo
# 145| 2: [ReservedWord] )
# 146| 3: [ReservedWord] end
# 147| 42: [Method] Method
# 147| 0: [ReservedWord] def
# 147| 1: [Identifier] method_with_keyword_param2
# 147| 2: [MethodParameters] MethodParameters
# 147| 0: [ReservedWord] (
# 147| 1: [KeywordParameter] KeywordParameter
# 147| 0: [Identifier] keyword
# 147| 1: [ReservedWord] :
# 147| 2: [Call] Call
# 147| 0: [Constant] X
# 147| 1: [ReservedWord] ::
# 147| 2: [Identifier] foo
# 147| 2: [ReservedWord] )
# 148| 3: [ReservedWord] end
# 151| 43: [Method] Method
# 151| 0: [ReservedWord] def
# 151| 1: [Identifier] method_with_optional_param
# 151| 2: [MethodParameters] MethodParameters
# 151| 0: [ReservedWord] (
# 151| 1: [OptionalParameter] OptionalParameter
# 151| 0: [Identifier] param
# 151| 1: [ReservedWord] =
# 151| 2: [Identifier] foo
# 151| 2: [ReservedWord] )
# 152| 3: [ReservedWord] end
# 153| 44: [Method] Method
# 153| 0: [ReservedWord] def
# 153| 1: [Identifier] method_with_optional_param2
# 153| 2: [MethodParameters] MethodParameters
# 153| 0: [ReservedWord] (
# 153| 1: [OptionalParameter] OptionalParameter
# 153| 0: [Identifier] param
# 153| 1: [ReservedWord] =
# 153| 2: [Call] Call
# 153| 0: [Constant] X
# 153| 1: [ReservedWord] ::
# 153| 2: [Identifier] foo
# 153| 2: [ReservedWord] )
# 154| 3: [ReservedWord] end
# 157| 45: [Module] Module
# 157| 0: [ReservedWord] module
# 157| 1: [Constant] SomeModule
# 158| 2: [BodyStatement] BodyStatement
# 158| 0: [Identifier] foo
# 159| 1: [Call] Call
# 159| 0: [Constant] X
# 159| 1: [ReservedWord] ::
# 159| 2: [Identifier] bar
# 160| 3: [ReservedWord] end
# 163| 46: [Conditional] Conditional
# 163| 0: [Identifier] foo
# 163| 1: [ReservedWord] ?
# 163| 2: [Identifier] bar
# 163| 3: [ReservedWord] :
# 163| 4: [Identifier] baz
# 164| 47: [Conditional] Conditional
# 164| 0: [Call] Call
# 164| 0: [Constant] X
# 164| 1: [ReservedWord] ::
# 164| 2: [Identifier] foo
# 164| 1: [ReservedWord] ?
# 164| 2: [Call] Call
# 164| 0: [Constant] X
# 164| 1: [ReservedWord] ::
# 164| 2: [Identifier] bar
# 164| 3: [ReservedWord] :
# 164| 4: [Call] Call
# 164| 0: [Constant] X
# 164| 1: [ReservedWord] ::
# 164| 2: [Identifier] baz
# 167| 48: [If] If
# 167| 0: [ReservedWord] if
# 167| 1: [Identifier] foo
# 167| 2: [Then] Then
# 168| 0: [Identifier] wibble
# 169| 3: [Elsif] Elsif
# 169| 0: [ReservedWord] elsif
# 169| 1: [Identifier] bar
# 169| 2: [Then] Then
# 170| 0: [Identifier] wobble
# 171| 3: [Else] Else
# 171| 0: [ReservedWord] else
# 172| 1: [Identifier] wabble
# 173| 4: [ReservedWord] end
# 174| 49: [If] If
# 174| 0: [ReservedWord] if
# 174| 1: [Call] Call
# 174| 0: [Constant] X
# 174| 1: [ReservedWord] ::
# 174| 2: [Identifier] foo
# 174| 2: [Then] Then
# 175| 0: [Call] Call
# 175| 0: [Constant] X
# 175| 1: [ReservedWord] ::
# 175| 2: [Identifier] wibble
# 176| 3: [Elsif] Elsif
# 176| 0: [ReservedWord] elsif
# 176| 1: [Call] Call
# 176| 0: [Constant] X
# 176| 1: [ReservedWord] ::
# 176| 2: [Identifier] bar
# 176| 2: [Then] Then
# 177| 0: [Call] Call
# 177| 0: [Constant] X
# 177| 1: [ReservedWord] ::
# 177| 2: [Identifier] wobble
# 178| 3: [Else] Else
# 178| 0: [ReservedWord] else
# 179| 1: [Call] Call
# 179| 0: [Constant] X
# 179| 1: [ReservedWord] ::
# 179| 2: [Identifier] wabble
# 180| 4: [ReservedWord] end
# 183| 50: [IfModifier] IfModifier
# 183| 0: [Identifier] bar
# 183| 1: [ReservedWord] if
# 183| 2: [Identifier] foo
# 184| 51: [IfModifier] IfModifier
# 184| 0: [Call] Call
# 184| 0: [Constant] X
# 184| 1: [ReservedWord] ::
# 184| 2: [Identifier] bar
# 184| 1: [ReservedWord] if
# 184| 2: [Call] Call
# 184| 0: [Constant] X
# 184| 1: [ReservedWord] ::
# 184| 2: [Identifier] foo
# 187| 52: [Unless] Unless
# 187| 0: [ReservedWord] unless
# 187| 1: [Identifier] foo
# 187| 2: [Then] Then
# 188| 0: [Identifier] bar
# 189| 3: [ReservedWord] end
# 190| 53: [Unless] Unless
# 190| 0: [ReservedWord] unless
# 190| 1: [Call] Call
# 190| 0: [Constant] X
# 190| 1: [ReservedWord] ::
# 190| 2: [Identifier] foo
# 190| 2: [Then] Then
# 191| 0: [Call] Call
# 191| 0: [Constant] X
# 191| 1: [ReservedWord] ::
# 191| 2: [Identifier] bar
# 192| 3: [ReservedWord] end
# 195| 54: [UnlessModifier] UnlessModifier
# 195| 0: [Identifier] bar
# 195| 1: [ReservedWord] unless
# 195| 2: [Identifier] foo
# 196| 55: [UnlessModifier] UnlessModifier
# 196| 0: [Call] Call
# 196| 0: [Constant] X
# 196| 1: [ReservedWord] ::
# 196| 2: [Identifier] bar
# 196| 1: [ReservedWord] unless
# 196| 2: [Call] Call
# 196| 0: [Constant] X
# 196| 1: [ReservedWord] ::
# 196| 2: [Identifier] foo
# 199| 56: [While] While
# 199| 0: [ReservedWord] while
# 199| 1: [Identifier] foo
# 199| 2: [Do] Do
# 199| 0: [ReservedWord] do
# 200| 1: [Identifier] bar
# 201| 2: [ReservedWord] end
# 202| 57: [While] While
# 202| 0: [ReservedWord] while
# 202| 1: [Call] Call
# 202| 0: [Constant] X
# 202| 1: [ReservedWord] ::
# 202| 2: [Identifier] foo
# 202| 2: [Do] Do
# 202| 0: [ReservedWord] do
# 203| 1: [Call] Call
# 203| 0: [Constant] X
# 203| 1: [ReservedWord] ::
# 203| 2: [Identifier] bar
# 204| 2: [ReservedWord] end
# 207| 58: [WhileModifier] WhileModifier
# 207| 0: [Identifier] bar
# 207| 1: [ReservedWord] while
# 207| 2: [Identifier] foo
# 208| 59: [WhileModifier] WhileModifier
# 208| 0: [Call] Call
# 208| 0: [Constant] X
# 208| 1: [ReservedWord] ::
# 208| 2: [Identifier] bar
# 208| 1: [ReservedWord] while
# 208| 2: [Call] Call
# 208| 0: [Constant] X
# 208| 1: [ReservedWord] ::
# 208| 2: [Identifier] foo
# 211| 60: [Until] Until
# 211| 0: [ReservedWord] until
# 211| 1: [Identifier] foo
# 211| 2: [Do] Do
# 211| 0: [ReservedWord] do
# 212| 1: [Identifier] bar
# 213| 2: [ReservedWord] end
# 214| 61: [Until] Until
# 214| 0: [ReservedWord] until
# 214| 1: [Call] Call
# 214| 0: [Constant] X
# 214| 1: [ReservedWord] ::
# 214| 2: [Identifier] foo
# 214| 2: [Do] Do
# 214| 0: [ReservedWord] do
# 215| 1: [Call] Call
# 215| 0: [Constant] X
# 215| 1: [ReservedWord] ::
# 215| 2: [Identifier] bar
# 216| 2: [ReservedWord] end
# 219| 62: [UntilModifier] UntilModifier
# 219| 0: [Identifier] bar
# 219| 1: [ReservedWord] until
# 219| 2: [Identifier] foo
# 220| 63: [UntilModifier] UntilModifier
# 220| 0: [Call] Call
# 220| 0: [Constant] X
# 220| 1: [ReservedWord] ::
# 220| 2: [Identifier] bar
# 220| 1: [ReservedWord] until
# 220| 2: [Call] Call
# 220| 0: [Constant] X
# 220| 1: [ReservedWord] ::
# 220| 2: [Identifier] foo
# 223| 64: [For] For
# 223| 0: [ReservedWord] for
# 223| 1: [Identifier] x
# 223| 2: [In] In
# 223| 0: [ReservedWord] in
# 223| 1: [Identifier] bar
# 223| 3: [Do] Do
# 224| 0: [Identifier] baz
# 225| 1: [ReservedWord] end
# 226| 65: [For] For
# 226| 0: [ReservedWord] for
# 226| 1: [Identifier] x
# 226| 2: [In] In
# 226| 0: [ReservedWord] in
# 226| 1: [Call] Call
# 226| 0: [Constant] X
# 226| 1: [ReservedWord] ::
# 226| 2: [Identifier] bar
# 226| 3: [Do] Do
# 227| 0: [Call] Call
# 227| 0: [Constant] X
# 227| 1: [ReservedWord] ::
# 227| 2: [Identifier] baz
# 228| 1: [ReservedWord] end
# 231| 66: [ElementReference] ElementReference
# 231| 0: [Identifier] foo
# 231| 1: [ReservedWord] [
# 231| 2: [Identifier] bar
# 231| 3: [ReservedWord] ]
# 232| 67: [ElementReference] ElementReference
# 232| 0: [Call] Call
# 232| 0: [Constant] X
# 232| 1: [ReservedWord] ::
# 232| 2: [Identifier] foo
# 232| 1: [ReservedWord] [
# 232| 2: [Call] Call
# 232| 0: [Constant] X
# 232| 1: [ReservedWord] ::
# 232| 2: [Identifier] bar
# 232| 3: [ReservedWord] ]
# 235| 68: [String] String
# 235| 0: [ReservedWord] "
# 235| 1: [StringContent] foo-
# 235| 2: [Interpolation] Interpolation
# 235| 0: [ReservedWord] #{
# 235| 1: [Identifier] bar
# 235| 2: [ReservedWord] }
# 235| 3: [StringContent] -
# 235| 4: [Interpolation] Interpolation
# 235| 0: [ReservedWord] #{
# 235| 1: [Call] Call
# 235| 0: [Constant] X
# 235| 1: [ReservedWord] ::
# 235| 2: [Identifier] baz
# 235| 2: [ReservedWord] }
# 235| 5: [ReservedWord] "
# 238| 69: [ScopeResolution] ScopeResolution
# 238| 0: [Identifier] foo
# 238| 1: [ReservedWord] ::
# 238| 2: [Constant] Bar
# 239| 70: [ScopeResolution] ScopeResolution
# 239| 0: [Call] Call
# 239| 0: [Constant] X
# 239| 1: [ReservedWord] ::
# 239| 2: [Identifier] foo
# 239| 1: [ReservedWord] ::
# 239| 2: [Constant] Bar
# 242| 71: [Range] Range
# 242| 0: [Identifier] foo
# 242| 1: [ReservedWord] ..
# 242| 2: [Identifier] bar
# 243| 72: [Range] Range
# 243| 0: [Call] Call
# 243| 0: [Constant] X
# 243| 1: [ReservedWord] ::
# 243| 2: [Identifier] foo
# 243| 1: [ReservedWord] ..
# 243| 2: [Call] Call
# 243| 0: [Constant] X
# 243| 1: [ReservedWord] ::
# 243| 2: [Identifier] bar
# 246| 73: [Hash] Hash
# 246| 0: [ReservedWord] {
# 246| 1: [Pair] Pair
# 246| 0: [Identifier] foo
# 246| 1: [ReservedWord] =>
# 246| 2: [Identifier] bar
# 246| 2: [ReservedWord] ,
# 246| 3: [Pair] Pair
# 246| 0: [Call] Call
# 246| 0: [Constant] X
# 246| 1: [ReservedWord] ::
# 246| 2: [Identifier] foo
# 246| 1: [ReservedWord] =>
# 246| 2: [Call] Call
# 246| 0: [Constant] X
# 246| 1: [ReservedWord] ::
# 246| 2: [Identifier] bar
# 246| 4: [ReservedWord] }
# 249| 74: [Begin] Begin
# 249| 0: [ReservedWord] begin
# 250| 1: [Rescue] Rescue
# 250| 0: [ReservedWord] rescue
# 250| 1: [Exceptions] Exceptions
# 250| 0: [Identifier] foo
# 251| 2: [Ensure] Ensure
# 251| 0: [ReservedWord] ensure
# 251| 1: [Identifier] bar
# 252| 3: [ReservedWord] end
# 253| 75: [Begin] Begin
# 253| 0: [ReservedWord] begin
# 254| 1: [Rescue] Rescue
# 254| 0: [ReservedWord] rescue
# 254| 1: [Exceptions] Exceptions
# 254| 0: [Call] Call
# 254| 0: [Constant] X
# 254| 1: [ReservedWord] ::
# 254| 2: [Identifier] foo
# 255| 2: [Ensure] Ensure
# 255| 0: [ReservedWord] ensure
# 255| 1: [Call] Call
# 255| 0: [Constant] X
# 255| 1: [ReservedWord] ::
# 255| 2: [Identifier] bar
# 256| 3: [ReservedWord] end
# 259| 76: [RescueModifier] RescueModifier
# 259| 0: [Identifier] foo
# 259| 1: [ReservedWord] rescue
# 259| 2: [Identifier] bar
# 260| 77: [RescueModifier] RescueModifier
# 260| 0: [Call] Call
# 260| 0: [Constant] X
# 260| 1: [ReservedWord] ::
# 260| 2: [Identifier] foo
# 260| 1: [ReservedWord] rescue
# 260| 2: [Call] Call
# 260| 0: [Constant] X
# 260| 1: [ReservedWord] ::
# 260| 2: [Identifier] bar
# 263| 78: [Call] Call
# 263| 0: [Identifier] foo
# 263| 1: [ArgumentList] ArgumentList
# 263| 0: [ReservedWord] (
# 263| 1: [BlockArgument] BlockArgument
# 263| 0: [ReservedWord] &
# 263| 1: [Identifier] bar
# 263| 2: [ReservedWord] )
# 264| 79: [Call] Call
# 264| 0: [Identifier] foo
# 264| 1: [ArgumentList] ArgumentList
# 264| 0: [ReservedWord] (
# 264| 1: [BlockArgument] BlockArgument
# 264| 0: [ReservedWord] &
# 264| 1: [Call] Call
# 264| 0: [Constant] X
# 264| 1: [ReservedWord] ::
# 264| 2: [Identifier] bar
# 264| 2: [ReservedWord] )
# 265| 80: [Call] Call
# 265| 0: [Identifier] foo
# 265| 1: [ArgumentList] ArgumentList
# 265| 0: [ReservedWord] (
# 265| 1: [BlockArgument] BlockArgument
# 265| 0: [ReservedWord] &
# 265| 2: [ReservedWord] )
# 267| 81: [Call] Call
# 267| 0: [Identifier] foo
# 267| 1: [ArgumentList] ArgumentList
# 267| 0: [ReservedWord] (
# 267| 1: [SplatArgument] SplatArgument
# 267| 0: [ReservedWord] *
# 267| 1: [Identifier] bar
# 267| 2: [ReservedWord] )
# 268| 82: [Call] Call
# 268| 0: [Identifier] foo
# 268| 1: [ArgumentList] ArgumentList
# 268| 0: [ReservedWord] (
# 268| 1: [SplatArgument] SplatArgument
# 268| 0: [ReservedWord] *
# 268| 1: [Call] Call
# 268| 0: [Constant] X
# 268| 1: [ReservedWord] ::
# 268| 2: [Identifier] bar
# 268| 2: [ReservedWord] )
# 269| 83: [Call] Call
# 269| 0: [Identifier] foo
# 269| 1: [ArgumentList] ArgumentList
# 269| 0: [ReservedWord] (
# 269| 1: [SplatArgument] SplatArgument
# 269| 0: [ReservedWord] *
# 269| 2: [ReservedWord] )
# 272| 84: [Call] Call
# 272| 0: [Identifier] foo
# 272| 1: [ArgumentList] ArgumentList
# 272| 0: [ReservedWord] (
# 272| 1: [HashSplatArgument] HashSplatArgument
# 272| 0: [ReservedWord] **
# 272| 1: [Identifier] bar
# 272| 2: [ReservedWord] )
# 273| 85: [Call] Call
# 273| 0: [Identifier] foo
# 273| 1: [ArgumentList] ArgumentList
# 273| 0: [ReservedWord] (
# 273| 1: [HashSplatArgument] HashSplatArgument
# 273| 0: [ReservedWord] **
# 273| 1: [Call] Call
# 273| 0: [Constant] X
# 273| 1: [ReservedWord] ::
# 273| 2: [Identifier] bar
# 273| 2: [ReservedWord] )
# 274| 86: [Call] Call
# 274| 0: [Identifier] foo
# 274| 1: [ArgumentList] ArgumentList
# 274| 0: [ReservedWord] (
# 274| 1: [HashSplatArgument] HashSplatArgument
# 274| 0: [ReservedWord] **
# 274| 2: [ReservedWord] )
# 277| 87: [Call] Call
# 277| 0: [Identifier] foo
# 277| 1: [ArgumentList] ArgumentList
# 277| 0: [ReservedWord] (
# 277| 1: [Pair] Pair
# 277| 0: [HashKeySymbol] blah
# 277| 1: [ReservedWord] :
# 277| 2: [Identifier] bar
# 277| 2: [ReservedWord] )
# 278| 88: [Call] Call
# 278| 0: [Identifier] foo
# 278| 1: [ArgumentList] ArgumentList
# 278| 0: [ReservedWord] (
# 278| 1: [Pair] Pair
# 278| 0: [HashKeySymbol] blah
# 278| 1: [ReservedWord] :
# 278| 2: [Call] Call
# 278| 0: [Constant] X
# 278| 1: [ReservedWord] ::
# 278| 2: [Identifier] bar
# 278| 2: [ReservedWord] )
# 283| 89: [Class] Class
# 283| 0: [ReservedWord] class
# 283| 1: [Constant] MyClass
# 284| 2: [BodyStatement] BodyStatement
# 284| 0: [Method] Method
# 284| 0: [ReservedWord] def
# 284| 1: [Identifier] my_method
# 285| 2: [BodyStatement] BodyStatement
# 285| 0: [Super] super
# 286| 1: [Call] Call
# 286| 0: [Super] super
# 286| 1: [ArgumentList] ArgumentList
# 286| 0: [ReservedWord] (
# 286| 1: [ReservedWord] )
# 287| 2: [Call] Call
# 287| 0: [Super] super
# 287| 1: [ArgumentList] ArgumentList
# 287| 0: [String] String
# 287| 0: [ReservedWord] '
# 287| 1: [StringContent] blah
# 287| 2: [ReservedWord] '
# 288| 3: [Call] Call
# 288| 0: [Super] super
# 288| 1: [ArgumentList] ArgumentList
# 288| 0: [Integer] 1
# 288| 1: [ReservedWord] ,
# 288| 2: [Integer] 2
# 288| 3: [ReservedWord] ,
# 288| 4: [Integer] 3
# 289| 4: [Call] Call
# 289| 0: [Super] super
# 289| 1: [Block] Block
# 289| 0: [ReservedWord] {
# 289| 1: [BlockParameters] BlockParameters
# 289| 0: [ReservedWord] |
# 289| 1: [Identifier] x
# 289| 2: [ReservedWord] |
# 289| 2: [BlockBody] BlockBody
# 289| 0: [Binary] Binary
# 289| 0: [Identifier] x
# 289| 1: [ReservedWord] +
# 289| 2: [Integer] 1
# 289| 3: [ReservedWord] }
# 290| 5: [Call] Call
# 290| 0: [Super] super
# 290| 1: [DoBlock] DoBlock
# 290| 0: [ReservedWord] do
# 290| 1: [BlockParameters] BlockParameters
# 290| 0: [ReservedWord] |
# 290| 1: [Identifier] x
# 290| 2: [ReservedWord] |
# 290| 2: [BodyStatement] BodyStatement
# 290| 0: [Binary] Binary
# 290| 0: [Identifier] x
# 290| 1: [ReservedWord] *
# 290| 2: [Integer] 2
# 290| 3: [ReservedWord] end
# 291| 6: [Call] Call
# 291| 0: [Super] super
# 291| 1: [ArgumentList] ArgumentList
# 291| 0: [Integer] 4
# 291| 1: [ReservedWord] ,
# 291| 2: [Integer] 5
# 291| 2: [Block] Block
# 291| 0: [ReservedWord] {
# 291| 1: [BlockParameters] BlockParameters
# 291| 0: [ReservedWord] |
# 291| 1: [Identifier] x
# 291| 2: [ReservedWord] |
# 291| 2: [BlockBody] BlockBody
# 291| 0: [Binary] Binary
# 291| 0: [Identifier] x
# 291| 1: [ReservedWord] +
# 291| 2: [Integer] 100
# 291| 3: [ReservedWord] }
# 292| 7: [Call] Call
# 292| 0: [Super] super
# 292| 1: [ArgumentList] ArgumentList
# 292| 0: [Integer] 6
# 292| 1: [ReservedWord] ,
# 292| 2: [Integer] 7
# 292| 2: [DoBlock] DoBlock
# 292| 0: [ReservedWord] do
# 292| 1: [BlockParameters] BlockParameters
# 292| 0: [ReservedWord] |
# 292| 1: [Identifier] x
# 292| 2: [ReservedWord] |
# 292| 2: [BodyStatement] BodyStatement
# 292| 0: [Binary] Binary
# 292| 0: [Identifier] x
# 292| 1: [ReservedWord] +
# 292| 2: [Integer] 200
# 292| 3: [ReservedWord] end
# 293| 3: [ReservedWord] end
# 294| 3: [ReservedWord] end
# 300| 90: [Class] Class
# 300| 0: [ReservedWord] class
# 300| 1: [Constant] AnotherClass
# 301| 2: [BodyStatement] BodyStatement
# 301| 0: [Method] Method
# 301| 0: [ReservedWord] def
# 301| 1: [Identifier] another_method
# 302| 2: [BodyStatement] BodyStatement
# 302| 0: [Call] Call
# 302| 0: [Identifier] foo
# 302| 1: [ReservedWord] .
# 302| 2: [Identifier] super
# 303| 1: [Call] Call
# 303| 0: [Self] self
# 303| 1: [ReservedWord] .
# 303| 2: [Identifier] super
# 304| 2: [Call] Call
# 304| 0: [Super] super
# 304| 1: [ReservedWord] .
# 304| 2: [Identifier] super
# 305| 3: [ReservedWord] end
# 306| 3: [ReservedWord] end
# 309| 91: [Call] Call
# 309| 0: [Identifier] foo
# 309| 1: [ReservedWord] .
# 309| 2: [ArgumentList] ArgumentList
# 309| 0: [ReservedWord] (
# 309| 1: [ReservedWord] )
# 310| 92: [Call] Call
# 310| 0: [Identifier] foo
# 310| 1: [ReservedWord] .
# 310| 2: [ArgumentList] ArgumentList
# 310| 0: [ReservedWord] (
# 310| 1: [Integer] 1
# 310| 2: [ReservedWord] )
# 313| 93: [Assignment] Assignment
# 313| 0: [Call] Call
# 313| 0: [Self] self
# 313| 1: [ReservedWord] .
# 313| 2: [Identifier] foo
# 313| 1: [ReservedWord] =
# 313| 2: [Integer] 10
# 314| 94: [Assignment] Assignment
# 314| 0: [ElementReference] ElementReference
# 314| 0: [Identifier] foo
# 314| 1: [ReservedWord] [
# 314| 2: [Integer] 0
# 314| 3: [ReservedWord] ]
# 314| 1: [ReservedWord] =
# 314| 2: [Integer] 10
# 315| 95: [Assignment] Assignment
# 315| 0: [LeftAssignmentList] LeftAssignmentList
# 315| 0: [Call] Call
# 315| 0: [Self] self
# 315| 1: [ReservedWord] .
# 315| 2: [Identifier] foo
# 315| 1: [ReservedWord] ,
# 315| 2: [RestAssignment] RestAssignment
# 315| 0: [ReservedWord] *
# 315| 1: [Call] Call
# 315| 0: [Self] self
# 315| 1: [ReservedWord] .
# 315| 2: [Identifier] bar
# 315| 3: [ReservedWord] ,
# 315| 4: [ElementReference] ElementReference
# 315| 0: [Identifier] foo
# 315| 1: [ReservedWord] [
# 315| 2: [Integer] 4
# 315| 3: [ReservedWord] ]
# 315| 1: [ReservedWord] =
# 315| 2: [Array] Array
# 315| 0: [ReservedWord] [
# 315| 1: [Integer] 1
# 315| 2: [ReservedWord] ,
# 315| 3: [Integer] 2
# 315| 4: [ReservedWord] ,
# 315| 5: [Integer] 3
# 315| 6: [ReservedWord] ,
# 315| 7: [Integer] 4
# 315| 8: [ReservedWord] ]
# 316| 96: [Assignment] Assignment
# 316| 0: [LeftAssignmentList] LeftAssignmentList
# 316| 0: [Identifier] a
# 316| 1: [ReservedWord] ,
# 316| 2: [RestAssignment] RestAssignment
# 316| 0: [ReservedWord] *
# 316| 1: [ElementReference] ElementReference
# 316| 0: [Identifier] foo
# 316| 1: [ReservedWord] [
# 316| 2: [Integer] 5
# 316| 3: [ReservedWord] ]
# 316| 1: [ReservedWord] =
# 316| 2: [Array] Array
# 316| 0: [ReservedWord] [
# 316| 1: [Integer] 1
# 316| 2: [ReservedWord] ,
# 316| 3: [Integer] 2
# 316| 4: [ReservedWord] ,
# 316| 5: [Integer] 3
# 316| 6: [ReservedWord] ]
# 317| 97: [OperatorAssignment] OperatorAssignment
# 317| 0: [Call] Call
# 317| 0: [Self] self
# 317| 1: [ReservedWord] .
# 317| 2: [Identifier] count
# 317| 1: [ReservedWord] +=
# 317| 2: [Integer] 1
# 318| 98: [OperatorAssignment] OperatorAssignment
# 318| 0: [ElementReference] ElementReference
# 318| 0: [Identifier] foo
# 318| 1: [ReservedWord] [
# 318| 2: [Integer] 0
# 318| 3: [ReservedWord] ]
# 318| 1: [ReservedWord] +=
# 318| 2: [Integer] 1
# 319| 99: [OperatorAssignment] OperatorAssignment
# 319| 0: [ElementReference] ElementReference
# 319| 0: [Call] Call
# 319| 0: [Identifier] foo
# 319| 1: [ReservedWord] .
# 319| 2: [Identifier] bar
# 319| 1: [ReservedWord] [
# 319| 2: [Integer] 0
# 319| 3: [ReservedWord] ,
# 319| 4: [Call] Call
# 319| 0: [Identifier] foo
# 319| 1: [ReservedWord] .
# 319| 2: [Identifier] baz
# 319| 5: [ReservedWord] ,
# 319| 6: [Binary] Binary
# 319| 0: [Call] Call
# 319| 0: [Identifier] foo
# 319| 1: [ReservedWord] .
# 319| 2: [Identifier] boo
# 319| 1: [ReservedWord] +
# 319| 2: [Integer] 1
# 319| 7: [ReservedWord] ]
# 319| 1: [ReservedWord] *=
# 319| 2: [Integer] 2
# 322| 100: [Method] Method
# 322| 0: [ReservedWord] def
# 322| 1: [Identifier] foo
# 322| 2: [ReservedWord] =
# 322| 3: [Identifier] bar
# 323| 101: [Method] Method
# 323| 0: [ReservedWord] def
# 323| 1: [Identifier] foo
# 323| 2: [MethodParameters] MethodParameters
# 323| 0: [ReservedWord] (
# 323| 1: [ReservedWord] )
# 323| 3: [ReservedWord] =
# 323| 4: [Identifier] bar
# 324| 102: [Method] Method
# 324| 0: [ReservedWord] def
# 324| 1: [Identifier] foo
# 324| 2: [MethodParameters] MethodParameters
# 324| 0: [ReservedWord] (
# 324| 1: [Identifier] x
# 324| 2: [ReservedWord] )
# 324| 3: [ReservedWord] =
# 324| 4: [Identifier] bar
# 325| 103: [SingletonMethod] SingletonMethod
# 325| 0: [ReservedWord] def
# 325| 1: [Constant] Object
# 325| 2: [ReservedWord] .
# 325| 3: [Identifier] foo
# 325| 4: [ReservedWord] =
# 325| 5: [Identifier] bar
# 326| 104: [SingletonMethod] SingletonMethod
# 326| 0: [ReservedWord] def
# 326| 1: [Constant] Object
# 326| 2: [ReservedWord] .
# 326| 3: [Identifier] foo
# 326| 4: [MethodParameters] MethodParameters
# 326| 0: [ReservedWord] (
# 326| 1: [Identifier] x
# 326| 2: [ReservedWord] )
# 326| 5: [ReservedWord] =
# 326| 6: [Identifier] bar
# 327| 105: [Method] Method
# 327| 0: [ReservedWord] def
# 327| 1: [Identifier] foo
# 327| 2: [MethodParameters] MethodParameters
# 327| 0: [ReservedWord] (
# 327| 1: [ReservedWord] )
# 327| 3: [ReservedWord] =
# 327| 4: [RescueModifier] RescueModifier
# 327| 0: [Identifier] bar
# 327| 1: [ReservedWord] rescue
# 327| 2: [ParenthesizedStatements] ParenthesizedStatements
# 327| 0: [ReservedWord] (
# 327| 1: [Call] Call
# 327| 0: [Identifier] print
# 327| 1: [ArgumentList] ArgumentList
# 327| 0: [String] String
# 327| 0: [ReservedWord] "
# 327| 1: [StringContent] error
# 327| 2: [ReservedWord] "
# 327| 2: [ReservedWord] )
# 330| 106: [Method] Method
# 330| 0: [ReservedWord] def
# 330| 1: [Identifier] foo
# 330| 2: [MethodParameters] MethodParameters
# 330| 0: [ReservedWord] (
# 330| 1: [ForwardParameter] ...
# 330| 0: [ReservedWord] ...
# 330| 2: [ReservedWord] )
# 331| 3: [BodyStatement] BodyStatement
# 331| 0: [Call] Call
# 331| 0: [Super] super
# 331| 1: [ArgumentList] ArgumentList
# 331| 0: [ReservedWord] (
# 331| 1: [ForwardArgument] ...
# 331| 0: [ReservedWord] ...
# 331| 2: [ReservedWord] )
# 332| 4: [ReservedWord] end
# 334| 107: [Method] Method
# 334| 0: [ReservedWord] def
# 334| 1: [Identifier] foo
# 334| 2: [MethodParameters] MethodParameters
# 334| 0: [ReservedWord] (
# 334| 1: [Identifier] a
# 334| 2: [ReservedWord] ,
# 334| 3: [Identifier] b
# 334| 4: [ReservedWord] ,
# 334| 5: [ForwardParameter] ...
# 334| 0: [ReservedWord] ...
# 334| 6: [ReservedWord] )
# 335| 3: [BodyStatement] BodyStatement
# 335| 0: [Call] Call
# 335| 0: [Identifier] bar
# 335| 1: [ArgumentList] ArgumentList
# 335| 0: [ReservedWord] (
# 335| 1: [Identifier] b
# 335| 2: [ReservedWord] ,
# 335| 3: [ForwardArgument] ...
# 335| 0: [ReservedWord] ...
# 335| 4: [ReservedWord] )
# 336| 4: [ReservedWord] end
# 339| 108: [For] For
# 339| 0: [ReservedWord] for
# 339| 1: [LeftAssignmentList] LeftAssignmentList
# 339| 0: [Identifier] x
# 339| 1: [ReservedWord] ,
# 339| 2: [Identifier] y
# 339| 3: [ReservedWord] ,
# 339| 4: [Identifier] z
# 339| 2: [In] In
# 339| 0: [ReservedWord] in
# 339| 1: [Array] Array
# 339| 0: [ReservedWord] [
# 339| 1: [Array] Array
# 339| 0: [ReservedWord] [
# 339| 1: [Integer] 1
# 339| 2: [ReservedWord] ,
# 339| 3: [Integer] 2
# 339| 4: [ReservedWord] ,
# 339| 5: [Integer] 3
# 339| 6: [ReservedWord] ]
# 339| 2: [ReservedWord] ,
# 339| 3: [Array] Array
# 339| 0: [ReservedWord] [
# 339| 1: [Integer] 4
# 339| 2: [ReservedWord] ,
# 339| 3: [Integer] 5
# 339| 4: [ReservedWord] ,
# 339| 5: [Integer] 6
# 339| 6: [ReservedWord] ]
# 339| 4: [ReservedWord] ]
# 339| 3: [Do] Do
# 340| 0: [Call] Call
# 340| 0: [Identifier] foo
# 340| 1: [ArgumentList] ArgumentList
# 340| 0: [Identifier] x
# 340| 1: [ReservedWord] ,
# 340| 2: [Identifier] y
# 340| 3: [ReservedWord] ,
# 340| 4: [Identifier] z
# 341| 1: [ReservedWord] end
# 343| 109: [Call] Call
# 343| 0: [Identifier] foo
# 343| 1: [ArgumentList] ArgumentList
# 343| 0: [ReservedWord] (
# 343| 1: [Pair] Pair
# 343| 0: [HashKeySymbol] x
# 343| 1: [ReservedWord] :
# 343| 2: [Integer] 42
# 343| 2: [ReservedWord] )
# 344| 110: [Call] Call
# 344| 0: [Identifier] foo
# 344| 1: [ArgumentList] ArgumentList
# 344| 0: [ReservedWord] (
# 344| 1: [Pair] Pair
# 344| 0: [HashKeySymbol] x
# 344| 1: [ReservedWord] :
# 344| 2: [ReservedWord] ,
# 344| 3: [Pair] Pair
# 344| 0: [HashKeySymbol] novar
# 344| 1: [ReservedWord] :
# 344| 4: [ReservedWord] )
# 345| 111: [Call] Call
# 345| 0: [Identifier] foo
# 345| 1: [ArgumentList] ArgumentList
# 345| 0: [ReservedWord] (
# 345| 1: [Pair] Pair
# 345| 0: [HashKeySymbol] X
# 345| 1: [ReservedWord] :
# 345| 2: [Integer] 42
# 345| 2: [ReservedWord] )
# 346| 112: [Call] Call
# 346| 0: [Identifier] foo
# 346| 1: [ArgumentList] ArgumentList
# 346| 0: [ReservedWord] (
# 346| 1: [Pair] Pair
# 346| 0: [HashKeySymbol] X
# 346| 1: [ReservedWord] :
# 346| 2: [ReservedWord] )
# 349| 113: [Assignment] Assignment
# 349| 0: [Identifier] y
# 349| 1: [ReservedWord] =
# 349| 2: [Integer] 1
# 350| 114: [Assignment] Assignment
# 350| 0: [Identifier] one
# 350| 1: [ReservedWord] =
# 350| 2: [Lambda] Lambda
# 350| 0: [ReservedWord] ->
# 350| 1: [LambdaParameters] LambdaParameters
# 350| 0: [ReservedWord] (
# 350| 1: [Identifier] x
# 350| 2: [ReservedWord] )
# 350| 2: [Block] Block
# 350| 0: [ReservedWord] {
# 350| 1: [BlockBody] BlockBody
# 350| 0: [Identifier] y
# 350| 2: [ReservedWord] }
# 351| 115: [Assignment] Assignment
# 351| 0: [Identifier] f
# 351| 1: [ReservedWord] =
# 351| 2: [Lambda] Lambda
# 351| 0: [ReservedWord] ->
# 351| 1: [LambdaParameters] LambdaParameters
# 351| 0: [ReservedWord] (
# 351| 1: [Identifier] x
# 351| 2: [ReservedWord] )
# 351| 2: [Block] Block
# 351| 0: [ReservedWord] {
# 351| 1: [BlockBody] BlockBody
# 351| 0: [Call] Call
# 351| 0: [Identifier] foo
# 351| 1: [ArgumentList] ArgumentList
# 351| 0: [Identifier] x
# 351| 2: [ReservedWord] }
# 352| 116: [Assignment] Assignment
# 352| 0: [Identifier] g
# 352| 1: [ReservedWord] =
# 352| 2: [Lambda] Lambda
# 352| 0: [ReservedWord] ->
# 352| 1: [LambdaParameters] LambdaParameters
# 352| 0: [ReservedWord] (
# 352| 1: [Identifier] x
# 352| 2: [ReservedWord] )
# 352| 2: [Block] Block
# 352| 0: [ReservedWord] {
# 352| 1: [BlockBody] BlockBody
# 352| 0: [Identifier] unknown_call
# 352| 2: [ReservedWord] }
# 353| 117: [Assignment] Assignment
# 353| 0: [Identifier] h
# 353| 1: [ReservedWord] =
# 353| 2: [Lambda] Lambda
# 353| 0: [ReservedWord] ->
# 353| 1: [LambdaParameters] LambdaParameters
# 353| 0: [ReservedWord] (
# 353| 1: [Identifier] x
# 353| 2: [ReservedWord] )
# 353| 2: [DoBlock] DoBlock
# 353| 0: [ReservedWord] do
# 354| 1: [BodyStatement] BodyStatement
# 354| 0: [Identifier] x
# 355| 1: [Identifier] y
# 356| 2: [Identifier] unknown_call
# 357| 2: [ReservedWord] end
# 360| 118: [Call] Call
# 360| 0: [Identifier] list
# 360| 1: [ReservedWord] .
# 360| 2: [Identifier] empty?
# 361| 119: [Call] Call
# 361| 0: [Identifier] list
# 361| 1: [ReservedWord] &.
# 361| 2: [Identifier] empty?
# 362| 120: [Call] Call
# 362| 0: [Identifier] list
# 362| 1: [ReservedWord] ::
# 362| 2: [Identifier] empty?
# 363| 121: [Call] Call
# 363| 0: [Identifier] foo
# 363| 1: [ReservedWord] &.
# 363| 2: [Identifier] bar
# 363| 3: [ArgumentList] ArgumentList
# 363| 0: [ReservedWord] (
# 363| 1: [Integer] 1
# 363| 2: [ReservedWord] ,
# 363| 3: [Integer] 2
# 363| 4: [ReservedWord] )
# 363| 4: [Block] Block
# 363| 0: [ReservedWord] {
# 363| 1: [BlockParameters] BlockParameters
# 363| 0: [ReservedWord] |
# 363| 1: [Identifier] x
# 363| 2: [ReservedWord] |
# 363| 2: [BlockBody] BlockBody
# 363| 0: [Identifier] x
# 363| 3: [ReservedWord] }
# 1| [Comment] # call with no receiver, arguments, or block
# 4| [Comment] # call whose name is a scope resolution
# 7| [Comment] # call with a receiver, no arguments or block
# 10| [Comment] # call with arguments
# 13| [Comment] # call with curly brace block
# 16| [Comment] # call with do block
# 21| [Comment] # call with receiver, arguments, and a block
# 26| [Comment] # a yield call
# 31| [Comment] # a yield call with arguments
# 36| [Comment] # ------------------------------------------------------------------------------
# 37| [Comment] # Calls without parentheses or arguments are parsed by tree-sitter simply as
# 38| [Comment] # `identifier` nodes (or `scope_resolution` nodes whose `name` field is an
# 39| [Comment] # `identifier), so here we test that our AST library correctly represents them
# 40| [Comment] # as calls in all the following contexts.
# 42| [Comment] # root level (child of program)
# 46| [Comment] # in a parenthesized statement
# 50| [Comment] # in an argument list
# 54| [Comment] # in an array
# 58| [Comment] # RHS of an assignment
# 62| [Comment] # RHS an operator assignment
# 66| [Comment] # RHS assignment list
# 69| [Comment] # in a begin-end block
# 75| [Comment] # in a BEGIN block
# 78| [Comment] # in an END block
# 81| [Comment] # both operands of a binary operation
# 84| [Comment] # unary operand
# 88| [Comment] # in a curly brace block
# 91| [Comment] # in a do-end block
# 97| [Comment] # the receiver in a call can itself be a call
# 101| [Comment] # the value for a case expr
# 102| [Comment] # and the when pattern and body
# 112| [Comment] # in a class definition
# 118| [Comment] # in a superclass
# 124| [Comment] # in a singleton class value or body
# 132| [Comment] # in a method body
# 138| [Comment] # in a singleton method object or body
# 144| [Comment] # in the default value for a keyword parameter
# 150| [Comment] # in the default value for an optional parameter
# 156| [Comment] # in a module
# 162| [Comment] # ternary if: condition, consequence, and alternative can all be calls
# 166| [Comment] # if/elsif/else conditions and bodies
# 182| [Comment] # if-modifier condition/body
# 186| [Comment] # unless condition/body
# 194| [Comment] # unless-modifier condition/body
# 198| [Comment] # while loop condition/body
# 206| [Comment] # while-modifier loop condition/body
# 210| [Comment] # until loop condition/body
# 218| [Comment] # until-modifier loop condition/body
# 222| [Comment] # the collection being iterated over in a for loop, and the body
# 230| [Comment] # in an array indexing operation, both the object and the index can be calls
# 234| [Comment] # interpolation
# 237| [Comment] # the scope in a scope resolution
# 241| [Comment] # in a range
# 245| [Comment] # the key/value in a hash pair
# 248| [Comment] # rescue exceptions and ensure
# 258| [Comment] # rescue-modifier body and handler
# 262| [Comment] # block argument
# 266| [Comment] # splat argument
# 271| [Comment] # hash-splat argument
# 276| [Comment] # the value in a keyword argument
# 280| [Comment] # ------------------------------------------------------------------------------
# 281| [Comment] # calls to `super`
# 296| [Comment] # ------------------------------------------------------------------------------
# 297| [Comment] # calls to methods simply named `super`, i.e. *not* calls to the same method in
# 298| [Comment] # a parent classs, so these should be Call but not SuperCall
# 304| [Comment] # we expect the receiver to be a SuperCall, while the outer call should not (it's just a regular Call)
# 308| [Comment] # calls without method name
# 312| [Comment] # setter calls
# 321| [Comment] # endless method definitions
# 329| [Comment] # forward parameter and forwarded arguments
# 338| [Comment] # for loop over nested array
# 348| [Comment] # calls inside lambdas
# 359| [Comment] # calls with various call operators
constants/constants.rb:
# 1| [Program] Program
# 1| 0: [Module] Module
# 1| 0: [ReservedWord] module
# 1| 1: [Constant] ModuleA
# 2| 2: [BodyStatement] BodyStatement
# 2| 0: [Class] Class
# 2| 0: [ReservedWord] class
# 2| 1: [Constant] ClassA
# 3| 2: [BodyStatement] BodyStatement
# 3| 0: [Assignment] Assignment
# 3| 0: [Constant] CONST_A
# 3| 1: [ReservedWord] =
# 3| 2: [String] String
# 3| 0: [ReservedWord] "
# 3| 1: [StringContent] const_a
# 3| 2: [ReservedWord] "
# 4| 3: [ReservedWord] end
# 6| 1: [Assignment] Assignment
# 6| 0: [Constant] CONST_B
# 6| 1: [ReservedWord] =
# 6| 2: [String] String
# 6| 0: [ReservedWord] "
# 6| 1: [StringContent] const_b
# 6| 2: [ReservedWord] "
# 8| 2: [Module] Module
# 8| 0: [ReservedWord] module
# 8| 1: [Constant] ModuleB
# 9| 2: [BodyStatement] BodyStatement
# 9| 0: [Class] Class
# 9| 0: [ReservedWord] class
# 9| 1: [Constant] ClassB
# 9| 2: [Superclass] Superclass
# 9| 0: [ReservedWord] <
# 9| 1: [Constant] Base
# 10| 3: [ReservedWord] end
# 12| 1: [Class] Class
# 12| 0: [ReservedWord] class
# 12| 1: [Constant] ClassC
# 12| 2: [Superclass] Superclass
# 12| 0: [ReservedWord] <
# 12| 1: [ScopeResolution] ScopeResolution
# 12| 0: [ScopeResolution] ScopeResolution
# 12| 0: [Constant] X
# 12| 1: [ReservedWord] ::
# 12| 2: [Constant] Y
# 12| 1: [ReservedWord] ::
# 12| 2: [Constant] Z
# 13| 3: [ReservedWord] end
# 14| 3: [ReservedWord] end
# 15| 3: [ReservedWord] end
# 17| 1: [Assignment] Assignment
# 17| 0: [Constant] GREETING
# 17| 1: [ReservedWord] =
# 17| 2: [Binary] Binary
# 17| 0: [Binary] Binary
# 17| 0: [String] String
# 17| 0: [ReservedWord] '
# 17| 1: [StringContent] Hello
# 17| 2: [ReservedWord] '
# 17| 1: [ReservedWord] +
# 17| 2: [ScopeResolution] ScopeResolution
# 17| 0: [ScopeResolution] ScopeResolution
# 17| 0: [Constant] ModuleA
# 17| 1: [ReservedWord] ::
# 17| 2: [Constant] ClassA
# 17| 1: [ReservedWord] ::
# 17| 2: [Constant] CONST_A
# 17| 1: [ReservedWord] +
# 17| 2: [ScopeResolution] ScopeResolution
# 17| 0: [Constant] ModuleA
# 17| 1: [ReservedWord] ::
# 17| 2: [Constant] CONST_B
# 19| 2: [Method] Method
# 19| 0: [ReservedWord] def
# 19| 1: [Identifier] foo
# 20| 2: [BodyStatement] BodyStatement
# 20| 0: [Assignment] Assignment
# 20| 0: [Constant] Names
# 20| 1: [ReservedWord] =
# 20| 2: [Array] Array
# 20| 0: [ReservedWord] [
# 20| 1: [String] String
# 20| 0: [ReservedWord] '
# 20| 1: [StringContent] Vera
# 20| 2: [ReservedWord] '
# 20| 2: [ReservedWord] ,
# 20| 3: [String] String
# 20| 0: [ReservedWord] '
# 20| 1: [StringContent] Chuck
# 20| 2: [ReservedWord] '
# 20| 4: [ReservedWord] ,
# 20| 5: [String] String
# 20| 0: [ReservedWord] '
# 20| 1: [StringContent] Dave
# 20| 2: [ReservedWord] '
# 20| 6: [ReservedWord] ]
# 22| 1: [Call] Call
# 22| 0: [Constant] Names
# 22| 1: [ReservedWord] .
# 22| 2: [Identifier] each
# 22| 3: [DoBlock] DoBlock
# 22| 0: [ReservedWord] do
# 22| 1: [BlockParameters] BlockParameters
# 22| 0: [ReservedWord] |
# 22| 1: [Identifier] name
# 22| 2: [ReservedWord] |
# 23| 2: [BodyStatement] BodyStatement
# 23| 0: [Call] Call
# 23| 0: [Identifier] puts
# 23| 1: [ArgumentList] ArgumentList
# 23| 0: [String] String
# 23| 0: [ReservedWord] "
# 23| 1: [Interpolation] Interpolation
# 23| 0: [ReservedWord] #{
# 23| 1: [Constant] GREETING
# 23| 2: [ReservedWord] }
# 23| 2: [StringContent]
# 23| 3: [Interpolation] Interpolation
# 23| 0: [ReservedWord] #{
# 23| 1: [Identifier] name
# 23| 2: [ReservedWord] }
# 23| 4: [ReservedWord] "
# 24| 3: [ReservedWord] end
# 28| 2: [Call] Call
# 28| 0: [Constant] Array
# 28| 1: [ArgumentList] ArgumentList
# 28| 0: [ReservedWord] (
# 28| 1: [String] String
# 28| 0: [ReservedWord] '
# 28| 1: [StringContent] foo
# 28| 2: [ReservedWord] '
# 28| 2: [ReservedWord] )
# 29| 3: [ReservedWord] end
# 31| 3: [Class] Class
# 31| 0: [ReservedWord] class
# 31| 1: [ScopeResolution] ScopeResolution
# 31| 0: [Constant] ModuleA
# 31| 1: [ReservedWord] ::
# 31| 2: [Constant] ClassD
# 31| 2: [Superclass] Superclass
# 31| 0: [ReservedWord] <
# 31| 1: [ScopeResolution] ScopeResolution
# 31| 0: [Constant] ModuleA
# 31| 1: [ReservedWord] ::
# 31| 2: [Constant] ClassA
# 32| 3: [BodyStatement] BodyStatement
# 32| 0: [Assignment] Assignment
# 32| 0: [Constant] FOURTY_TWO
# 32| 1: [ReservedWord] =
# 32| 2: [Integer] 42
# 33| 4: [ReservedWord] end
# 35| 4: [Module] Module
# 35| 0: [ReservedWord] module
# 35| 1: [ScopeResolution] ScopeResolution
# 35| 0: [Constant] ModuleA
# 35| 1: [ReservedWord] ::
# 35| 2: [Constant] ModuleC
# 36| 2: [BodyStatement] BodyStatement
# 36| 0: [Assignment] Assignment
# 36| 0: [Constant] FOURTY_THREE
# 36| 1: [ReservedWord] =
# 36| 2: [Integer] 43
# 37| 3: [ReservedWord] end
# 39| 5: [Assignment] Assignment
# 39| 0: [ScopeResolution] ScopeResolution
# 39| 0: [ScopeResolution] ScopeResolution
# 39| 0: [Constant] ModuleA
# 39| 1: [ReservedWord] ::
# 39| 2: [Constant] ModuleB
# 39| 1: [ReservedWord] ::
# 39| 2: [Constant] MAX_SIZE
# 39| 1: [ReservedWord] =
# 39| 2: [Integer] 1024
# 41| 6: [Call] Call
# 41| 0: [Identifier] puts
# 41| 1: [ArgumentList] ArgumentList
# 41| 0: [ScopeResolution] ScopeResolution
# 41| 0: [ScopeResolution] ScopeResolution
# 41| 0: [Constant] ModuleA
# 41| 1: [ReservedWord] ::
# 41| 2: [Constant] ModuleB
# 41| 1: [ReservedWord] ::
# 41| 2: [Constant] MAX_SIZE
# 43| 7: [Call] Call
# 43| 0: [Identifier] puts
# 43| 1: [ArgumentList] ArgumentList
# 43| 0: [Constant] GREETING
# 44| 8: [Call] Call
# 44| 0: [Identifier] puts
# 44| 1: [ArgumentList] ArgumentList
# 44| 0: [ScopeResolution] ScopeResolution
# 44| 0: [ReservedWord] ::
# 44| 1: [Constant] GREETING
# 46| 9: [Module] Module
# 46| 0: [ReservedWord] module
# 46| 1: [ScopeResolution] ScopeResolution
# 46| 0: [Constant] ModuleA
# 46| 1: [ReservedWord] ::
# 46| 2: [Constant] ModuleB
# 47| 2: [BodyStatement] BodyStatement
# 47| 0: [Class] Class
# 47| 0: [ReservedWord] class
# 47| 1: [Constant] ClassB
# 47| 2: [Superclass] Superclass
# 47| 0: [ReservedWord] <
# 47| 1: [Constant] Base
# 48| 3: [BodyStatement] BodyStatement
# 48| 0: [Assignment] Assignment
# 48| 0: [Constant] FOURTY_ONE
# 48| 1: [ReservedWord] =
# 48| 2: [Integer] 41
# 49| 4: [ReservedWord] end
# 50| 3: [ReservedWord] end
# 52| 10: [Module] Module
# 52| 0: [ReservedWord] module
# 52| 1: [Constant] ModuleA
# 53| 2: [BodyStatement] BodyStatement
# 53| 0: [Assignment] Assignment
# 53| 0: [Constant] FOURTY_FOUR
# 53| 1: [ReservedWord] =
# 53| 2: [String] String
# 53| 0: [ReservedWord] "
# 53| 1: [StringContent] fourty-four
# 53| 2: [ReservedWord] "
# 54| 1: [Class] Class
# 54| 0: [ReservedWord] class
# 54| 1: [ScopeResolution] ScopeResolution
# 54| 0: [Constant] ModuleB
# 54| 1: [ReservedWord] ::
# 54| 2: [Constant] ClassB
# 54| 2: [Superclass] Superclass
# 54| 0: [ReservedWord] <
# 54| 1: [Constant] Base
# 55| 3: [BodyStatement] BodyStatement
# 55| 0: [Assignment] Assignment
# 55| 0: [ClassVariable] @@fourty_four
# 55| 1: [ReservedWord] =
# 55| 2: [Constant] FOURTY_FOUR
# 56| 1: [Assignment] Assignment
# 56| 0: [Constant] FOURTY_FOUR
# 56| 1: [ReservedWord] =
# 56| 2: [Integer] 44
# 57| 2: [Assignment] Assignment
# 57| 0: [ClassVariable] @@fourty_four
# 57| 1: [ReservedWord] =
# 57| 2: [Constant] FOURTY_FOUR
# 58| 4: [ReservedWord] end
# 59| 3: [ReservedWord] end
# 61| 11: [Module] Module
# 61| 0: [ReservedWord] module
# 61| 1: [Constant] Mod1
# 62| 2: [BodyStatement] BodyStatement
# 62| 0: [Module] Module
# 62| 0: [ReservedWord] module
# 62| 1: [Constant] Mod3
# 63| 2: [BodyStatement] BodyStatement
# 63| 0: [Assignment] Assignment
# 63| 0: [Constant] FOURTY_FIVE
# 63| 1: [ReservedWord] =
# 63| 2: [Integer] 45
# 64| 3: [ReservedWord] end
# 65| 1: [Assignment] Assignment
# 65| 0: [ClassVariable] @@fourty_five
# 65| 1: [ReservedWord] =
# 65| 2: [ScopeResolution] ScopeResolution
# 65| 0: [Constant] Mod3
# 65| 1: [ReservedWord] ::
# 65| 2: [Constant] FOURTY_FIVE
# 66| 3: [ReservedWord] end
# 68| 12: [Module] Module
# 68| 0: [ReservedWord] module
# 68| 1: [Constant] Mod4
# 69| 2: [BodyStatement] BodyStatement
# 69| 0: [Call] Call
# 69| 0: [Identifier] include
# 69| 1: [ArgumentList] ArgumentList
# 69| 0: [Constant] Mod1
# 70| 1: [Module] Module
# 70| 0: [ReservedWord] module
# 70| 1: [ScopeResolution] ScopeResolution
# 70| 0: [Constant] Mod3
# 70| 1: [ReservedWord] ::
# 70| 2: [Constant] Mod5
# 71| 2: [BodyStatement] BodyStatement
# 71| 0: [Assignment] Assignment
# 71| 0: [Constant] FOURTY_SIX
# 71| 1: [ReservedWord] =
# 71| 2: [Integer] 46
# 72| 3: [ReservedWord] end
# 73| 2: [Assignment] Assignment
# 73| 0: [ClassVariable] @@fourty_six
# 73| 1: [ReservedWord] =
# 73| 2: [ScopeResolution] ScopeResolution
# 73| 0: [Constant] Mod3
# 73| 1: [ReservedWord] ::
# 73| 2: [Constant] FOURTY_SIX
# 74| 3: [ReservedWord] end
# 78| 13: [Assignment] Assignment
# 78| 0: [Identifier] a
# 78| 1: [ReservedWord] =
# 78| 2: [Array] Array
# 78| 0: [ReservedWord] [
# 78| 1: [Integer] 1
# 78| 2: [ReservedWord] ,
# 78| 3: [Integer] 2
# 78| 4: [ReservedWord] ,
# 78| 5: [Integer] 3
# 78| 6: [ReservedWord] ]
# 79| 14: [Assignment] Assignment
# 79| 0: [Constant] A
# 79| 1: [ReservedWord] =
# 79| 2: [Array] Array
# 79| 0: [ReservedWord] [
# 79| 1: [Integer] 1
# 79| 2: [ReservedWord] ,
# 79| 3: [Integer] 2
# 79| 4: [ReservedWord] ,
# 79| 5: [Integer] 3
# 79| 6: [ReservedWord] ]
# 80| 15: [Assignment] Assignment
# 80| 0: [Constant] B
# 80| 1: [ReservedWord] =
# 80| 2: [Identifier] a
# 81| 16: [Assignment] Assignment
# 81| 0: [Constant] C
# 81| 1: [ReservedWord] =
# 81| 2: [Constant] A
# 82| 17: [Assignment] Assignment
# 82| 0: [Identifier] b
# 82| 1: [ReservedWord] =
# 82| 2: [Constant] B
# 84| 18: [If] If
# 84| 0: [ReservedWord] if
# 84| 1: [Identifier] condition
# 84| 2: [Then] Then
# 85| 0: [Assignment] Assignment
# 85| 0: [Identifier] c
# 85| 1: [ReservedWord] =
# 85| 2: [Identifier] b
# 86| 3: [ReservedWord] end
# 87| 19: [Identifier] c
# 26| [Comment] # A call to Kernel::Array; despite beginning with an upper-case character,
# 27| [Comment] # we don't consider this to be a constant access.
# 55| [Comment] # refers to ::ModuleA::FOURTY_FOUR
# 57| [Comment] # refers to ::ModuleA::ModuleB::ClassB::FOURTY_FOUR
# 76| [Comment] # Array constants
# 87| [Comment] # not recognised
control/cases.rb:
# 1| [Program] Program
# 2| 0: [Assignment] Assignment
# 2| 0: [Identifier] a
# 2| 1: [ReservedWord] =
# 2| 2: [Integer] 0
# 3| 1: [Assignment] Assignment
# 3| 0: [Identifier] b
# 3| 1: [ReservedWord] =
# 3| 2: [Integer] 0
# 4| 2: [Assignment] Assignment
# 4| 0: [Identifier] c
# 4| 1: [ReservedWord] =
# 4| 2: [Integer] 0
# 5| 3: [Assignment] Assignment
# 5| 0: [Identifier] d
# 5| 1: [ReservedWord] =
# 5| 2: [Integer] 0
# 8| 4: [Case] Case
# 8| 0: [ReservedWord] case
# 8| 1: [Identifier] a
# 9| 2: [When] When
# 9| 0: [ReservedWord] when
# 9| 1: [Pattern] Pattern
# 9| 0: [Identifier] b
# 9| 2: [Then] Then
# 10| 0: [Integer] 100
# 11| 3: [When] When
# 11| 0: [ReservedWord] when
# 11| 1: [Pattern] Pattern
# 11| 0: [Identifier] c
# 11| 2: [ReservedWord] ,
# 11| 3: [Pattern] Pattern
# 11| 0: [Identifier] d
# 11| 4: [Then] Then
# 12| 0: [Integer] 200
# 13| 4: [Else] Else
# 13| 0: [ReservedWord] else
# 14| 1: [Integer] 300
# 15| 5: [ReservedWord] end
# 18| 5: [Case] Case
# 18| 0: [ReservedWord] case
# 19| 1: [When] When
# 19| 0: [ReservedWord] when
# 19| 1: [Pattern] Pattern
# 19| 0: [Binary] Binary
# 19| 0: [Identifier] a
# 19| 1: [ReservedWord] >
# 19| 2: [Identifier] b
# 19| 2: [Then] Then
# 19| 0: [ReservedWord] then
# 19| 1: [Integer] 10
# 20| 2: [When] When
# 20| 0: [ReservedWord] when
# 20| 1: [Pattern] Pattern
# 20| 0: [Binary] Binary
# 20| 0: [Identifier] a
# 20| 1: [ReservedWord] ==
# 20| 2: [Identifier] b
# 20| 2: [Then] Then
# 20| 0: [ReservedWord] then
# 20| 1: [Integer] 20
# 21| 3: [When] When
# 21| 0: [ReservedWord] when
# 21| 1: [Pattern] Pattern
# 21| 0: [Binary] Binary
# 21| 0: [Identifier] a
# 21| 1: [ReservedWord] <
# 21| 2: [Identifier] b
# 21| 2: [Then] Then
# 21| 0: [ReservedWord] then
# 21| 1: [Integer] 30
# 22| 4: [ReservedWord] end
# 26| 6: [CaseMatch] CaseMatch
# 26| 0: [ReservedWord] case
# 26| 1: [Identifier] expr
# 27| 2: [InClause] InClause
# 27| 0: [ReservedWord] in
# 27| 1: [Integer] 5
# 27| 2: [Then] Then
# 27| 0: [ReservedWord] then
# 27| 1: [True] true
# 28| 3: [Else] Else
# 28| 0: [ReservedWord] else
# 28| 1: [False] false
# 29| 4: [ReservedWord] end
# 31| 7: [CaseMatch] CaseMatch
# 31| 0: [ReservedWord] case
# 31| 1: [Identifier] expr
# 32| 2: [InClause] InClause
# 32| 0: [ReservedWord] in
# 32| 1: [Identifier] x
# 32| 2: [UnlessGuard] UnlessGuard
# 32| 0: [ReservedWord] unless
# 32| 1: [Binary] Binary
# 32| 0: [Identifier] x
# 32| 1: [ReservedWord] <
# 32| 2: [Integer] 0
# 32| 3: [Then] Then
# 33| 0: [ReservedWord] then
# 33| 1: [True] true
# 34| 3: [InClause] InClause
# 34| 0: [ReservedWord] in
# 34| 1: [Identifier] x
# 34| 2: [IfGuard] IfGuard
# 34| 0: [ReservedWord] if
# 34| 1: [Binary] Binary
# 34| 0: [Identifier] x
# 34| 1: [ReservedWord] <
# 34| 2: [Integer] 0
# 34| 3: [Then] Then
# 35| 0: [ReservedWord] then
# 35| 1: [True] true
# 36| 4: [Else] Else
# 36| 0: [ReservedWord] else
# 36| 1: [False] false
# 37| 5: [ReservedWord] end
# 39| 8: [CaseMatch] CaseMatch
# 39| 0: [ReservedWord] case
# 39| 1: [Identifier] expr
# 40| 2: [InClause] InClause
# 40| 0: [ReservedWord] in
# 40| 1: [Integer] 5
# 41| 3: [InClause] InClause
# 41| 0: [ReservedWord] in
# 41| 1: [ArrayPattern] ArrayPattern
# 41| 0: [Integer] 5
# 41| 1: [SplatParameter] SplatParameter
# 42| 4: [InClause] InClause
# 42| 0: [ReservedWord] in
# 42| 1: [ArrayPattern] ArrayPattern
# 42| 0: [Integer] 1
# 42| 1: [ReservedWord] ,
# 42| 2: [Integer] 2
# 43| 5: [InClause] InClause
# 43| 0: [ReservedWord] in
# 43| 1: [ArrayPattern] ArrayPattern
# 43| 0: [Integer] 1
# 43| 1: [ReservedWord] ,
# 43| 2: [Integer] 2
# 43| 3: [SplatParameter] SplatParameter
# 44| 6: [InClause] InClause
# 44| 0: [ReservedWord] in
# 44| 1: [ArrayPattern] ArrayPattern
# 44| 0: [Integer] 1
# 44| 1: [ReservedWord] ,
# 44| 2: [Integer] 2
# 44| 3: [ReservedWord] ,
# 44| 4: [Integer] 3
# 45| 7: [InClause] InClause
# 45| 0: [ReservedWord] in
# 45| 1: [ArrayPattern] ArrayPattern
# 45| 0: [Integer] 1
# 45| 1: [ReservedWord] ,
# 45| 2: [Integer] 2
# 45| 3: [ReservedWord] ,
# 45| 4: [Integer] 3
# 45| 5: [SplatParameter] SplatParameter
# 46| 8: [InClause] InClause
# 46| 0: [ReservedWord] in
# 46| 1: [ArrayPattern] ArrayPattern
# 46| 0: [Integer] 1
# 46| 1: [ReservedWord] ,
# 46| 2: [Integer] 2
# 46| 3: [ReservedWord] ,
# 46| 4: [Integer] 3
# 46| 5: [ReservedWord] ,
# 46| 6: [SplatParameter] SplatParameter
# 46| 0: [ReservedWord] *
# 47| 9: [InClause] InClause
# 47| 0: [ReservedWord] in
# 47| 1: [ArrayPattern] ArrayPattern
# 47| 0: [Integer] 1
# 47| 1: [ReservedWord] ,
# 47| 2: [SplatParameter] SplatParameter
# 47| 0: [ReservedWord] *
# 47| 1: [Identifier] x
# 47| 3: [ReservedWord] ,
# 47| 4: [Integer] 3
# 48| 10: [InClause] InClause
# 48| 0: [ReservedWord] in
# 48| 1: [ArrayPattern] ArrayPattern
# 48| 0: [SplatParameter] SplatParameter
# 48| 0: [ReservedWord] *
# 49| 11: [InClause] InClause
# 49| 0: [ReservedWord] in
# 49| 1: [ArrayPattern] ArrayPattern
# 49| 0: [SplatParameter] SplatParameter
# 49| 0: [ReservedWord] *
# 49| 1: [ReservedWord] ,
# 49| 2: [Integer] 3
# 49| 3: [ReservedWord] ,
# 49| 4: [Integer] 4
# 50| 12: [InClause] InClause
# 50| 0: [ReservedWord] in
# 50| 1: [FindPattern] FindPattern
# 50| 0: [SplatParameter] SplatParameter
# 50| 0: [ReservedWord] *
# 50| 1: [ReservedWord] ,
# 50| 2: [Integer] 3
# 50| 3: [ReservedWord] ,
# 50| 4: [SplatParameter] SplatParameter
# 50| 0: [ReservedWord] *
# 51| 13: [InClause] InClause
# 51| 0: [ReservedWord] in
# 51| 1: [FindPattern] FindPattern
# 51| 0: [SplatParameter] SplatParameter
# 51| 0: [ReservedWord] *
# 51| 1: [Identifier] a
# 51| 1: [ReservedWord] ,
# 51| 2: [Integer] 3
# 51| 3: [ReservedWord] ,
# 51| 4: [SplatParameter] SplatParameter
# 51| 0: [ReservedWord] *
# 51| 1: [Identifier] b
# 52| 14: [InClause] InClause
# 52| 0: [ReservedWord] in
# 52| 1: [HashPattern] HashPattern
# 52| 0: [KeywordPattern] KeywordPattern
# 52| 0: [HashKeySymbol] a
# 52| 1: [ReservedWord] :
# 53| 15: [InClause] InClause
# 53| 0: [ReservedWord] in
# 53| 1: [HashPattern] HashPattern
# 53| 0: [KeywordPattern] KeywordPattern
# 53| 0: [HashKeySymbol] a
# 53| 1: [ReservedWord] :
# 53| 2: [Integer] 5
# 54| 16: [InClause] InClause
# 54| 0: [ReservedWord] in
# 54| 1: [HashPattern] HashPattern
# 54| 0: [KeywordPattern] KeywordPattern
# 54| 0: [HashKeySymbol] a
# 54| 1: [ReservedWord] :
# 54| 2: [Integer] 5
# 54| 1: [ReservedWord] ,
# 55| 17: [InClause] InClause
# 55| 0: [ReservedWord] in
# 55| 1: [HashPattern] HashPattern
# 55| 0: [KeywordPattern] KeywordPattern
# 55| 0: [HashKeySymbol] a
# 55| 1: [ReservedWord] :
# 55| 2: [Integer] 5
# 55| 1: [ReservedWord] ,
# 55| 2: [KeywordPattern] KeywordPattern
# 55| 0: [HashKeySymbol] b
# 55| 1: [ReservedWord] :
# 55| 3: [ReservedWord] ,
# 55| 4: [HashSplatParameter] HashSplatParameter
# 55| 0: [ReservedWord] **
# 56| 18: [InClause] InClause
# 56| 0: [ReservedWord] in
# 56| 1: [HashPattern] HashPattern
# 56| 0: [KeywordPattern] KeywordPattern
# 56| 0: [HashKeySymbol] a
# 56| 1: [ReservedWord] :
# 56| 2: [Integer] 5
# 56| 1: [ReservedWord] ,
# 56| 2: [KeywordPattern] KeywordPattern
# 56| 0: [HashKeySymbol] b
# 56| 1: [ReservedWord] :
# 56| 3: [ReservedWord] ,
# 56| 4: [HashSplatParameter] HashSplatParameter
# 56| 0: [ReservedWord] **
# 56| 1: [Identifier] map
# 57| 19: [InClause] InClause
# 57| 0: [ReservedWord] in
# 57| 1: [HashPattern] HashPattern
# 57| 0: [KeywordPattern] KeywordPattern
# 57| 0: [HashKeySymbol] a
# 57| 1: [ReservedWord] :
# 57| 2: [Integer] 5
# 57| 1: [ReservedWord] ,
# 57| 2: [KeywordPattern] KeywordPattern
# 57| 0: [HashKeySymbol] b
# 57| 1: [ReservedWord] :
# 57| 3: [ReservedWord] ,
# 57| 4: [HashSplatNil] **nil
# 57| 0: [ReservedWord] **
# 57| 1: [ReservedWord] nil
# 58| 20: [InClause] InClause
# 58| 0: [ReservedWord] in
# 58| 1: [HashPattern] HashPattern
# 58| 0: [HashSplatNil] **nil
# 58| 0: [ReservedWord] **
# 58| 1: [ReservedWord] nil
# 59| 21: [InClause] InClause
# 59| 0: [ReservedWord] in
# 59| 1: [ArrayPattern] ArrayPattern
# 59| 0: [ReservedWord] [
# 59| 1: [Integer] 5
# 59| 2: [ReservedWord] ]
# 60| 22: [InClause] InClause
# 60| 0: [ReservedWord] in
# 60| 1: [ArrayPattern] ArrayPattern
# 60| 0: [ReservedWord] [
# 60| 1: [Integer] 5
# 60| 2: [SplatParameter] SplatParameter
# 60| 3: [ReservedWord] ]
# 61| 23: [InClause] InClause
# 61| 0: [ReservedWord] in
# 61| 1: [ArrayPattern] ArrayPattern
# 61| 0: [ReservedWord] [
# 61| 1: [Integer] 1
# 61| 2: [ReservedWord] ,
# 61| 3: [Integer] 2
# 61| 4: [ReservedWord] ]
# 62| 24: [InClause] InClause
# 62| 0: [ReservedWord] in
# 62| 1: [ArrayPattern] ArrayPattern
# 62| 0: [ReservedWord] [
# 62| 1: [Integer] 1
# 62| 2: [ReservedWord] ,
# 62| 3: [Integer] 2
# 62| 4: [SplatParameter] SplatParameter
# 62| 5: [ReservedWord] ]
# 63| 25: [InClause] InClause
# 63| 0: [ReservedWord] in
# 63| 1: [ArrayPattern] ArrayPattern
# 63| 0: [ReservedWord] [
# 63| 1: [Integer] 1
# 63| 2: [ReservedWord] ,
# 63| 3: [Integer] 2
# 63| 4: [ReservedWord] ,
# 63| 5: [Integer] 3
# 63| 6: [ReservedWord] ]
# 64| 26: [InClause] InClause
# 64| 0: [ReservedWord] in
# 64| 1: [ArrayPattern] ArrayPattern
# 64| 0: [ReservedWord] [
# 64| 1: [Integer] 1
# 64| 2: [ReservedWord] ,
# 64| 3: [Integer] 2
# 64| 4: [ReservedWord] ,
# 64| 5: [Integer] 3
# 64| 6: [SplatParameter] SplatParameter
# 64| 7: [ReservedWord] ]
# 65| 27: [InClause] InClause
# 65| 0: [ReservedWord] in
# 65| 1: [ArrayPattern] ArrayPattern
# 65| 0: [ReservedWord] [
# 65| 1: [Integer] 1
# 65| 2: [ReservedWord] ,
# 65| 3: [Integer] 2
# 65| 4: [ReservedWord] ,
# 65| 5: [Integer] 3
# 65| 6: [ReservedWord] ,
# 65| 7: [SplatParameter] SplatParameter
# 65| 0: [ReservedWord] *
# 65| 8: [ReservedWord] ]
# 66| 28: [InClause] InClause
# 66| 0: [ReservedWord] in
# 66| 1: [ArrayPattern] ArrayPattern
# 66| 0: [ReservedWord] [
# 66| 1: [Integer] 1
# 66| 2: [ReservedWord] ,
# 66| 3: [SplatParameter] SplatParameter
# 66| 0: [ReservedWord] *
# 66| 1: [Identifier] x
# 66| 4: [ReservedWord] ,
# 66| 5: [Integer] 3
# 66| 6: [ReservedWord] ]
# 67| 29: [InClause] InClause
# 67| 0: [ReservedWord] in
# 67| 1: [ArrayPattern] ArrayPattern
# 67| 0: [ReservedWord] [
# 67| 1: [SplatParameter] SplatParameter
# 67| 0: [ReservedWord] *
# 67| 2: [ReservedWord] ]
# 68| 30: [InClause] InClause
# 68| 0: [ReservedWord] in
# 68| 1: [ArrayPattern] ArrayPattern
# 68| 0: [ReservedWord] [
# 68| 1: [SplatParameter] SplatParameter
# 68| 0: [ReservedWord] *
# 68| 1: [Identifier] x
# 68| 2: [ReservedWord] ,
# 68| 3: [Integer] 3
# 68| 4: [ReservedWord] ,
# 68| 5: [Integer] 4
# 68| 6: [ReservedWord] ]
# 69| 31: [InClause] InClause
# 69| 0: [ReservedWord] in
# 69| 1: [FindPattern] FindPattern
# 69| 0: [ReservedWord] [
# 69| 1: [SplatParameter] SplatParameter
# 69| 0: [ReservedWord] *
# 69| 2: [ReservedWord] ,
# 69| 3: [Integer] 3
# 69| 4: [ReservedWord] ,
# 69| 5: [SplatParameter] SplatParameter
# 69| 0: [ReservedWord] *
# 69| 6: [ReservedWord] ]
# 70| 32: [InClause] InClause
# 70| 0: [ReservedWord] in
# 70| 1: [FindPattern] FindPattern
# 70| 0: [ReservedWord] [
# 70| 1: [SplatParameter] SplatParameter
# 70| 0: [ReservedWord] *
# 70| 1: [Identifier] a
# 70| 2: [ReservedWord] ,
# 70| 3: [Integer] 3
# 70| 4: [ReservedWord] ,
# 70| 5: [SplatParameter] SplatParameter
# 70| 0: [ReservedWord] *
# 70| 1: [Identifier] b
# 70| 6: [ReservedWord] ]
# 71| 33: [InClause] InClause
# 71| 0: [ReservedWord] in
# 71| 1: [HashPattern] HashPattern
# 71| 0: [ReservedWord] {
# 71| 1: [KeywordPattern] KeywordPattern
# 71| 0: [HashKeySymbol] a
# 71| 1: [ReservedWord] :
# 71| 2: [ReservedWord] }
# 72| 34: [InClause] InClause
# 72| 0: [ReservedWord] in
# 72| 1: [HashPattern] HashPattern
# 72| 0: [ReservedWord] {
# 72| 1: [KeywordPattern] KeywordPattern
# 72| 0: [HashKeySymbol] a
# 72| 1: [ReservedWord] :
# 72| 2: [Integer] 5
# 72| 2: [ReservedWord] }
# 73| 35: [InClause] InClause
# 73| 0: [ReservedWord] in
# 73| 1: [HashPattern] HashPattern
# 73| 0: [ReservedWord] {
# 73| 1: [KeywordPattern] KeywordPattern
# 73| 0: [HashKeySymbol] a
# 73| 1: [ReservedWord] :
# 73| 2: [Integer] 5
# 73| 2: [ReservedWord] ,
# 73| 3: [ReservedWord] }
# 74| 36: [InClause] InClause
# 74| 0: [ReservedWord] in
# 74| 1: [HashPattern] HashPattern
# 74| 0: [ReservedWord] {
# 74| 1: [KeywordPattern] KeywordPattern
# 74| 0: [HashKeySymbol] a
# 74| 1: [ReservedWord] :
# 74| 2: [Integer] 5
# 74| 2: [ReservedWord] ,
# 74| 3: [KeywordPattern] KeywordPattern
# 74| 0: [HashKeySymbol] b
# 74| 1: [ReservedWord] :
# 74| 4: [ReservedWord] ,
# 74| 5: [HashSplatParameter] HashSplatParameter
# 74| 0: [ReservedWord] **
# 74| 6: [ReservedWord] }
# 75| 37: [InClause] InClause
# 75| 0: [ReservedWord] in
# 75| 1: [HashPattern] HashPattern
# 75| 0: [ReservedWord] {
# 75| 1: [KeywordPattern] KeywordPattern
# 75| 0: [HashKeySymbol] a
# 75| 1: [ReservedWord] :
# 75| 2: [Integer] 5
# 75| 2: [ReservedWord] ,
# 75| 3: [KeywordPattern] KeywordPattern
# 75| 0: [HashKeySymbol] b
# 75| 1: [ReservedWord] :
# 75| 4: [ReservedWord] ,
# 75| 5: [HashSplatParameter] HashSplatParameter
# 75| 0: [ReservedWord] **
# 75| 1: [Identifier] map
# 75| 6: [ReservedWord] }
# 76| 38: [InClause] InClause
# 76| 0: [ReservedWord] in
# 76| 1: [HashPattern] HashPattern
# 76| 0: [ReservedWord] {
# 76| 1: [KeywordPattern] KeywordPattern
# 76| 0: [HashKeySymbol] a
# 76| 1: [ReservedWord] :
# 76| 2: [Integer] 5
# 76| 2: [ReservedWord] ,
# 76| 3: [KeywordPattern] KeywordPattern
# 76| 0: [HashKeySymbol] b
# 76| 1: [ReservedWord] :
# 76| 4: [ReservedWord] ,
# 76| 5: [HashSplatNil] **nil
# 76| 0: [ReservedWord] **
# 76| 1: [ReservedWord] nil
# 76| 6: [ReservedWord] }
# 77| 39: [InClause] InClause
# 77| 0: [ReservedWord] in
# 77| 1: [HashPattern] HashPattern
# 77| 0: [ReservedWord] {
# 77| 1: [HashSplatNil] **nil
# 77| 0: [ReservedWord] **
# 77| 1: [ReservedWord] nil
# 77| 2: [ReservedWord] }
# 78| 40: [InClause] InClause
# 78| 0: [ReservedWord] in
# 78| 1: [HashPattern] HashPattern
# 78| 0: [ReservedWord] {
# 78| 1: [ReservedWord] }
# 79| 41: [InClause] InClause
# 79| 0: [ReservedWord] in
# 79| 1: [ArrayPattern] ArrayPattern
# 79| 0: [ReservedWord] [
# 79| 1: [ReservedWord] ]
# 80| 42: [ReservedWord] end
# 84| 9: [Assignment] Assignment
# 84| 0: [Identifier] foo
# 84| 1: [ReservedWord] =
# 84| 2: [Integer] 42
# 86| 10: [CaseMatch] CaseMatch
# 86| 0: [ReservedWord] case
# 86| 1: [Identifier] expr
# 87| 2: [InClause] InClause
# 87| 0: [ReservedWord] in
# 87| 1: [Integer] 5
# 88| 3: [InClause] InClause
# 88| 0: [ReservedWord] in
# 88| 1: [VariableReferencePattern] VariableReferencePattern
# 88| 0: [ReservedWord] ^
# 88| 1: [Identifier] foo
# 89| 4: [InClause] InClause
# 89| 0: [ReservedWord] in
# 89| 1: [String] String
# 89| 0: [ReservedWord] "
# 89| 1: [StringContent] string
# 89| 2: [ReservedWord] "
# 90| 5: [InClause] InClause
# 90| 0: [ReservedWord] in
# 90| 1: [StringArray] StringArray
# 90| 0: [ReservedWord] %w(
# 90| 1: [BareString] BareString
# 90| 0: [StringContent] foo
# 90| 2: [BareString] BareString
# 90| 0: [StringContent] bar
# 90| 3: [ReservedWord] )
# 91| 6: [InClause] InClause
# 91| 0: [ReservedWord] in
# 91| 1: [SymbolArray] SymbolArray
# 91| 0: [ReservedWord] %i(
# 91| 1: [BareSymbol] BareSymbol
# 91| 0: [StringContent] foo
# 91| 2: [BareSymbol] BareSymbol
# 91| 0: [StringContent] bar
# 91| 3: [ReservedWord] )
# 92| 7: [InClause] InClause
# 92| 0: [ReservedWord] in
# 92| 1: [Regex] Regex
# 92| 0: [ReservedWord] /
# 92| 1: [StringContent] .*abc[0-9]
# 92| 2: [ReservedWord] /
# 93| 8: [InClause] InClause
# 93| 0: [ReservedWord] in
# 93| 1: [Range] Range
# 93| 0: [Integer] 5
# 93| 1: [ReservedWord] ..
# 93| 2: [Integer] 10
# 94| 9: [InClause] InClause
# 94| 0: [ReservedWord] in
# 94| 1: [Range] Range
# 94| 0: [ReservedWord] ..
# 94| 1: [Integer] 10
# 95| 10: [InClause] InClause
# 95| 0: [ReservedWord] in
# 95| 1: [Range] Range
# 95| 0: [Integer] 5
# 95| 1: [ReservedWord] ..
# 96| 11: [InClause] InClause
# 96| 0: [ReservedWord] in
# 96| 1: [AsPattern] AsPattern
# 96| 0: [Integer] 5
# 96| 1: [ReservedWord] =>
# 96| 2: [Identifier] x
# 97| 12: [InClause] InClause
# 97| 0: [ReservedWord] in
# 97| 1: [Constant] Foo
# 98| 13: [InClause] InClause
# 98| 0: [ReservedWord] in
# 98| 1: [ScopeResolution] ScopeResolution
# 98| 0: [Constant] Foo
# 98| 1: [ReservedWord] ::
# 98| 2: [Constant] Bar
# 99| 14: [InClause] InClause
# 99| 0: [ReservedWord] in
# 99| 1: [ScopeResolution] ScopeResolution
# 99| 0: [ScopeResolution] ScopeResolution
# 99| 0: [ReservedWord] ::
# 99| 1: [Constant] Foo
# 99| 1: [ReservedWord] ::
# 99| 2: [Constant] Bar
# 100| 15: [InClause] InClause
# 100| 0: [ReservedWord] in
# 100| 1: [AlternativePattern] AlternativePattern
# 100| 0: [Nil] nil
# 100| 0: [ReservedWord] nil
# 100| 1: [ReservedWord] |
# 100| 2: [Self] self
# 100| 3: [ReservedWord] |
# 100| 4: [True] true
# 100| 5: [ReservedWord] |
# 100| 6: [False] false
# 100| 7: [ReservedWord] |
# 100| 8: [Line] __LINE__
# 100| 9: [ReservedWord] |
# 100| 10: [File] __FILE__
# 100| 11: [ReservedWord] |
# 100| 12: [Encoding] __ENCODING__
# 101| 16: [InClause] InClause
# 101| 0: [ReservedWord] in
# 101| 1: [Lambda] Lambda
# 101| 0: [ReservedWord] ->
# 101| 1: [LambdaParameters] LambdaParameters
# 101| 0: [Identifier] x
# 101| 2: [Block] Block
# 101| 0: [ReservedWord] {
# 101| 1: [BlockBody] BlockBody
# 101| 0: [Binary] Binary
# 101| 0: [Identifier] x
# 101| 1: [ReservedWord] ==
# 101| 2: [Integer] 10
# 101| 2: [ReservedWord] }
# 102| 17: [InClause] InClause
# 102| 0: [ReservedWord] in
# 102| 1: [SimpleSymbol] :foo
# 103| 18: [InClause] InClause
# 103| 0: [ReservedWord] in
# 103| 1: [DelimitedSymbol] DelimitedSymbol
# 103| 0: [ReservedWord] :"
# 103| 1: [StringContent] foo bar
# 103| 2: [ReservedWord] "
# 104| 19: [InClause] InClause
# 104| 0: [ReservedWord] in
# 104| 1: [AlternativePattern] AlternativePattern
# 104| 0: [Unary] Unary
# 104| 0: [ReservedWord] -
# 104| 1: [Integer] 5
# 104| 1: [ReservedWord] |
# 104| 2: [Unary] Unary
# 104| 0: [ReservedWord] +
# 104| 1: [Integer] 10
# 105| 20: [InClause] InClause
# 105| 0: [ReservedWord] in
# 105| 1: [ParenthesizedPattern] ParenthesizedPattern
# 105| 0: [ReservedWord] (
# 105| 1: [Range] Range
# 105| 0: [Integer] 1
# 105| 1: [ReservedWord] ..
# 105| 2: [ReservedWord] )
# 106| 21: [InClause] InClause
# 106| 0: [ReservedWord] in
# 106| 1: [ParenthesizedPattern] ParenthesizedPattern
# 106| 0: [ReservedWord] (
# 106| 1: [AlternativePattern] AlternativePattern
# 106| 0: [Integer] 0
# 106| 1: [ReservedWord] |
# 106| 2: [String] String
# 106| 0: [ReservedWord] "
# 106| 1: [ReservedWord] "
# 106| 3: [ReservedWord] |
# 106| 4: [ArrayPattern] ArrayPattern
# 106| 0: [ReservedWord] [
# 106| 1: [ReservedWord] ]
# 106| 5: [ReservedWord] |
# 106| 6: [HashPattern] HashPattern
# 106| 0: [ReservedWord] {
# 106| 1: [ReservedWord] }
# 106| 2: [ReservedWord] )
# 107| 22: [InClause] InClause
# 107| 0: [ReservedWord] in
# 107| 1: [Identifier] var
# 108| 23: [ReservedWord] end
# 110| 11: [CaseMatch] CaseMatch
# 110| 0: [ReservedWord] case
# 110| 1: [Identifier] expr
# 111| 2: [InClause] InClause
# 111| 0: [ReservedWord] in
# 111| 1: [AlternativePattern] AlternativePattern
# 111| 0: [Integer] 5
# 111| 1: [ReservedWord] |
# 111| 2: [VariableReferencePattern] VariableReferencePattern
# 111| 0: [ReservedWord] ^
# 111| 1: [Identifier] foo
# 111| 3: [ReservedWord] |
# 111| 4: [String] String
# 111| 0: [ReservedWord] "
# 111| 1: [StringContent] string
# 111| 2: [ReservedWord] "
# 111| 5: [ReservedWord] |
# 111| 6: [Identifier] var
# 112| 3: [ReservedWord] end
# 116| 12: [CaseMatch] CaseMatch
# 116| 0: [ReservedWord] case
# 116| 1: [Identifier] expr
# 117| 2: [InClause] InClause
# 117| 0: [ReservedWord] in
# 117| 1: [ArrayPattern] ArrayPattern
# 117| 0: [ReservedWord] [
# 117| 1: [ReservedWord] ]
# 117| 2: [ReservedWord] ;
# 118| 3: [InClause] InClause
# 118| 0: [ReservedWord] in
# 118| 1: [ArrayPattern] ArrayPattern
# 118| 0: [ReservedWord] [
# 118| 1: [Identifier] x
# 118| 2: [ReservedWord] ]
# 118| 2: [ReservedWord] ;
# 119| 4: [InClause] InClause
# 119| 0: [ReservedWord] in
# 119| 1: [ArrayPattern] ArrayPattern
# 119| 0: [ReservedWord] [
# 119| 1: [Identifier] x
# 119| 2: [SplatParameter] SplatParameter
# 119| 3: [ReservedWord] ]
# 119| 2: [ReservedWord] ;
# 120| 5: [InClause] InClause
# 120| 0: [ReservedWord] in
# 120| 1: [ArrayPattern] ArrayPattern
# 120| 0: [ScopeResolution] ScopeResolution
# 120| 0: [Constant] Foo
# 120| 1: [ReservedWord] ::
# 120| 2: [Constant] Bar
# 120| 1: [ReservedWord] [
# 120| 2: [ReservedWord] ]
# 120| 2: [ReservedWord] ;
# 121| 6: [InClause] InClause
# 121| 0: [ReservedWord] in
# 121| 1: [ArrayPattern] ArrayPattern
# 121| 0: [Constant] Foo
# 121| 1: [ReservedWord] (
# 121| 2: [ReservedWord] )
# 121| 2: [ReservedWord] ;
# 122| 7: [InClause] InClause
# 122| 0: [ReservedWord] in
# 122| 1: [ArrayPattern] ArrayPattern
# 122| 0: [Constant] Bar
# 122| 1: [ReservedWord] (
# 122| 2: [SplatParameter] SplatParameter
# 122| 0: [ReservedWord] *
# 122| 3: [ReservedWord] )
# 122| 2: [ReservedWord] ;
# 123| 8: [InClause] InClause
# 123| 0: [ReservedWord] in
# 123| 1: [ArrayPattern] ArrayPattern
# 123| 0: [Constant] Bar
# 123| 1: [ReservedWord] (
# 123| 2: [Identifier] a
# 123| 3: [ReservedWord] ,
# 123| 4: [Identifier] b
# 123| 5: [ReservedWord] ,
# 123| 6: [SplatParameter] SplatParameter
# 123| 0: [ReservedWord] *
# 123| 1: [Identifier] c
# 123| 7: [ReservedWord] ,
# 123| 8: [Identifier] d
# 123| 9: [ReservedWord] ,
# 123| 10: [Identifier] e
# 123| 11: [ReservedWord] )
# 123| 2: [ReservedWord] ;
# 124| 9: [ReservedWord] end
# 128| 13: [CaseMatch] CaseMatch
# 128| 0: [ReservedWord] case
# 128| 1: [Identifier] expr
# 129| 2: [InClause] InClause
# 129| 0: [ReservedWord] in
# 129| 1: [FindPattern] FindPattern
# 129| 0: [ReservedWord] [
# 129| 1: [SplatParameter] SplatParameter
# 129| 0: [ReservedWord] *
# 129| 2: [ReservedWord] ,
# 129| 3: [Identifier] x
# 129| 4: [ReservedWord] ,
# 129| 5: [SplatParameter] SplatParameter
# 129| 0: [ReservedWord] *
# 129| 6: [ReservedWord] ]
# 129| 2: [ReservedWord] ;
# 130| 3: [InClause] InClause
# 130| 0: [ReservedWord] in
# 130| 1: [FindPattern] FindPattern
# 130| 0: [ReservedWord] [
# 130| 1: [SplatParameter] SplatParameter
# 130| 0: [ReservedWord] *
# 130| 1: [Identifier] x
# 130| 2: [ReservedWord] ,
# 130| 3: [Integer] 1
# 130| 4: [ReservedWord] ,
# 130| 5: [Integer] 2
# 130| 6: [ReservedWord] ,
# 130| 7: [SplatParameter] SplatParameter
# 130| 0: [ReservedWord] *
# 130| 1: [Identifier] y
# 130| 8: [ReservedWord] ]
# 130| 2: [ReservedWord] ;
# 131| 4: [InClause] InClause
# 131| 0: [ReservedWord] in
# 131| 1: [FindPattern] FindPattern
# 131| 0: [ScopeResolution] ScopeResolution
# 131| 0: [Constant] Foo
# 131| 1: [ReservedWord] ::
# 131| 2: [Constant] Bar
# 131| 1: [ReservedWord] [
# 131| 2: [SplatParameter] SplatParameter
# 131| 0: [ReservedWord] *
# 131| 3: [ReservedWord] ,
# 131| 4: [Integer] 1
# 131| 5: [ReservedWord] ,
# 131| 6: [SplatParameter] SplatParameter
# 131| 0: [ReservedWord] *
# 131| 7: [ReservedWord] ]
# 131| 2: [ReservedWord] ;
# 132| 5: [InClause] InClause
# 132| 0: [ReservedWord] in
# 132| 1: [FindPattern] FindPattern
# 132| 0: [Constant] Foo
# 132| 1: [ReservedWord] (
# 132| 2: [SplatParameter] SplatParameter
# 132| 0: [ReservedWord] *
# 132| 3: [ReservedWord] ,
# 132| 4: [Constant] Bar
# 132| 5: [ReservedWord] ,
# 132| 6: [SplatParameter] SplatParameter
# 132| 0: [ReservedWord] *
# 132| 7: [ReservedWord] )
# 132| 2: [ReservedWord] ;
# 133| 6: [ReservedWord] end
# 137| 14: [CaseMatch] CaseMatch
# 137| 0: [ReservedWord] case
# 137| 1: [Identifier] expr
# 138| 2: [InClause] InClause
# 138| 0: [ReservedWord] in
# 138| 1: [HashPattern] HashPattern
# 138| 0: [ReservedWord] {
# 138| 1: [ReservedWord] }
# 138| 2: [ReservedWord] ;
# 139| 3: [InClause] InClause
# 139| 0: [ReservedWord] in
# 139| 1: [HashPattern] HashPattern
# 139| 0: [ReservedWord] {
# 139| 1: [KeywordPattern] KeywordPattern
# 139| 0: [HashKeySymbol] x
# 139| 1: [ReservedWord] :
# 139| 2: [ReservedWord] }
# 139| 2: [ReservedWord] ;
# 140| 4: [InClause] InClause
# 140| 0: [ReservedWord] in
# 140| 1: [HashPattern] HashPattern
# 140| 0: [ScopeResolution] ScopeResolution
# 140| 0: [Constant] Foo
# 140| 1: [ReservedWord] ::
# 140| 2: [Constant] Bar
# 140| 1: [ReservedWord] [
# 140| 2: [KeywordPattern] KeywordPattern
# 140| 0: [HashKeySymbol] x
# 140| 1: [ReservedWord] :
# 140| 2: [Integer] 1
# 140| 3: [ReservedWord] ]
# 140| 2: [ReservedWord] ;
# 141| 5: [InClause] InClause
# 141| 0: [ReservedWord] in
# 141| 1: [HashPattern] HashPattern
# 141| 0: [ScopeResolution] ScopeResolution
# 141| 0: [Constant] Foo
# 141| 1: [ReservedWord] ::
# 141| 2: [Constant] Bar
# 141| 1: [ReservedWord] [
# 141| 2: [KeywordPattern] KeywordPattern
# 141| 0: [HashKeySymbol] x
# 141| 1: [ReservedWord] :
# 141| 2: [Integer] 1
# 141| 3: [ReservedWord] ,
# 141| 4: [KeywordPattern] KeywordPattern
# 141| 0: [HashKeySymbol] a
# 141| 1: [ReservedWord] :
# 141| 5: [ReservedWord] ,
# 141| 6: [HashSplatParameter] HashSplatParameter
# 141| 0: [ReservedWord] **
# 141| 1: [Identifier] rest
# 141| 7: [ReservedWord] ]
# 141| 2: [ReservedWord] ;
# 142| 6: [InClause] InClause
# 142| 0: [ReservedWord] in
# 142| 1: [HashPattern] HashPattern
# 142| 0: [Constant] Foo
# 142| 1: [ReservedWord] (
# 142| 2: [KeywordPattern] KeywordPattern
# 142| 0: [HashKeySymbol] y
# 142| 1: [ReservedWord] :
# 142| 3: [ReservedWord] )
# 142| 2: [ReservedWord] ;
# 143| 7: [InClause] InClause
# 143| 0: [ReservedWord] in
# 143| 1: [HashPattern] HashPattern
# 143| 0: [Constant] Bar
# 143| 1: [ReservedWord] (
# 143| 2: [HashSplatParameter] HashSplatParameter
# 143| 0: [ReservedWord] **
# 143| 3: [ReservedWord] )
# 143| 2: [ReservedWord] ;
# 144| 8: [InClause] InClause
# 144| 0: [ReservedWord] in
# 144| 1: [HashPattern] HashPattern
# 144| 0: [Constant] Bar
# 144| 1: [ReservedWord] (
# 144| 2: [KeywordPattern] KeywordPattern
# 144| 0: [HashKeySymbol] a
# 144| 1: [ReservedWord] :
# 144| 2: [Integer] 1
# 144| 3: [ReservedWord] ,
# 144| 4: [HashSplatNil] **nil
# 144| 0: [ReservedWord] **
# 144| 1: [ReservedWord] nil
# 144| 5: [ReservedWord] )
# 144| 2: [ReservedWord] ;
# 145| 9: [ReservedWord] end
# 147| 15: [CaseMatch] CaseMatch
# 147| 0: [ReservedWord] case
# 147| 1: [Identifier] expr
# 148| 2: [InClause] InClause
# 148| 0: [ReservedWord] in
# 148| 1: [VariableReferencePattern] VariableReferencePattern
# 148| 0: [ReservedWord] ^
# 148| 1: [Identifier] foo
# 148| 2: [ReservedWord] ;
# 149| 3: [InClause] InClause
# 149| 0: [ReservedWord] in
# 149| 1: [VariableReferencePattern] VariableReferencePattern
# 149| 0: [ReservedWord] ^
# 149| 1: [GlobalVariable] $foo
# 149| 2: [ReservedWord] ;
# 150| 4: [InClause] InClause
# 150| 0: [ReservedWord] in
# 150| 1: [VariableReferencePattern] VariableReferencePattern
# 150| 0: [ReservedWord] ^
# 150| 1: [InstanceVariable] @foo
# 150| 2: [ReservedWord] ;
# 151| 5: [InClause] InClause
# 151| 0: [ReservedWord] in
# 151| 1: [VariableReferencePattern] VariableReferencePattern
# 151| 0: [ReservedWord] ^
# 151| 1: [ClassVariable] @@foo
# 151| 2: [ReservedWord] ;
# 152| 6: [ReservedWord] end
# 154| 16: [CaseMatch] CaseMatch
# 154| 0: [ReservedWord] case
# 154| 1: [Identifier] expr
# 155| 2: [InClause] InClause
# 155| 0: [ReservedWord] in
# 155| 1: [ExpressionReferencePattern] ExpressionReferencePattern
# 155| 0: [ReservedWord] ^
# 155| 1: [ReservedWord] (
# 155| 2: [Identifier] foo
# 155| 3: [ReservedWord] )
# 155| 2: [ReservedWord] ;
# 156| 3: [InClause] InClause
# 156| 0: [ReservedWord] in
# 156| 1: [ExpressionReferencePattern] ExpressionReferencePattern
# 156| 0: [ReservedWord] ^
# 156| 1: [ReservedWord] (
# 156| 2: [InstanceVariable] @foo
# 156| 3: [ReservedWord] )
# 156| 2: [ReservedWord] ;
# 157| 4: [InClause] InClause
# 157| 0: [ReservedWord] in
# 157| 1: [ExpressionReferencePattern] ExpressionReferencePattern
# 157| 0: [ReservedWord] ^
# 157| 1: [ReservedWord] (
# 157| 2: [Binary] Binary
# 157| 0: [Integer] 1
# 157| 1: [ReservedWord] +
# 157| 2: [Integer] 1
# 157| 3: [ReservedWord] )
# 157| 2: [ReservedWord] ;
# 158| 5: [ReservedWord] end
# 160| 17: [TestPattern] TestPattern
# 160| 0: [Identifier] expr
# 160| 1: [ReservedWord] in
# 160| 2: [ArrayPattern] ArrayPattern
# 160| 0: [ReservedWord] [
# 160| 1: [Integer] 1
# 160| 2: [ReservedWord] ,
# 160| 3: [Integer] 2
# 160| 4: [ReservedWord] ]
# 162| 18: [MatchPattern] MatchPattern
# 162| 0: [Identifier] expr
# 162| 1: [ReservedWord] =>
# 162| 2: [HashPattern] HashPattern
# 162| 0: [ReservedWord] {
# 162| 1: [KeywordPattern] KeywordPattern
# 162| 0: [HashKeySymbol] x
# 162| 1: [ReservedWord] :
# 162| 2: [Identifier] v
# 162| 2: [ReservedWord] ,
# 162| 3: [KeywordPattern] KeywordPattern
# 162| 0: [HashKeySymbol] y
# 162| 1: [ReservedWord] :
# 162| 2: [Integer] 1
# 162| 4: [ReservedWord] }
# 164| 19: [Case] Case
# 164| 0: [ReservedWord] case
# 165| 1: [Identifier] foo
# 166| 2: [When] When
# 166| 0: [ReservedWord] when
# 166| 1: [Pattern] Pattern
# 166| 0: [Integer] 1
# 166| 2: [Then] Then
# 166| 0: [ReservedWord] then
# 166| 1: [Integer] 2
# 167| 3: [ReservedWord] end
# 169| 20: [CaseMatch] CaseMatch
# 169| 0: [ReservedWord] case
# 170| 1: [Identifier] foo
# 171| 2: [InClause] InClause
# 171| 0: [ReservedWord] in
# 171| 1: [Integer] 3
# 171| 2: [Then] Then
# 171| 0: [ReservedWord] then
# 171| 1: [String] String
# 171| 0: [ReservedWord] "
# 171| 1: [StringContent] three
# 171| 2: [ReservedWord] "
# 172| 3: [ReservedWord] end
# 1| [Comment] # Define some variables used below
# 7| [Comment] # A case expr with a value and an else branch
# 17| [Comment] # A case expr without a value or else branch
# 24| [Comment] # pattern matching
# 82| [Comment] # more pattern matching
# 114| [Comment] # array patterns
# 126| [Comment] # find patterns
# 135| [Comment] # hash patterns
control/conditionals.rb:
# 1| [Program] Program
# 2| 0: [Assignment] Assignment
# 2| 0: [Identifier] a
# 2| 1: [ReservedWord] =
# 2| 2: [Integer] 0
# 3| 1: [Assignment] Assignment
# 3| 0: [Identifier] b
# 3| 1: [ReservedWord] =
# 3| 2: [Integer] 0
# 4| 2: [Assignment] Assignment
# 4| 0: [Identifier] c
# 4| 1: [ReservedWord] =
# 4| 2: [Integer] 0
# 5| 3: [Assignment] Assignment
# 5| 0: [Identifier] d
# 5| 1: [ReservedWord] =
# 5| 2: [Integer] 0
# 6| 4: [Assignment] Assignment
# 6| 0: [Identifier] e
# 6| 1: [ReservedWord] =
# 6| 2: [Integer] 0
# 7| 5: [Assignment] Assignment
# 7| 0: [Identifier] f
# 7| 1: [ReservedWord] =
# 7| 2: [Integer] 0
# 10| 6: [If] If
# 10| 0: [ReservedWord] if
# 10| 1: [Binary] Binary
# 10| 0: [Identifier] a
# 10| 1: [ReservedWord] >
# 10| 2: [Identifier] b
# 10| 2: [Then] Then
# 10| 0: [ReservedWord] then
# 11| 1: [Identifier] c
# 12| 3: [ReservedWord] end
# 15| 7: [If] If
# 15| 0: [ReservedWord] if
# 15| 1: [Binary] Binary
# 15| 0: [Identifier] a
# 15| 1: [ReservedWord] ==
# 15| 2: [Identifier] b
# 15| 2: [Then] Then
# 16| 0: [Identifier] c
# 17| 3: [Else] Else
# 17| 0: [ReservedWord] else
# 18| 1: [Identifier] d
# 19| 4: [ReservedWord] end
# 22| 8: [If] If
# 22| 0: [ReservedWord] if
# 22| 1: [Binary] Binary
# 22| 0: [Identifier] a
# 22| 1: [ReservedWord] ==
# 22| 2: [Integer] 0
# 22| 2: [Then] Then
# 22| 0: [ReservedWord] then
# 23| 1: [Identifier] c
# 24| 3: [Elsif] Elsif
# 24| 0: [ReservedWord] elsif
# 24| 1: [Binary] Binary
# 24| 0: [Identifier] a
# 24| 1: [ReservedWord] ==
# 24| 2: [Integer] 1
# 24| 2: [Then] Then
# 24| 0: [ReservedWord] then
# 25| 1: [Identifier] d
# 26| 3: [Elsif] Elsif
# 26| 0: [ReservedWord] elsif
# 26| 1: [Binary] Binary
# 26| 0: [Identifier] a
# 26| 1: [ReservedWord] ==
# 26| 2: [Integer] 2
# 26| 2: [Then] Then
# 26| 0: [ReservedWord] then
# 27| 1: [Identifier] e
# 28| 3: [Else] Else
# 28| 0: [ReservedWord] else
# 29| 1: [Identifier] f
# 30| 4: [ReservedWord] end
# 33| 9: [If] If
# 33| 0: [ReservedWord] if
# 33| 1: [Binary] Binary
# 33| 0: [Identifier] a
# 33| 1: [ReservedWord] ==
# 33| 2: [Integer] 0
# 33| 2: [Then] Then
# 34| 0: [Identifier] b
# 35| 3: [Elsif] Elsif
# 35| 0: [ReservedWord] elsif
# 35| 1: [Binary] Binary
# 35| 0: [Identifier] a
# 35| 1: [ReservedWord] ==
# 35| 2: [Integer] 1
# 35| 2: [Then] Then
# 36| 0: [Identifier] c
# 37| 4: [ReservedWord] end
# 40| 10: [Unless] Unless
# 40| 0: [ReservedWord] unless
# 40| 1: [Binary] Binary
# 40| 0: [Identifier] a
# 40| 1: [ReservedWord] >
# 40| 2: [Identifier] b
# 40| 2: [Then] Then
# 40| 0: [ReservedWord] then
# 41| 1: [Identifier] c
# 42| 3: [ReservedWord] end
# 45| 11: [Unless] Unless
# 45| 0: [ReservedWord] unless
# 45| 1: [Binary] Binary
# 45| 0: [Identifier] a
# 45| 1: [ReservedWord] ==
# 45| 2: [Identifier] b
# 45| 2: [Then] Then
# 46| 0: [Identifier] c
# 47| 3: [Else] Else
# 47| 0: [ReservedWord] else
# 48| 1: [Identifier] d
# 49| 4: [ReservedWord] end
# 52| 12: [IfModifier] IfModifier
# 52| 0: [Assignment] Assignment
# 52| 0: [Identifier] a
# 52| 1: [ReservedWord] =
# 52| 2: [Identifier] b
# 52| 1: [ReservedWord] if
# 52| 2: [Binary] Binary
# 52| 0: [Identifier] c
# 52| 1: [ReservedWord] >
# 52| 2: [Identifier] d
# 55| 13: [UnlessModifier] UnlessModifier
# 55| 0: [Assignment] Assignment
# 55| 0: [Identifier] a
# 55| 1: [ReservedWord] =
# 55| 2: [Identifier] b
# 55| 1: [ReservedWord] unless
# 55| 2: [Binary] Binary
# 55| 0: [Identifier] c
# 55| 1: [ReservedWord] <
# 55| 2: [Identifier] d
# 58| 14: [Assignment] Assignment
# 58| 0: [Identifier] a
# 58| 1: [ReservedWord] =
# 58| 2: [Conditional] Conditional
# 58| 0: [Binary] Binary
# 58| 0: [Identifier] b
# 58| 1: [ReservedWord] >
# 58| 2: [Identifier] c
# 58| 1: [ReservedWord] ?
# 58| 2: [Binary] Binary
# 58| 0: [Identifier] d
# 58| 1: [ReservedWord] +
# 58| 2: [Integer] 1
# 58| 3: [ReservedWord] :
# 58| 4: [Binary] Binary
# 58| 0: [Identifier] e
# 58| 1: [ReservedWord] -
# 58| 2: [Integer] 2
# 61| 15: [If] If
# 61| 0: [ReservedWord] if
# 61| 1: [Binary] Binary
# 61| 0: [Identifier] a
# 61| 1: [ReservedWord] >
# 61| 2: [Identifier] b
# 61| 2: [Then] Then
# 61| 0: [ReservedWord] then
# 62| 1: [Identifier] c
# 63| 3: [Else] Else
# 63| 0: [ReservedWord] else
# 64| 4: [ReservedWord] end
# 67| 16: [If] If
# 67| 0: [ReservedWord] if
# 67| 1: [Binary] Binary
# 67| 0: [Identifier] a
# 67| 1: [ReservedWord] >
# 67| 2: [Identifier] b
# 67| 2: [Then] Then
# 67| 0: [ReservedWord] then
# 68| 3: [Else] Else
# 68| 0: [ReservedWord] else
# 69| 1: [Identifier] c
# 70| 4: [ReservedWord] end
# 1| [Comment] # Define some variables used below
# 9| [Comment] # If expr with no else
# 14| [Comment] # If expr with single else
# 21| [Comment] # If expr with multiple nested elsif branches
# 32| [Comment] # If expr with elsif and then no else
# 39| [Comment] # Unless expr with no else
# 44| [Comment] # Unless expr with else
# 51| [Comment] # If-modified expr
# 54| [Comment] # Unless-modified expr
# 57| [Comment] # Ternary if expr
# 60| [Comment] # If expr with empty else (treated as no else)
# 66| [Comment] # If expr with empty then (treated as no then)
control/loops.rb:
# 1| [Program] Program
# 2| 0: [Assignment] Assignment
# 2| 0: [Identifier] foo
# 2| 1: [ReservedWord] =
# 2| 2: [Integer] 0
# 3| 1: [Assignment] Assignment
# 3| 0: [Identifier] sum
# 3| 1: [ReservedWord] =
# 3| 2: [Integer] 0
# 4| 2: [Assignment] Assignment
# 4| 0: [Identifier] x
# 4| 1: [ReservedWord] =
# 4| 2: [Integer] 0
# 5| 3: [Assignment] Assignment
# 5| 0: [Identifier] y
# 5| 1: [ReservedWord] =
# 5| 2: [Integer] 0
# 6| 4: [Assignment] Assignment
# 6| 0: [Identifier] z
# 6| 1: [ReservedWord] =
# 6| 2: [Integer] 0
# 9| 5: [For] For
# 9| 0: [ReservedWord] for
# 9| 1: [Identifier] n
# 9| 2: [In] In
# 9| 0: [ReservedWord] in
# 9| 1: [Range] Range
# 9| 0: [Integer] 1
# 9| 1: [ReservedWord] ..
# 9| 2: [Integer] 10
# 9| 3: [Do] Do
# 10| 0: [OperatorAssignment] OperatorAssignment
# 10| 0: [Identifier] sum
# 10| 1: [ReservedWord] +=
# 10| 2: [Identifier] n
# 11| 1: [Assignment] Assignment
# 11| 0: [Identifier] foo
# 11| 1: [ReservedWord] =
# 11| 2: [Identifier] n
# 12| 2: [ReservedWord] end
# 16| 6: [For] For
# 16| 0: [ReservedWord] for
# 16| 1: [Identifier] n
# 16| 2: [In] In
# 16| 0: [ReservedWord] in
# 16| 1: [Range] Range
# 16| 0: [Integer] 1
# 16| 1: [ReservedWord] ..
# 16| 2: [Integer] 10
# 16| 3: [Do] Do
# 17| 0: [OperatorAssignment] OperatorAssignment
# 17| 0: [Identifier] sum
# 17| 1: [ReservedWord] +=
# 17| 2: [Identifier] n
# 18| 1: [OperatorAssignment] OperatorAssignment
# 18| 0: [Identifier] foo
# 18| 1: [ReservedWord] -=
# 18| 2: [Identifier] n
# 19| 2: [ReservedWord] end
# 22| 7: [For] For
# 22| 0: [ReservedWord] for
# 22| 1: [LeftAssignmentList] LeftAssignmentList
# 22| 0: [Identifier] key
# 22| 1: [ReservedWord] ,
# 22| 2: [Identifier] value
# 22| 2: [In] In
# 22| 0: [ReservedWord] in
# 22| 1: [Hash] Hash
# 22| 0: [ReservedWord] {
# 22| 1: [Pair] Pair
# 22| 0: [HashKeySymbol] foo
# 22| 1: [ReservedWord] :
# 22| 2: [Integer] 0
# 22| 2: [ReservedWord] ,
# 22| 3: [Pair] Pair
# 22| 0: [HashKeySymbol] bar
# 22| 1: [ReservedWord] :
# 22| 2: [Integer] 1
# 22| 4: [ReservedWord] }
# 22| 3: [Do] Do
# 23| 0: [OperatorAssignment] OperatorAssignment
# 23| 0: [Identifier] sum
# 23| 1: [ReservedWord] +=
# 23| 2: [Identifier] value
# 24| 1: [OperatorAssignment] OperatorAssignment
# 24| 0: [Identifier] foo
# 24| 1: [ReservedWord] *=
# 24| 2: [Identifier] value
# 25| 2: [ReservedWord] end
# 28| 8: [For] For
# 28| 0: [ReservedWord] for
# 28| 1: [LeftAssignmentList] LeftAssignmentList
# 28| 0: [DestructuredLeftAssignment] DestructuredLeftAssignment
# 28| 0: [ReservedWord] (
# 28| 1: [Identifier] key
# 28| 2: [ReservedWord] ,
# 28| 3: [Identifier] value
# 28| 4: [ReservedWord] )
# 28| 2: [In] In
# 28| 0: [ReservedWord] in
# 28| 1: [Hash] Hash
# 28| 0: [ReservedWord] {
# 28| 1: [Pair] Pair
# 28| 0: [HashKeySymbol] foo
# 28| 1: [ReservedWord] :
# 28| 2: [Integer] 0
# 28| 2: [ReservedWord] ,
# 28| 3: [Pair] Pair
# 28| 0: [HashKeySymbol] bar
# 28| 1: [ReservedWord] :
# 28| 2: [Integer] 1
# 28| 4: [ReservedWord] }
# 28| 3: [Do] Do
# 29| 0: [OperatorAssignment] OperatorAssignment
# 29| 0: [Identifier] sum
# 29| 1: [ReservedWord] +=
# 29| 2: [Identifier] value
# 30| 1: [OperatorAssignment] OperatorAssignment
# 30| 0: [Identifier] foo
# 30| 1: [ReservedWord] /=
# 30| 2: [Identifier] value
# 31| 2: [Break] Break
# 31| 0: [ReservedWord] break
# 32| 3: [ReservedWord] end
# 35| 9: [While] While
# 35| 0: [ReservedWord] while
# 35| 1: [Binary] Binary
# 35| 0: [Identifier] x
# 35| 1: [ReservedWord] <
# 35| 2: [Identifier] y
# 35| 2: [Do] Do
# 36| 0: [OperatorAssignment] OperatorAssignment
# 36| 0: [Identifier] x
# 36| 1: [ReservedWord] +=
# 36| 2: [Integer] 1
# 37| 1: [OperatorAssignment] OperatorAssignment
# 37| 0: [Identifier] z
# 37| 1: [ReservedWord] +=
# 37| 2: [Integer] 1
# 38| 2: [Next] Next
# 38| 0: [ReservedWord] next
# 39| 3: [ReservedWord] end
# 42| 10: [While] While
# 42| 0: [ReservedWord] while
# 42| 1: [Binary] Binary
# 42| 0: [Identifier] x
# 42| 1: [ReservedWord] <
# 42| 2: [Identifier] y
# 42| 2: [Do] Do
# 42| 0: [ReservedWord] do
# 43| 1: [OperatorAssignment] OperatorAssignment
# 43| 0: [Identifier] x
# 43| 1: [ReservedWord] +=
# 43| 2: [Integer] 1
# 44| 2: [OperatorAssignment] OperatorAssignment
# 44| 0: [Identifier] z
# 44| 1: [ReservedWord] +=
# 44| 2: [Integer] 2
# 45| 3: [ReservedWord] end
# 48| 11: [WhileModifier] WhileModifier
# 48| 0: [OperatorAssignment] OperatorAssignment
# 48| 0: [Identifier] x
# 48| 1: [ReservedWord] +=
# 48| 2: [Integer] 1
# 48| 1: [ReservedWord] while
# 48| 2: [Binary] Binary
# 48| 0: [Identifier] y
# 48| 1: [ReservedWord] >=
# 48| 2: [Identifier] x
# 51| 12: [Until] Until
# 51| 0: [ReservedWord] until
# 51| 1: [Binary] Binary
# 51| 0: [Identifier] x
# 51| 1: [ReservedWord] ==
# 51| 2: [Identifier] y
# 51| 2: [Do] Do
# 52| 0: [OperatorAssignment] OperatorAssignment
# 52| 0: [Identifier] x
# 52| 1: [ReservedWord] +=
# 52| 2: [Integer] 1
# 53| 1: [OperatorAssignment] OperatorAssignment
# 53| 0: [Identifier] z
# 53| 1: [ReservedWord] -=
# 53| 2: [Integer] 1
# 54| 2: [ReservedWord] end
# 57| 13: [Until] Until
# 57| 0: [ReservedWord] until
# 57| 1: [Binary] Binary
# 57| 0: [Identifier] x
# 57| 1: [ReservedWord] >
# 57| 2: [Identifier] y
# 57| 2: [Do] Do
# 57| 0: [ReservedWord] do
# 58| 1: [OperatorAssignment] OperatorAssignment
# 58| 0: [Identifier] x
# 58| 1: [ReservedWord] +=
# 58| 2: [Integer] 1
# 59| 2: [OperatorAssignment] OperatorAssignment
# 59| 0: [Identifier] z
# 59| 1: [ReservedWord] -=
# 59| 2: [Integer] 4
# 60| 3: [ReservedWord] end
# 63| 14: [UntilModifier] UntilModifier
# 63| 0: [OperatorAssignment] OperatorAssignment
# 63| 0: [Identifier] x
# 63| 1: [ReservedWord] -=
# 63| 2: [Integer] 1
# 63| 1: [ReservedWord] until
# 63| 2: [Binary] Binary
# 63| 0: [Identifier] x
# 63| 1: [ReservedWord] ==
# 63| 2: [Integer] 0
# 66| 15: [While] While
# 66| 0: [ReservedWord] while
# 66| 1: [Binary] Binary
# 66| 0: [Identifier] x
# 66| 1: [ReservedWord] <
# 66| 2: [Identifier] y
# 66| 2: [Do] Do
# 66| 0: [ReservedWord] do
# 67| 1: [ReservedWord] end
# 1| [Comment] # Define some variables used below.
# 8| [Comment] # For loop with a single variable as the iteration argument
# 14| [Comment] # For loop with a single variable and a trailing comma as the iteration
# 15| [Comment] # argument
# 21| [Comment] # For loop with a tuple pattern as the iteration argument
# 27| [Comment] # Same, but with parentheses around the pattern
# 34| [Comment] # While loop
# 41| [Comment] # While loop with `do` keyword
# 47| [Comment] # While-modified expression
# 50| [Comment] # Until loop
# 56| [Comment] # Until loop with `do` keyword
# 62| [Comment] # Until-modified expression
# 65| [Comment] # While loop with empty `do` block
erb/template.html.erb:
# 19| [Program] Program
# 19| 0: [String] String
# 19| 0: [ReservedWord] "
# 19| 1: [StringContent] hello world
# 19| 2: [ReservedWord] "
# 25| 1: [Assignment] Assignment
# 25| 0: [Identifier] xs
# 25| 1: [ReservedWord] =
# 25| 2: [String] String
# 25| 0: [ReservedWord] "
# 25| 1: [ReservedWord] "
# 27| 2: [For] For
# 27| 0: [ReservedWord] for
# 27| 1: [Identifier] x
# 27| 2: [In] In
# 27| 0: [ReservedWord] in
# 27| 1: [Array] Array
# 27| 0: [ReservedWord] [
# 27| 1: [String] String
# 27| 0: [ReservedWord] "
# 27| 1: [StringContent] foo
# 27| 2: [ReservedWord] "
# 27| 2: [ReservedWord] ,
# 27| 3: [String] String
# 27| 0: [ReservedWord] "
# 27| 1: [StringContent] bar
# 27| 2: [ReservedWord] "
# 27| 4: [ReservedWord] ,
# 27| 5: [String] String
# 27| 0: [ReservedWord] "
# 27| 1: [StringContent] baz
# 27| 2: [ReservedWord] "
# 27| 6: [ReservedWord] ]
# 27| 3: [Do] Do
# 27| 0: [ReservedWord] do
# 28| 1: [OperatorAssignment] OperatorAssignment
# 28| 0: [Identifier] xs
# 28| 1: [ReservedWord] +=
# 28| 2: [Identifier] x
# 29| 2: [Identifier] xs
# 31| 3: [ReservedWord] end
escape_sequences/escapes.rb:
# 1| [Program] Program
# 6| 0: [String] String
# 6| 0: [ReservedWord] '
# 6| 1: [StringContent] \'
# 6| 2: [ReservedWord] '
# 7| 1: [String] String
# 7| 0: [ReservedWord] '
# 7| 1: [StringContent] \"
# 7| 2: [ReservedWord] '
# 8| 2: [String] String
# 8| 0: [ReservedWord] '
# 8| 1: [StringContent] \\
# 8| 2: [ReservedWord] '
# 9| 3: [String] String
# 9| 0: [ReservedWord] '
# 9| 1: [StringContent] \1
# 9| 2: [ReservedWord] '
# 10| 4: [String] String
# 10| 0: [ReservedWord] '
# 10| 1: [StringContent] \\1
# 10| 2: [ReservedWord] '
# 11| 5: [String] String
# 11| 0: [ReservedWord] '
# 11| 1: [StringContent] \141
# 11| 2: [ReservedWord] '
# 12| 6: [String] String
# 12| 0: [ReservedWord] '
# 12| 1: [StringContent] \n
# 12| 2: [ReservedWord] '
# 15| 7: [String] String
# 15| 0: [ReservedWord] "
# 15| 1: [EscapeSequence] \'
# 15| 2: [ReservedWord] "
# 16| 8: [String] String
# 16| 0: [ReservedWord] "
# 16| 1: [EscapeSequence] \"
# 16| 2: [ReservedWord] "
# 17| 9: [String] String
# 17| 0: [ReservedWord] "
# 17| 1: [EscapeSequence] \\
# 17| 2: [ReservedWord] "
# 18| 10: [String] String
# 18| 0: [ReservedWord] "
# 18| 1: [EscapeSequence] \1
# 18| 2: [ReservedWord] "
# 19| 11: [String] String
# 19| 0: [ReservedWord] "
# 19| 1: [EscapeSequence] \\
# 19| 2: [StringContent] 1
# 19| 3: [ReservedWord] "
# 20| 12: [String] String
# 20| 0: [ReservedWord] "
# 20| 1: [EscapeSequence] \141
# 20| 2: [ReservedWord] "
# 21| 13: [String] String
# 21| 0: [ReservedWord] "
# 21| 1: [EscapeSequence] \x6d
# 21| 2: [ReservedWord] "
# 22| 14: [String] String
# 22| 0: [ReservedWord] "
# 22| 1: [EscapeSequence] \x6E
# 22| 2: [ReservedWord] "
# 23| 15: [String] String
# 23| 0: [ReservedWord] "
# 23| 1: [EscapeSequence] \X
# 23| 2: [StringContent] 6d
# 23| 3: [ReservedWord] "
# 24| 16: [String] String
# 24| 0: [ReservedWord] "
# 24| 1: [EscapeSequence] \X
# 24| 2: [StringContent] 6E
# 24| 3: [ReservedWord] "
# 25| 17: [String] String
# 25| 0: [ReservedWord] "
# 25| 1: [EscapeSequence] \u203d
# 25| 2: [ReservedWord] "
# 26| 18: [String] String
# 26| 0: [ReservedWord] "
# 26| 1: [EscapeSequence] \u{62}
# 26| 2: [ReservedWord] "
# 27| 19: [String] String
# 27| 0: [ReservedWord] "
# 27| 1: [EscapeSequence] \u{1f60a}
# 27| 2: [ReservedWord] "
# 28| 20: [String] String
# 28| 0: [ReservedWord] "
# 28| 1: [EscapeSequence] \a
# 28| 2: [ReservedWord] "
# 29| 21: [String] String
# 29| 0: [ReservedWord] "
# 29| 1: [EscapeSequence] \b
# 29| 2: [ReservedWord] "
# 30| 22: [String] String
# 30| 0: [ReservedWord] "
# 30| 1: [EscapeSequence] \t
# 30| 2: [ReservedWord] "
# 31| 23: [String] String
# 31| 0: [ReservedWord] "
# 31| 1: [EscapeSequence] \n
# 31| 2: [ReservedWord] "
# 32| 24: [String] String
# 32| 0: [ReservedWord] "
# 32| 1: [EscapeSequence] \v
# 32| 2: [ReservedWord] "
# 33| 25: [String] String
# 33| 0: [ReservedWord] "
# 33| 1: [EscapeSequence] \f
# 33| 2: [ReservedWord] "
# 34| 26: [String] String
# 34| 0: [ReservedWord] "
# 34| 1: [EscapeSequence] \r
# 34| 2: [ReservedWord] "
# 35| 27: [String] String
# 35| 0: [ReservedWord] "
# 35| 1: [EscapeSequence] \e
# 35| 2: [ReservedWord] "
# 36| 28: [String] String
# 36| 0: [ReservedWord] "
# 36| 1: [EscapeSequence] \s
# 36| 2: [ReservedWord] "
# 37| 29: [String] String
# 37| 0: [ReservedWord] "
# 37| 1: [EscapeSequence] \c
# 37| 2: [StringContent] ?
# 37| 3: [ReservedWord] "
# 38| 30: [String] String
# 38| 0: [ReservedWord] "
# 38| 1: [EscapeSequence] \C
# 38| 2: [StringContent] -?
# 38| 3: [ReservedWord] "
# 43| 31: [Assignment] Assignment
# 43| 0: [Identifier] a
# 43| 1: [ReservedWord] =
# 43| 2: [String] String
# 43| 0: [ReservedWord] "
# 43| 1: [EscapeSequence] \\
# 43| 2: [StringContent] .
# 43| 3: [ReservedWord] "
# 44| 32: [String] String
# 44| 0: [ReservedWord] "
# 44| 1: [Interpolation] Interpolation
# 44| 0: [ReservedWord] #{
# 44| 1: [Identifier] a
# 44| 2: [ReservedWord] }
# 44| 2: [ReservedWord] "
# 48| 33: [Regex] Regex
# 48| 0: [ReservedWord] /
# 48| 1: [EscapeSequence] \n
# 48| 2: [ReservedWord] /
# 49| 34: [Regex] Regex
# 49| 0: [ReservedWord] /
# 49| 1: [EscapeSequence] \p
# 49| 2: [ReservedWord] /
# 50| 35: [Regex] Regex
# 50| 0: [ReservedWord] /
# 50| 1: [EscapeSequence] \u0061
# 50| 2: [ReservedWord] /
# 53| 36: [Assignment] Assignment
# 53| 0: [Identifier] a
# 53| 1: [ReservedWord] =
# 53| 2: [String] String
# 53| 0: [ReservedWord] "
# 53| 1: [EscapeSequence] \\
# 53| 2: [StringContent] .
# 53| 3: [ReservedWord] "
# 54| 37: [Assignment] Assignment
# 54| 0: [Identifier] b
# 54| 1: [ReservedWord] =
# 54| 2: [Regex] Regex
# 54| 0: [ReservedWord] /
# 54| 1: [EscapeSequence] \.
# 54| 2: [ReservedWord] /
# 55| 38: [Regex] Regex
# 55| 0: [ReservedWord] /
# 55| 1: [Interpolation] Interpolation
# 55| 0: [ReservedWord] #{
# 55| 1: [Identifier] a
# 55| 2: [ReservedWord] }
# 55| 2: [Interpolation] Interpolation
# 55| 0: [ReservedWord] #{
# 55| 1: [Identifier] b
# 55| 2: [ReservedWord] }
# 55| 3: [ReservedWord] /
# 58| 39: [StringArray] StringArray
# 58| 0: [ReservedWord] %w[
# 58| 1: [BareString] BareString
# 58| 0: [StringContent] foo
# 58| 1: [EscapeSequence] \n
# 58| 2: [BareString] BareString
# 58| 0: [StringContent] bar
# 58| 3: [ReservedWord] ]
# 61| 40: [DelimitedSymbol] DelimitedSymbol
# 61| 0: [ReservedWord] :'
# 61| 1: [StringContent] \'
# 61| 2: [ReservedWord] '
# 62| 41: [DelimitedSymbol] DelimitedSymbol
# 62| 0: [ReservedWord] :'
# 62| 1: [StringContent] \"
# 62| 2: [ReservedWord] '
# 63| 42: [DelimitedSymbol] DelimitedSymbol
# 63| 0: [ReservedWord] :'
# 63| 1: [StringContent] \\
# 63| 2: [ReservedWord] '
# 64| 43: [DelimitedSymbol] DelimitedSymbol
# 64| 0: [ReservedWord] :'
# 64| 1: [StringContent] \1
# 64| 2: [ReservedWord] '
# 65| 44: [DelimitedSymbol] DelimitedSymbol
# 65| 0: [ReservedWord] :'
# 65| 1: [StringContent] \\1
# 65| 2: [ReservedWord] '
# 66| 45: [DelimitedSymbol] DelimitedSymbol
# 66| 0: [ReservedWord] :'
# 66| 1: [StringContent] \141
# 66| 2: [ReservedWord] '
# 67| 46: [DelimitedSymbol] DelimitedSymbol
# 67| 0: [ReservedWord] :'
# 67| 1: [StringContent] \n
# 67| 2: [ReservedWord] '
# 70| 47: [DelimitedSymbol] DelimitedSymbol
# 70| 0: [ReservedWord] :"
# 70| 1: [EscapeSequence] \'
# 70| 2: [ReservedWord] "
# 71| 48: [DelimitedSymbol] DelimitedSymbol
# 71| 0: [ReservedWord] :"
# 71| 1: [EscapeSequence] \"
# 71| 2: [ReservedWord] "
# 72| 49: [DelimitedSymbol] DelimitedSymbol
# 72| 0: [ReservedWord] :"
# 72| 1: [EscapeSequence] \\
# 72| 2: [ReservedWord] "
# 73| 50: [DelimitedSymbol] DelimitedSymbol
# 73| 0: [ReservedWord] :"
# 73| 1: [EscapeSequence] \1
# 73| 2: [ReservedWord] "
# 74| 51: [DelimitedSymbol] DelimitedSymbol
# 74| 0: [ReservedWord] :"
# 74| 1: [EscapeSequence] \\
# 74| 2: [StringContent] 1
# 74| 3: [ReservedWord] "
# 75| 52: [DelimitedSymbol] DelimitedSymbol
# 75| 0: [ReservedWord] :"
# 75| 1: [EscapeSequence] \141
# 75| 2: [ReservedWord] "
# 76| 53: [DelimitedSymbol] DelimitedSymbol
# 76| 0: [ReservedWord] :"
# 76| 1: [EscapeSequence] \x6d
# 76| 2: [ReservedWord] "
# 77| 54: [DelimitedSymbol] DelimitedSymbol
# 77| 0: [ReservedWord] :"
# 77| 1: [EscapeSequence] \x6E
# 77| 2: [ReservedWord] "
# 78| 55: [DelimitedSymbol] DelimitedSymbol
# 78| 0: [ReservedWord] :"
# 78| 1: [EscapeSequence] \X
# 78| 2: [StringContent] 6d
# 78| 3: [ReservedWord] "
# 79| 56: [DelimitedSymbol] DelimitedSymbol
# 79| 0: [ReservedWord] :"
# 79| 1: [EscapeSequence] \X
# 79| 2: [StringContent] 6E
# 79| 3: [ReservedWord] "
# 80| 57: [DelimitedSymbol] DelimitedSymbol
# 80| 0: [ReservedWord] :"
# 80| 1: [EscapeSequence] \u203d
# 80| 2: [ReservedWord] "
# 81| 58: [DelimitedSymbol] DelimitedSymbol
# 81| 0: [ReservedWord] :"
# 81| 1: [EscapeSequence] \u{62}
# 81| 2: [ReservedWord] "
# 82| 59: [DelimitedSymbol] DelimitedSymbol
# 82| 0: [ReservedWord] :"
# 82| 1: [EscapeSequence] \u{1f60a}
# 82| 2: [ReservedWord] "
# 83| 60: [DelimitedSymbol] DelimitedSymbol
# 83| 0: [ReservedWord] :"
# 83| 1: [EscapeSequence] \a
# 83| 2: [ReservedWord] "
# 84| 61: [DelimitedSymbol] DelimitedSymbol
# 84| 0: [ReservedWord] :"
# 84| 1: [EscapeSequence] \b
# 84| 2: [ReservedWord] "
# 85| 62: [DelimitedSymbol] DelimitedSymbol
# 85| 0: [ReservedWord] :"
# 85| 1: [EscapeSequence] \t
# 85| 2: [ReservedWord] "
# 86| 63: [DelimitedSymbol] DelimitedSymbol
# 86| 0: [ReservedWord] :"
# 86| 1: [EscapeSequence] \n
# 86| 2: [ReservedWord] "
# 87| 64: [DelimitedSymbol] DelimitedSymbol
# 87| 0: [ReservedWord] :"
# 87| 1: [EscapeSequence] \v
# 87| 2: [ReservedWord] "
# 88| 65: [DelimitedSymbol] DelimitedSymbol
# 88| 0: [ReservedWord] :"
# 88| 1: [EscapeSequence] \f
# 88| 2: [ReservedWord] "
# 89| 66: [DelimitedSymbol] DelimitedSymbol
# 89| 0: [ReservedWord] :"
# 89| 1: [EscapeSequence] \r
# 89| 2: [ReservedWord] "
# 90| 67: [DelimitedSymbol] DelimitedSymbol
# 90| 0: [ReservedWord] :"
# 90| 1: [EscapeSequence] \e
# 90| 2: [ReservedWord] "
# 91| 68: [DelimitedSymbol] DelimitedSymbol
# 91| 0: [ReservedWord] :"
# 91| 1: [EscapeSequence] \s
# 91| 2: [ReservedWord] "
# 92| 69: [DelimitedSymbol] DelimitedSymbol
# 92| 0: [ReservedWord] :"
# 92| 1: [EscapeSequence] \c
# 92| 2: [StringContent] ?
# 92| 3: [ReservedWord] "
# 93| 70: [DelimitedSymbol] DelimitedSymbol
# 93| 0: [ReservedWord] :"
# 93| 1: [EscapeSequence] \C
# 93| 2: [StringContent] -?
# 93| 3: [ReservedWord] "
# 1| [Comment] # Most comments indicate the contents of the string after MRI has parsed the
# 2| [Comment] # escape sequences (i.e. what gets printed by `puts`), and that's what we expect
# 3| [Comment] # `getConstantValue().getString()` to return.
# 5| [Comment] # The only escapes in single-quoted strings are backslash and single-quote.
# 6| [Comment] # '
# 7| [Comment] # \"
# 8| [Comment] # \
# 9| [Comment] # \1
# 10| [Comment] # \1
# 11| [Comment] # \141
# 12| [Comment] # \n
# 14| [Comment] # Double-quoted strings
# 15| [Comment] # '
# 16| [Comment] # "
# 17| [Comment] # \
# 18| [Comment] # <U+0001>
# 19| [Comment] # \1
# 20| [Comment] # a
# 21| [Comment] # m
# 22| [Comment] # n
# 23| [Comment] # X6d
# 24| [Comment] # X6E
# 25| [Comment] # ‽
# 26| [Comment] # b
# 27| [Comment] # 😊 <Printed as \ud83d\ude0a by CodeQL>
# 28| [Comment] # <bell U+0007>
# 29| [Comment] # <backspace U+0008>
# 30| [Comment] # <tab U+0009>
# 31| [Comment] # <newline U+000A>
# 32| [Comment] # <vertical tab U+000B>
# 33| [Comment] # <form feed U+000C>
# 34| [Comment] # <carriage return U+000D>
# 35| [Comment] # <escape U+001B>
# 36| [Comment] # <space U+0020>
# 37| [Comment] # <delete U+007F> problem: only \c is parsed as part of the escape sequence
# 38| [Comment] # <delete U+007F> problem: only \C is parsed as part of the escape sequence
# 40| [Comment] # TODO: support/test more control characters: \M-..., \cx, \C-x, etc.
# 42| [Comment] # String interpolation
# 43| [Comment] # \.
# 44| [Comment] # \.
# 46| [Comment] # Regexps - escape sequences are handled by the regex parser, so their constant
# 47| [Comment] # value should be interpreted literally and not unescaped as in double-quoted strings
# 52| [Comment] # Regexp interpolation
# 53| [Comment] # \.
# 55| [Comment] # equivalent to /\.\./
# 57| [Comment] # String arrays
# 58| [Comment] # should be equivalent to ["foo", "\\n", "bar"], but currently misparsed as ["foo \\n", "bar"]
# 60| [Comment] # Single-quoted symbols. Comments indicate the expected, unescaped string contents.
# 61| [Comment] # '
# 62| [Comment] # \"
# 63| [Comment] # \
# 64| [Comment] # \1
# 65| [Comment] # \1
# 66| [Comment] # \141
# 67| [Comment] # \n
# 69| [Comment] # Double-quoted symbols. Comments indicate the expected, unescaped string contents.
# 70| [Comment] # '
# 71| [Comment] # "
# 72| [Comment] # \
# 73| [Comment] # <U+0001>
# 74| [Comment] # \1
# 75| [Comment] # a
# 76| [Comment] # m
# 77| [Comment] # n
# 78| [Comment] # X6d
# 79| [Comment] # X6E
# 80| [Comment] # ‽
# 81| [Comment] # b
# 82| [Comment] # 😊 <Printed as \ud83d\ude0a by CodeQL>
# 83| [Comment] # <bell U+0007>
# 84| [Comment] # <backspace U+0008>
# 85| [Comment] # <tab U+0009>
# 86| [Comment] # <newline U+000A>
# 87| [Comment] # <vertical tab U+000B>
# 88| [Comment] # <form feed U+000C>
# 89| [Comment] # <carriage return U+000D>
# 90| [Comment] # <escape U+001B>
# 91| [Comment] # <space U+0020>
# 92| [Comment] # <delete U+007F> problem: only \c is parsed as part of the escape sequence
# 93| [Comment] # <delete U+007F> problem: only \C is parsed as part of the escape sequence
gems/Gemfile:
# 1| [Program] Program
# 1| 0: [Call] Call
# 1| 0: [Identifier] source
# 1| 1: [ArgumentList] ArgumentList
# 1| 0: [String] String
# 1| 0: [ReservedWord] '
# 1| 1: [StringContent] https://rubygems.org
# 1| 2: [ReservedWord] '
# 3| 1: [Call] Call
# 3| 0: [Identifier] gem
# 3| 1: [ArgumentList] ArgumentList
# 3| 0: [String] String
# 3| 0: [ReservedWord] '
# 3| 1: [StringContent] foo_gem
# 3| 2: [ReservedWord] '
# 3| 1: [ReservedWord] ,
# 3| 2: [String] String
# 3| 0: [ReservedWord] '
# 3| 1: [StringContent] ~> 2.0
# 3| 2: [ReservedWord] '
# 5| 2: [Call] Call
# 5| 0: [Identifier] source
# 5| 1: [ArgumentList] ArgumentList
# 5| 0: [String] String
# 5| 0: [ReservedWord] '
# 5| 1: [StringContent] https://gems.example.com
# 5| 2: [ReservedWord] '
# 5| 2: [DoBlock] DoBlock
# 5| 0: [ReservedWord] do
# 6| 1: [BodyStatement] BodyStatement
# 6| 0: [Call] Call
# 6| 0: [Identifier] gem
# 6| 1: [ArgumentList] ArgumentList
# 6| 0: [String] String
# 6| 0: [ReservedWord] '
# 6| 1: [StringContent] my_gem
# 6| 2: [ReservedWord] '
# 6| 1: [ReservedWord] ,
# 6| 2: [String] String
# 6| 0: [ReservedWord] '
# 6| 1: [StringContent] 1.0
# 6| 2: [ReservedWord] '
# 7| 1: [Call] Call
# 7| 0: [Identifier] gem
# 7| 1: [ArgumentList] ArgumentList
# 7| 0: [String] String
# 7| 0: [ReservedWord] '
# 7| 1: [StringContent] another_gem
# 7| 2: [ReservedWord] '
# 7| 1: [ReservedWord] ,
# 7| 2: [String] String
# 7| 0: [ReservedWord] '
# 7| 1: [StringContent] 3.1.4
# 7| 2: [ReservedWord] '
# 8| 2: [ReservedWord] end
gems/lib/test.rb:
# 1| [Program] Program
# 1| 0: [Class] Class
# 1| 0: [ReservedWord] class
# 1| 1: [Constant] Foo
# 2| 2: [BodyStatement] BodyStatement
# 2| 0: [SingletonMethod] SingletonMethod
# 2| 0: [ReservedWord] def
# 2| 1: [Self] self
# 2| 2: [ReservedWord] .
# 2| 3: [Identifier] greet
# 3| 4: [BodyStatement] BodyStatement
# 3| 0: [Call] Call
# 3| 0: [Identifier] puts
# 3| 1: [ArgumentList] ArgumentList
# 3| 0: [String] String
# 3| 0: [ReservedWord] "
# 3| 1: [StringContent] Hello
# 3| 2: [ReservedWord] "
# 4| 5: [ReservedWord] end
# 5| 3: [ReservedWord] end
gems/test.gemspec:
# 1| [Program] Program
# 1| 0: [Call] Call
# 1| 0: [ScopeResolution] ScopeResolution
# 1| 0: [Constant] Gem
# 1| 1: [ReservedWord] ::
# 1| 2: [Constant] Specification
# 1| 1: [ReservedWord] .
# 1| 2: [Identifier] new
# 1| 3: [DoBlock] DoBlock
# 1| 0: [ReservedWord] do
# 1| 1: [BlockParameters] BlockParameters
# 1| 0: [ReservedWord] |
# 1| 1: [Identifier] s
# 1| 2: [ReservedWord] |
# 2| 2: [BodyStatement] BodyStatement
# 2| 0: [Assignment] Assignment
# 2| 0: [Call] Call
# 2| 0: [Identifier] s
# 2| 1: [ReservedWord] .
# 2| 2: [Identifier] name
# 2| 1: [ReservedWord] =
# 2| 2: [String] String
# 2| 0: [ReservedWord] '
# 2| 1: [StringContent] test
# 2| 2: [ReservedWord] '
# 3| 1: [Assignment] Assignment
# 3| 0: [Call] Call
# 3| 0: [Identifier] s
# 3| 1: [ReservedWord] .
# 3| 2: [Identifier] version
# 3| 1: [ReservedWord] =
# 3| 2: [String] String
# 3| 0: [ReservedWord] '
# 3| 1: [StringContent] 0.0.0
# 3| 2: [ReservedWord] '
# 4| 2: [Assignment] Assignment
# 4| 0: [Call] Call
# 4| 0: [Identifier] s
# 4| 1: [ReservedWord] .
# 4| 2: [Identifier] summary
# 4| 1: [ReservedWord] =
# 4| 2: [String] String
# 4| 0: [ReservedWord] "
# 4| 1: [StringContent] foo!
# 4| 2: [ReservedWord] "
# 5| 3: [Assignment] Assignment
# 5| 0: [Call] Call
# 5| 0: [Identifier] s
# 5| 1: [ReservedWord] .
# 5| 2: [Identifier] description
# 5| 1: [ReservedWord] =
# 5| 2: [String] String
# 5| 0: [ReservedWord] "
# 5| 1: [StringContent] A test
# 5| 2: [ReservedWord] "
# 6| 4: [Assignment] Assignment
# 6| 0: [Call] Call
# 6| 0: [Identifier] s
# 6| 1: [ReservedWord] .
# 6| 2: [Identifier] authors
# 6| 1: [ReservedWord] =
# 6| 2: [Array] Array
# 6| 0: [ReservedWord] [
# 6| 1: [String] String
# 6| 0: [ReservedWord] "
# 6| 1: [StringContent] Mona Lisa
# 6| 2: [ReservedWord] "
# 6| 2: [ReservedWord] ]
# 7| 5: [Assignment] Assignment
# 7| 0: [Call] Call
# 7| 0: [Identifier] s
# 7| 1: [ReservedWord] .
# 7| 2: [Identifier] email
# 7| 1: [ReservedWord] =
# 7| 2: [String] String
# 7| 0: [ReservedWord] '
# 7| 1: [StringContent] mona@example.com
# 7| 2: [ReservedWord] '
# 8| 6: [Assignment] Assignment
# 8| 0: [Call] Call
# 8| 0: [Identifier] s
# 8| 1: [ReservedWord] .
# 8| 2: [Identifier] files
# 8| 1: [ReservedWord] =
# 8| 2: [Array] Array
# 8| 0: [ReservedWord] [
# 8| 1: [String] String
# 8| 0: [ReservedWord] "
# 8| 1: [StringContent] lib/test.rb
# 8| 2: [ReservedWord] "
# 8| 2: [ReservedWord] ]
# 9| 7: [Assignment] Assignment
# 9| 0: [Call] Call
# 9| 0: [Identifier] s
# 9| 1: [ReservedWord] .
# 9| 2: [Identifier] homepage
# 9| 1: [ReservedWord] =
# 9| 2: [String] String
# 9| 0: [ReservedWord] '
# 9| 1: [StringContent] https://github.com/github/codeql-ruby
# 9| 2: [ReservedWord] '
# 10| 3: [ReservedWord] end
literals/literals.rb:
# 1| [Program] Program
# 2| 0: [Nil] nil
# 2| 0: [ReservedWord] nil
# 3| 1: [Constant] NIL
# 4| 2: [False] false
# 5| 3: [Constant] FALSE
# 6| 4: [True] true
# 7| 5: [Constant] TRUE
# 10| 6: [Integer] 1234
# 11| 7: [Integer] 5_678
# 12| 8: [Integer] 0
# 13| 9: [Integer] 0d900
# 14| 10: [Integer] 2147483647
# 15| 11: [Integer] 2147483648
# 18| 12: [Integer] 0x1234
# 19| 13: [Integer] 0xbeef
# 20| 14: [Integer] 0xF0_0D
# 21| 15: [Integer] 0x000000000000000000ff
# 22| 16: [Integer] 0x7FFF_FFFF
# 23| 17: [Integer] 0x80000000
# 24| 18: [Integer] 0xdeadbeef
# 25| 19: [Integer] 0xF00D_face
# 28| 20: [Integer] 0123
# 29| 21: [Integer] 0o234
# 30| 22: [Integer] 0O45_6
# 31| 23: [Integer] 0000000000000000000000000000010
# 32| 24: [Integer] 017777777777
# 33| 25: [Integer] 020000000000
# 36| 26: [Integer] 0b10010100
# 37| 27: [Integer] 0B011_01101
# 38| 28: [Integer] 0b00000000000000000000000000000000000000011
# 39| 29: [Integer] 0b01111111111111111111111111111111
# 40| 30: [Integer] 0b10000000000000000000000000000000
# 43| 31: [Float] 12.34
# 44| 32: [Float] 1234e-2
# 45| 33: [Float] 1.234E1
# 48| 34: [Rational] Rational
# 48| 0: [Integer] 23
# 48| 1: [ReservedWord] r
# 49| 35: [Rational] Rational
# 49| 0: [Float] 9.85
# 49| 1: [ReservedWord] r
# 52| 36: [Complex] Complex
# 52| 0: [Integer] 2
# 52| 1: [ReservedWord] i
# 53| 37: [Complex] Complex
# 53| 0: [Float] 3.14
# 53| 1: [ReservedWord] i
# 56| 38: [Complex] Complex
# 56| 0: [Rational] Rational
# 56| 0: [Float] 1.2
# 56| 1: [ReservedWord] ri
# 59| 39: [String] String
# 59| 0: [ReservedWord] "
# 59| 1: [ReservedWord] "
# 60| 40: [String] String
# 60| 0: [ReservedWord] '
# 60| 1: [ReservedWord] '
# 61| 41: [String] String
# 61| 0: [ReservedWord] "
# 61| 1: [StringContent] hello
# 61| 2: [ReservedWord] "
# 62| 42: [String] String
# 62| 0: [ReservedWord] '
# 62| 1: [StringContent] goodbye
# 62| 2: [ReservedWord] '
# 63| 43: [String] String
# 63| 0: [ReservedWord] "
# 63| 1: [StringContent] string with escaped
# 63| 2: [EscapeSequence] \"
# 63| 3: [StringContent] quote
# 63| 4: [ReservedWord] "
# 64| 44: [String] String
# 64| 0: [ReservedWord] '
# 64| 1: [StringContent] string with " quote
# 64| 2: [ReservedWord] '
# 65| 45: [String] String
# 65| 0: [ReservedWord] %(
# 65| 1: [StringContent] foo bar baz
# 65| 2: [ReservedWord] )
# 66| 46: [String] String
# 66| 0: [ReservedWord] %q<
# 66| 1: [StringContent] foo bar baz
# 66| 2: [ReservedWord] >
# 67| 47: [String] String
# 67| 0: [ReservedWord] %q(
# 67| 1: [StringContent] foo ' bar " baz'
# 67| 2: [ReservedWord] )
# 68| 48: [String] String
# 68| 0: [ReservedWord] %Q(
# 68| 1: [StringContent] FOO ' BAR " BAZ'
# 68| 2: [ReservedWord] )
# 69| 49: [String] String
# 69| 0: [ReservedWord] %q(
# 69| 1: [StringContent] foo\ bar
# 69| 2: [ReservedWord] )
# 70| 50: [String] String
# 70| 0: [ReservedWord] %Q(
# 70| 1: [StringContent] foo
# 70| 2: [EscapeSequence] \
# 70| 3: [StringContent] bar
# 70| 4: [ReservedWord] )
# 71| 51: [String] String
# 71| 0: [ReservedWord] "
# 71| 1: [StringContent] 2 + 2 =
# 71| 2: [Interpolation] Interpolation
# 71| 0: [ReservedWord] #{
# 71| 1: [Binary] Binary
# 71| 0: [Integer] 2
# 71| 1: [ReservedWord] +
# 71| 2: [Integer] 2
# 71| 2: [ReservedWord] }
# 71| 3: [ReservedWord] "
# 72| 52: [String] String
# 72| 0: [ReservedWord] %Q(
# 72| 1: [StringContent] 3 + 4 =
# 72| 2: [Interpolation] Interpolation
# 72| 0: [ReservedWord] #{
# 72| 1: [Binary] Binary
# 72| 0: [Integer] 3
# 72| 1: [ReservedWord] +
# 72| 2: [Integer] 4
# 72| 2: [ReservedWord] }
# 72| 3: [ReservedWord] )
# 73| 53: [String] String
# 73| 0: [ReservedWord] '
# 73| 1: [StringContent] 2 + 2 = #{ 2 + 2 }
# 73| 2: [ReservedWord] '
# 74| 54: [String] String
# 74| 0: [ReservedWord] %q(
# 74| 1: [StringContent] 3 + 4 = #{ 3 + 4 }
# 74| 2: [ReservedWord] )
# 75| 55: [ChainedString] ChainedString
# 75| 0: [String] String
# 75| 0: [ReservedWord] "
# 75| 1: [StringContent] foo
# 75| 2: [ReservedWord] "
# 75| 1: [String] String
# 75| 0: [ReservedWord] '
# 75| 1: [StringContent] bar
# 75| 2: [ReservedWord] '
# 75| 2: [String] String
# 75| 0: [ReservedWord] "
# 75| 1: [StringContent] baz
# 75| 2: [ReservedWord] "
# 76| 56: [ChainedString] ChainedString
# 76| 0: [String] String
# 76| 0: [ReservedWord] %q{
# 76| 1: [StringContent] foo
# 76| 2: [ReservedWord] }
# 76| 1: [String] String
# 76| 0: [ReservedWord] "
# 76| 1: [StringContent] bar
# 76| 2: [ReservedWord] "
# 76| 2: [String] String
# 76| 0: [ReservedWord] '
# 76| 1: [StringContent] baz
# 76| 2: [ReservedWord] '
# 77| 57: [ChainedString] ChainedString
# 77| 0: [String] String
# 77| 0: [ReservedWord] "
# 77| 1: [StringContent] foo
# 77| 2: [ReservedWord] "
# 77| 1: [String] String
# 77| 0: [ReservedWord] "
# 77| 1: [StringContent] bar
# 77| 2: [Interpolation] Interpolation
# 77| 0: [ReservedWord] #{
# 77| 1: [Binary] Binary
# 77| 0: [Integer] 1
# 77| 1: [ReservedWord] *
# 77| 2: [Integer] 1
# 77| 2: [ReservedWord] }
# 77| 3: [ReservedWord] "
# 77| 2: [String] String
# 77| 0: [ReservedWord] '
# 77| 1: [StringContent] baz
# 77| 2: [ReservedWord] '
# 78| 58: [String] String
# 78| 0: [ReservedWord] "
# 78| 1: [StringContent] foo
# 78| 2: [Interpolation] Interpolation
# 78| 0: [ReservedWord] #{
# 78| 1: [String] String
# 78| 0: [ReservedWord] "
# 78| 1: [StringContent] bar
# 78| 2: [Interpolation] Interpolation
# 78| 0: [ReservedWord] #{
# 78| 1: [Binary] Binary
# 78| 0: [Integer] 2
# 78| 1: [ReservedWord] +
# 78| 2: [Integer] 3
# 78| 2: [ReservedWord] }
# 78| 3: [StringContent] baz
# 78| 4: [ReservedWord] "
# 78| 2: [ReservedWord] }
# 78| 3: [StringContent] qux
# 78| 4: [ReservedWord] "
# 79| 59: [String] String
# 79| 0: [ReservedWord] "
# 79| 1: [StringContent] foo
# 79| 2: [Interpolation] Interpolation
# 79| 0: [ReservedWord] #{
# 79| 1: [Call] Call
# 79| 0: [Identifier] blah
# 79| 1: [ArgumentList] ArgumentList
# 79| 0: [ReservedWord] (
# 79| 1: [ReservedWord] )
# 79| 2: [ReservedWord] ;
# 79| 3: [Binary] Binary
# 79| 0: [Integer] 1
# 79| 1: [ReservedWord] +
# 79| 2: [Integer] 9
# 79| 4: [ReservedWord] }
# 79| 3: [ReservedWord] "
# 80| 60: [Assignment] Assignment
# 80| 0: [Identifier] bar
# 80| 1: [ReservedWord] =
# 80| 2: [String] String
# 80| 0: [ReservedWord] "
# 80| 1: [StringContent] bar
# 80| 2: [ReservedWord] "
# 81| 61: [Assignment] Assignment
# 81| 0: [Constant] BAR
# 81| 1: [ReservedWord] =
# 81| 2: [String] String
# 81| 0: [ReservedWord] "
# 81| 1: [StringContent] bar
# 81| 2: [ReservedWord] "
# 82| 62: [String] String
# 82| 0: [ReservedWord] "
# 82| 1: [StringContent] foo
# 82| 2: [Interpolation] Interpolation
# 82| 0: [ReservedWord] #{
# 82| 1: [Identifier] bar
# 82| 2: [ReservedWord] }
# 82| 3: [ReservedWord] "
# 83| 63: [String] String
# 83| 0: [ReservedWord] "
# 83| 1: [StringContent] foo
# 83| 2: [Interpolation] Interpolation
# 83| 0: [ReservedWord] #{
# 83| 1: [Constant] BAR
# 83| 2: [ReservedWord] }
# 83| 3: [ReservedWord] "
# 86| 64: [Character] ?x
# 87| 65: [Character] ?\n
# 88| 66: [Character] ?\s
# 89| 67: [Character] ?\\
# 90| 68: [Character] ?\u{58}
# 91| 69: [Character] ?\C-a
# 92| 70: [Character] ?\M-a
# 93| 71: [Character] ?\M-\C-a
# 94| 72: [Character] ?\C-\M-a
# 97| 73: [DelimitedSymbol] DelimitedSymbol
# 97| 0: [ReservedWord] :"
# 97| 1: [ReservedWord] "
# 98| 74: [SimpleSymbol] :hello
# 99| 75: [DelimitedSymbol] DelimitedSymbol
# 99| 0: [ReservedWord] :"
# 99| 1: [StringContent] foo bar
# 99| 2: [ReservedWord] "
# 100| 76: [DelimitedSymbol] DelimitedSymbol
# 100| 0: [ReservedWord] :'
# 100| 1: [StringContent] bar baz
# 100| 2: [ReservedWord] '
# 101| 77: [Hash] Hash
# 101| 0: [ReservedWord] {
# 101| 1: [Pair] Pair
# 101| 0: [HashKeySymbol] foo
# 101| 1: [ReservedWord] :
# 101| 2: [String] String
# 101| 0: [ReservedWord] "
# 101| 1: [StringContent] bar
# 101| 2: [ReservedWord] "
# 101| 2: [ReservedWord] }
# 102| 78: [DelimitedSymbol] DelimitedSymbol
# 102| 0: [ReservedWord] %s(
# 102| 1: [StringContent] wibble
# 102| 2: [ReservedWord] )
# 103| 79: [DelimitedSymbol] DelimitedSymbol
# 103| 0: [ReservedWord] %s[
# 103| 1: [StringContent] wibble wobble
# 103| 2: [ReservedWord] ]
# 104| 80: [DelimitedSymbol] DelimitedSymbol
# 104| 0: [ReservedWord] :"
# 104| 1: [StringContent] foo_
# 104| 2: [Interpolation] Interpolation
# 104| 0: [ReservedWord] #{
# 104| 1: [Binary] Binary
# 104| 0: [Integer] 2
# 104| 1: [ReservedWord] +
# 104| 2: [Integer] 2
# 104| 2: [ReservedWord] }
# 104| 3: [StringContent] _
# 104| 4: [Interpolation] Interpolation
# 104| 0: [ReservedWord] #{
# 104| 1: [Identifier] bar
# 104| 2: [ReservedWord] }
# 104| 5: [StringContent] _
# 104| 6: [Interpolation] Interpolation
# 104| 0: [ReservedWord] #{
# 104| 1: [Constant] BAR
# 104| 2: [ReservedWord] }
# 104| 7: [ReservedWord] "
# 105| 81: [DelimitedSymbol] DelimitedSymbol
# 105| 0: [ReservedWord] :'
# 105| 1: [StringContent] foo_#{ 2 + 2}_#{bar}_#{BAR}
# 105| 2: [ReservedWord] '
# 106| 82: [DelimitedSymbol] DelimitedSymbol
# 106| 0: [ReservedWord] %s(
# 106| 1: [StringContent] foo_#{ 3 - 2 }
# 106| 2: [ReservedWord] )
# 109| 83: [Array] Array
# 109| 0: [ReservedWord] [
# 109| 1: [ReservedWord] ]
# 110| 84: [Array] Array
# 110| 0: [ReservedWord] [
# 110| 1: [Integer] 1
# 110| 2: [ReservedWord] ,
# 110| 3: [Integer] 2
# 110| 4: [ReservedWord] ,
# 110| 5: [Integer] 3
# 110| 6: [ReservedWord] ]
# 111| 85: [Array] Array
# 111| 0: [ReservedWord] [
# 111| 1: [Integer] 4
# 111| 2: [ReservedWord] ,
# 111| 3: [Integer] 5
# 111| 4: [ReservedWord] ,
# 111| 5: [Binary] Binary
# 111| 0: [Integer] 12
# 111| 1: [ReservedWord] /
# 111| 2: [Integer] 2
# 111| 6: [ReservedWord] ]
# 112| 86: [Array] Array
# 112| 0: [ReservedWord] [
# 112| 1: [Integer] 7
# 112| 2: [ReservedWord] ,
# 112| 3: [Array] Array
# 112| 0: [ReservedWord] [
# 112| 1: [Integer] 8
# 112| 2: [ReservedWord] ,
# 112| 3: [Integer] 9
# 112| 4: [ReservedWord] ]
# 112| 4: [ReservedWord] ]
# 115| 87: [StringArray] StringArray
# 115| 0: [ReservedWord] %w(
# 115| 1: [ReservedWord] )
# 116| 88: [StringArray] StringArray
# 116| 0: [ReservedWord] %w(
# 116| 1: [BareString] BareString
# 116| 0: [StringContent] foo
# 116| 2: [BareString] BareString
# 116| 0: [StringContent] bar
# 116| 3: [BareString] BareString
# 116| 0: [StringContent] baz
# 116| 4: [ReservedWord] )
# 117| 89: [StringArray] StringArray
# 117| 0: [ReservedWord] %w!
# 117| 1: [BareString] BareString
# 117| 0: [StringContent] foo
# 117| 2: [BareString] BareString
# 117| 0: [StringContent] bar
# 117| 3: [BareString] BareString
# 117| 0: [StringContent] baz
# 117| 4: [ReservedWord] !
# 118| 90: [StringArray] StringArray
# 118| 0: [ReservedWord] %W[
# 118| 1: [BareString] BareString
# 118| 0: [StringContent] foo
# 118| 2: [BareString] BareString
# 118| 0: [StringContent] bar
# 118| 1: [Interpolation] Interpolation
# 118| 0: [ReservedWord] #{
# 118| 1: [Binary] Binary
# 118| 0: [Integer] 1
# 118| 1: [ReservedWord] +
# 118| 2: [Integer] 1
# 118| 2: [ReservedWord] }
# 118| 3: [BareString] BareString
# 118| 0: [Interpolation] Interpolation
# 118| 0: [ReservedWord] #{
# 118| 1: [Identifier] bar
# 118| 2: [ReservedWord] }
# 118| 4: [BareString] BareString
# 118| 0: [Interpolation] Interpolation
# 118| 0: [ReservedWord] #{
# 118| 1: [Constant] BAR
# 118| 2: [ReservedWord] }
# 118| 5: [BareString] BareString
# 118| 0: [StringContent] baz
# 118| 6: [ReservedWord] ]
# 119| 91: [StringArray] StringArray
# 119| 0: [ReservedWord] %w[
# 119| 1: [BareString] BareString
# 119| 0: [StringContent] foo
# 119| 2: [BareString] BareString
# 119| 0: [StringContent] bar#{1+1}
# 119| 3: [BareString] BareString
# 119| 0: [StringContent] #{bar}
# 119| 4: [BareString] BareString
# 119| 0: [StringContent] #{BAR}
# 119| 5: [BareString] BareString
# 119| 0: [StringContent] baz
# 119| 6: [ReservedWord] ]
# 122| 92: [SymbolArray] SymbolArray
# 122| 0: [ReservedWord] %i(
# 122| 1: [ReservedWord] )
# 123| 93: [SymbolArray] SymbolArray
# 123| 0: [ReservedWord] %i(
# 123| 1: [BareSymbol] BareSymbol
# 123| 0: [StringContent] foo
# 123| 2: [BareSymbol] BareSymbol
# 123| 0: [StringContent] bar
# 123| 3: [BareSymbol] BareSymbol
# 123| 0: [StringContent] baz
# 123| 4: [ReservedWord] )
# 124| 94: [SymbolArray] SymbolArray
# 124| 0: [ReservedWord] %i@
# 124| 1: [BareSymbol] BareSymbol
# 124| 0: [StringContent] foo
# 124| 2: [BareSymbol] BareSymbol
# 124| 0: [StringContent] bar
# 124| 3: [BareSymbol] BareSymbol
# 124| 0: [StringContent] baz
# 124| 4: [ReservedWord] @
# 125| 95: [SymbolArray] SymbolArray
# 125| 0: [ReservedWord] %I(
# 125| 1: [BareSymbol] BareSymbol
# 125| 0: [StringContent] foo
# 125| 2: [BareSymbol] BareSymbol
# 125| 0: [StringContent] bar
# 125| 1: [Interpolation] Interpolation
# 125| 0: [ReservedWord] #{
# 125| 1: [Binary] Binary
# 125| 0: [Integer] 2
# 125| 1: [ReservedWord] +
# 125| 2: [Integer] 4
# 125| 2: [ReservedWord] }
# 125| 3: [BareSymbol] BareSymbol
# 125| 0: [Interpolation] Interpolation
# 125| 0: [ReservedWord] #{
# 125| 1: [Identifier] bar
# 125| 2: [ReservedWord] }
# 125| 4: [BareSymbol] BareSymbol
# 125| 0: [Interpolation] Interpolation
# 125| 0: [ReservedWord] #{
# 125| 1: [Constant] BAR
# 125| 2: [ReservedWord] }
# 125| 5: [BareSymbol] BareSymbol
# 125| 0: [StringContent] baz
# 125| 6: [ReservedWord] )
# 126| 96: [SymbolArray] SymbolArray
# 126| 0: [ReservedWord] %i(
# 126| 1: [BareSymbol] BareSymbol
# 126| 0: [StringContent] foo
# 126| 2: [BareSymbol] BareSymbol
# 126| 0: [StringContent] bar#{
# 126| 3: [BareSymbol] BareSymbol
# 126| 0: [StringContent] 2
# 126| 4: [BareSymbol] BareSymbol
# 126| 0: [StringContent] +
# 126| 5: [BareSymbol] BareSymbol
# 126| 0: [StringContent] 4
# 126| 6: [BareSymbol] BareSymbol
# 126| 0: [StringContent] }
# 126| 7: [BareSymbol] BareSymbol
# 126| 0: [StringContent] #{bar}
# 126| 8: [BareSymbol] BareSymbol
# 126| 0: [StringContent] #{BAR}
# 126| 9: [BareSymbol] BareSymbol
# 126| 0: [StringContent] baz
# 126| 10: [ReservedWord] )
# 129| 97: [Hash] Hash
# 129| 0: [ReservedWord] {
# 129| 1: [ReservedWord] }
# 130| 98: [Hash] Hash
# 130| 0: [ReservedWord] {
# 130| 1: [Pair] Pair
# 130| 0: [HashKeySymbol] foo
# 130| 1: [ReservedWord] :
# 130| 2: [Integer] 1
# 130| 2: [ReservedWord] ,
# 130| 3: [Pair] Pair
# 130| 0: [SimpleSymbol] :bar
# 130| 1: [ReservedWord] =>
# 130| 2: [Integer] 2
# 130| 4: [ReservedWord] ,
# 130| 5: [Pair] Pair
# 130| 0: [String] String
# 130| 0: [ReservedWord] '
# 130| 1: [StringContent] baz
# 130| 2: [ReservedWord] '
# 130| 1: [ReservedWord] =>
# 130| 2: [Integer] 3
# 130| 6: [ReservedWord] }
# 131| 99: [Hash] Hash
# 131| 0: [ReservedWord] {
# 131| 1: [Pair] Pair
# 131| 0: [HashKeySymbol] foo
# 131| 1: [ReservedWord] :
# 131| 2: [Integer] 7
# 131| 2: [ReservedWord] ,
# 131| 3: [HashSplatArgument] HashSplatArgument
# 131| 0: [ReservedWord] **
# 131| 1: [Identifier] baz
# 131| 4: [ReservedWord] }
# 134| 100: [ParenthesizedStatements] ParenthesizedStatements
# 134| 0: [ReservedWord] (
# 134| 1: [Range] Range
# 134| 0: [Integer] 1
# 134| 1: [ReservedWord] ..
# 134| 2: [Integer] 10
# 134| 2: [ReservedWord] )
# 135| 101: [ParenthesizedStatements] ParenthesizedStatements
# 135| 0: [ReservedWord] (
# 135| 1: [Range] Range
# 135| 0: [Integer] 1
# 135| 1: [ReservedWord] ...
# 135| 2: [Integer] 10
# 135| 2: [ReservedWord] )
# 136| 102: [ParenthesizedStatements] ParenthesizedStatements
# 136| 0: [ReservedWord] (
# 136| 1: [Range] Range
# 136| 0: [Integer] 1
# 136| 1: [ReservedWord] ..
# 136| 2: [Integer] 0
# 136| 2: [ReservedWord] )
# 137| 103: [ParenthesizedStatements] ParenthesizedStatements
# 137| 0: [ReservedWord] (
# 137| 1: [Range] Range
# 137| 0: [Identifier] start
# 137| 1: [ReservedWord] ..
# 137| 2: [Binary] Binary
# 137| 0: [Integer] 2
# 137| 1: [ReservedWord] +
# 137| 2: [Integer] 3
# 137| 2: [ReservedWord] )
# 138| 104: [ParenthesizedStatements] ParenthesizedStatements
# 138| 0: [ReservedWord] (
# 138| 1: [Range] Range
# 138| 0: [Integer] 1
# 138| 1: [ReservedWord] ..
# 138| 2: [ReservedWord] )
# 139| 105: [ParenthesizedStatements] ParenthesizedStatements
# 139| 0: [ReservedWord] (
# 139| 1: [Range] Range
# 139| 0: [ReservedWord] ..
# 139| 1: [Integer] 1
# 139| 2: [ReservedWord] )
# 140| 106: [ParenthesizedStatements] ParenthesizedStatements
# 140| 0: [ReservedWord] (
# 140| 1: [Range] Range
# 140| 0: [Integer] 0
# 140| 1: [ReservedWord] ..
# 140| 2: [Unary] Unary
# 140| 0: [ReservedWord] -
# 140| 1: [Integer] 1
# 140| 2: [ReservedWord] )
# 143| 107: [Subshell] Subshell
# 143| 0: [ReservedWord] `
# 143| 1: [StringContent] ls -l
# 143| 2: [ReservedWord] `
# 144| 108: [Subshell] Subshell
# 144| 0: [ReservedWord] %x(
# 144| 1: [StringContent] ls -l
# 144| 2: [ReservedWord] )
# 145| 109: [Subshell] Subshell
# 145| 0: [ReservedWord] `
# 145| 1: [StringContent] du -d
# 145| 2: [Interpolation] Interpolation
# 145| 0: [ReservedWord] #{
# 145| 1: [Binary] Binary
# 145| 0: [Integer] 1
# 145| 1: [ReservedWord] +
# 145| 2: [Integer] 1
# 145| 2: [ReservedWord] }
# 145| 3: [StringContent]
# 145| 4: [Interpolation] Interpolation
# 145| 0: [ReservedWord] #{
# 145| 1: [Identifier] bar
# 145| 2: [ReservedWord] }
# 145| 5: [StringContent]
# 145| 6: [Interpolation] Interpolation
# 145| 0: [ReservedWord] #{
# 145| 1: [Constant] BAR
# 145| 2: [ReservedWord] }
# 145| 7: [ReservedWord] `
# 146| 110: [Subshell] Subshell
# 146| 0: [ReservedWord] %x@
# 146| 1: [StringContent] du -d
# 146| 2: [Interpolation] Interpolation
# 146| 0: [ReservedWord] #{
# 146| 1: [Binary] Binary
# 146| 0: [Integer] 5
# 146| 1: [ReservedWord] -
# 146| 2: [Integer] 4
# 146| 2: [ReservedWord] }
# 146| 3: [ReservedWord] @
# 149| 111: [Regex] Regex
# 149| 0: [ReservedWord] /
# 149| 1: [ReservedWord] /
# 150| 112: [Regex] Regex
# 150| 0: [ReservedWord] /
# 150| 1: [StringContent] foo
# 150| 2: [ReservedWord] /
# 151| 113: [Regex] Regex
# 151| 0: [ReservedWord] /
# 151| 1: [StringContent] foo
# 151| 2: [ReservedWord] /i
# 152| 114: [Regex] Regex
# 152| 0: [ReservedWord] /
# 152| 1: [StringContent] foo+
# 152| 2: [EscapeSequence] \s
# 152| 3: [StringContent] bar
# 152| 4: [EscapeSequence] \S
# 152| 5: [ReservedWord] /
# 153| 115: [Regex] Regex
# 153| 0: [ReservedWord] /
# 153| 1: [StringContent] foo
# 153| 2: [Interpolation] Interpolation
# 153| 0: [ReservedWord] #{
# 153| 1: [Binary] Binary
# 153| 0: [Integer] 1
# 153| 1: [ReservedWord] +
# 153| 2: [Integer] 1
# 153| 2: [ReservedWord] }
# 153| 3: [StringContent] bar
# 153| 4: [Interpolation] Interpolation
# 153| 0: [ReservedWord] #{
# 153| 1: [Identifier] bar
# 153| 2: [ReservedWord] }
# 153| 5: [Interpolation] Interpolation
# 153| 0: [ReservedWord] #{
# 153| 1: [Constant] BAR
# 153| 2: [ReservedWord] }
# 153| 6: [ReservedWord] /
# 154| 116: [Regex] Regex
# 154| 0: [ReservedWord] /
# 154| 1: [StringContent] foo
# 154| 2: [ReservedWord] /oxm
# 155| 117: [Regex] Regex
# 155| 0: [ReservedWord] %r[
# 155| 1: [ReservedWord] ]
# 156| 118: [Regex] Regex
# 156| 0: [ReservedWord] %r(
# 156| 1: [StringContent] foo
# 156| 2: [ReservedWord] )
# 157| 119: [Regex] Regex
# 157| 0: [ReservedWord] %r:
# 157| 1: [StringContent] foo
# 157| 2: [ReservedWord] :i
# 158| 120: [Regex] Regex
# 158| 0: [ReservedWord] %r{
# 158| 1: [StringContent] foo+
# 158| 2: [EscapeSequence] \s
# 158| 3: [StringContent] bar
# 158| 4: [EscapeSequence] \S
# 158| 5: [ReservedWord] }
# 159| 121: [Regex] Regex
# 159| 0: [ReservedWord] %r{
# 159| 1: [StringContent] foo
# 159| 2: [Interpolation] Interpolation
# 159| 0: [ReservedWord] #{
# 159| 1: [Binary] Binary
# 159| 0: [Integer] 1
# 159| 1: [ReservedWord] +
# 159| 2: [Integer] 1
# 159| 2: [ReservedWord] }
# 159| 3: [StringContent] bar
# 159| 4: [Interpolation] Interpolation
# 159| 0: [ReservedWord] #{
# 159| 1: [Identifier] bar
# 159| 2: [ReservedWord] }
# 159| 5: [Interpolation] Interpolation
# 159| 0: [ReservedWord] #{
# 159| 1: [Constant] BAR
# 159| 2: [ReservedWord] }
# 159| 6: [ReservedWord] }
# 160| 122: [Regex] Regex
# 160| 0: [ReservedWord] %r:
# 160| 1: [StringContent] foo
# 160| 2: [ReservedWord] :mxo
# 163| 123: [String] String
# 163| 0: [ReservedWord] '
# 163| 1: [StringContent] abcdefghijklmnopqrstuvwxyzabcdef
# 163| 2: [ReservedWord] '
# 164| 124: [String] String
# 164| 0: [ReservedWord] '
# 164| 1: [StringContent] foobarfoobarfoobarfoobarfoobarfoo
# 164| 2: [ReservedWord] '
# 165| 125: [String] String
# 165| 0: [ReservedWord] "
# 165| 1: [StringContent] foobar
# 165| 2: [EscapeSequence] \\
# 165| 3: [StringContent] foobar
# 165| 4: [EscapeSequence] \\
# 165| 5: [StringContent] foobar
# 165| 6: [EscapeSequence] \\
# 165| 7: [StringContent] foobar
# 165| 8: [EscapeSequence] \\
# 165| 9: [StringContent] foobar
# 165| 10: [ReservedWord] "
# 168| 126: [Call] Call
# 168| 0: [Identifier] run_sql
# 168| 1: [ArgumentList] ArgumentList
# 168| 0: [ReservedWord] (
# 168| 1: [HeredocBeginning] <<SQL
# 168| 2: [ReservedWord] ,
# 168| 3: [HeredocBeginning] <<SQL
# 168| 4: [ReservedWord] )
# 174| 127: [Method] Method
# 174| 0: [ReservedWord] def
# 174| 1: [Identifier] m
# 175| 2: [BodyStatement] BodyStatement
# 175| 0: [Assignment] Assignment
# 175| 0: [Identifier] query
# 175| 1: [ReservedWord] =
# 175| 2: [HeredocBeginning] <<-BLA
# 178| 3: [ReservedWord] end
# 180| 128: [Assignment] Assignment
# 180| 0: [Identifier] query
# 180| 1: [ReservedWord] =
# 180| 2: [HeredocBeginning] <<~SQUIGGLY
# 184| 129: [Assignment] Assignment
# 184| 0: [Identifier] query
# 184| 1: [ReservedWord] =
# 184| 2: [HeredocBeginning] <<"DOC"
# 189| 130: [Assignment] Assignment
# 189| 0: [Identifier] query
# 189| 1: [ReservedWord] =
# 189| 2: [HeredocBeginning] <<'DOC'
# 193| 131: [Assignment] Assignment
# 193| 0: [Identifier] output
# 193| 1: [ReservedWord] =
# 193| 2: [HeredocBeginning] <<`SCRIPT`
# 197| 132: [Assignment] Assignment
# 197| 0: [Identifier] x
# 197| 1: [ReservedWord] =
# 197| 2: [Integer] 42
# 198| 133: [Hash] Hash
# 198| 0: [ReservedWord] {
# 198| 1: [Pair] Pair
# 198| 0: [HashKeySymbol] x
# 198| 1: [ReservedWord] :
# 198| 2: [ReservedWord] ,
# 198| 3: [Pair] Pair
# 198| 0: [HashKeySymbol] y
# 198| 1: [ReservedWord] :
# 198| 2: [Integer] 5
# 198| 4: [ReservedWord] }
# 199| 134: [Hash] Hash
# 199| 0: [ReservedWord] {
# 199| 1: [Pair] Pair
# 199| 0: [HashKeySymbol] y
# 199| 1: [ReservedWord] :
# 199| 2: [ReservedWord] ,
# 199| 3: [Pair] Pair
# 199| 0: [HashKeySymbol] Z
# 199| 1: [ReservedWord] :
# 199| 4: [ReservedWord] }
# 201| 135: [String] String
# 201| 0: [ReservedWord] "
# 201| 1: [StringContent] @foo:
# 201| 2: [Interpolation] Interpolation
# 201| 0: [InstanceVariable] @foo
# 201| 3: [StringContent] @@bar:
# 201| 4: [Interpolation] Interpolation
# 201| 0: [ClassVariable] @@bar
# 201| 5: [StringContent] $_:
# 201| 6: [Interpolation] Interpolation
# 201| 0: [GlobalVariable] $_
# 201| 7: [ReservedWord] "
# 1| [Comment] # boolean values and nil
# 9| [Comment] # decimal integers
# 14| [Comment] # max value representable by QL's int type
# 15| [Comment] # too large to be representable by an int
# 17| [Comment] # hexadecimal integers
# 22| [Comment] # max value representable by QL's int type
# 23| [Comment] # too large to be represented by an int
# 24| [Comment] # too large to be represented by an int
# 25| [Comment] # too large to be represented by an int
# 27| [Comment] # octal integers
# 32| [Comment] # max value representable by QL's int type
# 33| [Comment] # too large to be represented by an int
# 35| [Comment] # binary integers
# 39| [Comment] # max value representable by QL's int type
# 40| [Comment] # too large to be represented by an int
# 42| [Comment] # floating-point numbers
# 47| [Comment] # rational numbers
# 51| [Comment] # imaginary/complex numbers
# 55| [Comment] # imaginary & rational
# 58| [Comment] # strings
# 69| [Comment] # "foo\\ bar"
# 70| [Comment] # "foo bar"
# 71| [Comment] # interpolation
# 72| [Comment] # interpolation
# 73| [Comment] # no interpolation
# 74| [Comment] # no interpolation
# 75| [Comment] # concatenated
# 76| [Comment] # concatenated
# 77| [Comment] # concatenated, interpolation
# 78| [Comment] # interpolation containing string containing interpolation
# 79| [Comment] # multiple statements in interpolation
# 82| [Comment] # local variables in interpolation
# 83| [Comment] # constants in interpolation
# 85| [Comment] # characters
# 96| [Comment] # symbols
# 104| [Comment] # interpolation
# 105| [Comment] # no interpolation
# 106| [Comment] # no interpolation
# 108| [Comment] # arrays
# 114| [Comment] # arrays of strings
# 118| [Comment] # interpolation
# 119| [Comment] # no interpolation
# 121| [Comment] # arrays of symbols
# 125| [Comment] # interpolation
# 126| [Comment] # no interpolation
# 128| [Comment] # hashes
# 131| [Comment] # hash-splat argument
# 133| [Comment] # ranges
# 138| [Comment] # 1 to infinity
# 139| [Comment] # -infinity to 1
# 142| [Comment] # subshell
# 145| [Comment] # interpolation
# 146| [Comment] # interpolation
# 148| [Comment] # regular expressions
# 153| [Comment] # interpolation
# 159| [Comment] # interpolation
# 162| [Comment] # long strings
# 163| [Comment] # 32 chars, should not be truncated
# 164| [Comment] # 33 chars, should be truncated
# 165| [Comment] # several short components, but long enough overall to be truncated
# 167| [Comment] # here documents
# 168| [HeredocBody] HeredocBody
# 168| 0: [HeredocContent]
# 168| select * from table
# 168|
# 170| 1: [HeredocEnd] SQL
# 170| [HeredocBody] HeredocBody
# 170| 0: [HeredocContent]
# 170| where name =
# 171| 1: [Interpolation] Interpolation
# 171| 0: [ReservedWord] #{
# 171| 1: [Identifier] name
# 171| 2: [ReservedWord] }
# 171| 2: [HeredocContent]
# 171|
# 172| 3: [HeredocEnd] SQL
# 175| [HeredocBody] HeredocBody
# 175| 0: [HeredocContent]
# 175| some text
# 176| 1: [EscapeSequence] \n
# 176| 2: [HeredocContent] and some more
# 176|
# 177| 3: [HeredocEnd] BLA
# 180| [HeredocBody] HeredocBody
# 180| 0: [HeredocContent]
# 180| indented stuff
# 180|
# 182| 1: [HeredocEnd] SQUIGGLY
# 184| [HeredocBody] HeredocBody
# 184| 0: [HeredocContent]
# 184| text with
# 185| 1: [Interpolation] Interpolation
# 185| 0: [ReservedWord] #{
# 185| 1: [Identifier] interpolation
# 185| 2: [ReservedWord] }
# 185| 2: [HeredocContent] !
# 185|
# 186| 3: [HeredocEnd] DOC
# 188| [Comment] # TODO: the parser currently does not handle single quoted heredocs correctly
# 189| [HeredocBody] HeredocBody
# 189| 0: [HeredocContent]
# 189| text without #{ interpolation } !
# 189|
# 191| 1: [HeredocEnd] DOC
# 193| [HeredocBody] HeredocBody
# 193| 0: [HeredocContent]
# 193| cat file.txt
# 193|
# 195| 1: [HeredocEnd] SCRIPT
misc/iso-8859-15.rb:
# 1| [Program] Program
# 4| 0: [Call] Call
# 4| 0: [Identifier] print
# 4| 1: [ArgumentList] ArgumentList
# 4| 0: [String] String
# 4| 0: [ReservedWord] "
# 4| 1: [StringContent] EUR = €
# 4| 2: [ReservedWord] "
# 1| [Comment] #! /usr/bin/ruby
# 2| [Comment] # coding: iso-8859-15
misc/misc.erb:
# 2| [Program] Program
# 2| 0: [Call] Call
# 2| 0: [Identifier] require_asset
# 2| 1: [ArgumentList] ArgumentList
# 2| 0: [ReservedWord] (
# 2| 1: [String] String
# 2| 0: [ReservedWord] "
# 2| 1: [StringContent] main_include_admin.js
# 2| 2: [ReservedWord] "
# 2| 2: [ReservedWord] )
misc/misc.rb:
# 1| [Program] Program
# 1| 0: [Assignment] Assignment
# 1| 0: [Identifier] bar
# 1| 1: [ReservedWord] =
# 1| 2: [String] String
# 1| 0: [ReservedWord] "
# 1| 1: [StringContent] bar
# 1| 2: [ReservedWord] "
# 3| 1: [Undef] Undef
# 3| 0: [ReservedWord] undef
# 3| 1: [Identifier] foo
# 3| 2: [ReservedWord] ,
# 3| 3: [SimpleSymbol] :foo
# 3| 4: [ReservedWord] ,
# 3| 5: [Setter] Setter
# 3| 0: [Identifier] foo
# 3| 1: [ReservedWord] =
# 3| 6: [ReservedWord] ,
# 3| 7: [Operator] []
# 3| 0: [ReservedWord] []
# 3| 8: [ReservedWord] ,
# 3| 9: [Operator] []=
# 3| 0: [ReservedWord] []=
# 4| 2: [Undef] Undef
# 4| 0: [ReservedWord] undef
# 4| 1: [DelimitedSymbol] DelimitedSymbol
# 4| 0: [ReservedWord] :"
# 4| 1: [StringContent] foo_
# 4| 2: [Interpolation] Interpolation
# 4| 0: [ReservedWord] #{
# 4| 1: [Identifier] bar
# 4| 2: [ReservedWord] }
# 4| 3: [ReservedWord] "
# 5| 3: [Undef] Undef
# 5| 0: [ReservedWord] undef
# 5| 1: [Identifier] nil
# 5| 2: [ReservedWord] ,
# 5| 3: [Identifier] true
# 5| 4: [ReservedWord] ,
# 5| 5: [Identifier] false
# 5| 6: [ReservedWord] ,
# 5| 7: [Identifier] super
# 5| 8: [ReservedWord] ,
# 5| 9: [Identifier] self
# 7| 4: [Alias] Alias
# 7| 0: [ReservedWord] alias
# 7| 1: [Identifier] new
# 7| 2: [SimpleSymbol] :old
# 8| 5: [Alias] Alias
# 8| 0: [ReservedWord] alias
# 8| 1: [Setter] Setter
# 8| 0: [Identifier] foo
# 8| 1: [ReservedWord] =
# 8| 2: [Operator] []=
# 8| 0: [ReservedWord] []=
# 9| 6: [Alias] Alias
# 9| 0: [ReservedWord] alias
# 9| 1: [Identifier] super
# 9| 2: [Identifier] self
# 10| 7: [Alias] Alias
# 10| 0: [ReservedWord] alias
# 10| 1: [DelimitedSymbol] DelimitedSymbol
# 10| 0: [ReservedWord] :"
# 10| 1: [EscapeSequence] \n
# 10| 2: [Interpolation] Interpolation
# 10| 0: [ReservedWord] #{
# 10| 1: [Identifier] bar
# 10| 2: [ReservedWord] }
# 10| 3: [ReservedWord] "
# 10| 2: [DelimitedSymbol] DelimitedSymbol
# 10| 0: [ReservedWord] :"
# 10| 1: [StringContent] foo
# 10| 2: [ReservedWord] "
modules/classes.rb:
# 2| [Program] Program
# 3| 0: [Class] Class
# 3| 0: [ReservedWord] class
# 3| 1: [Constant] Foo
# 4| 2: [ReservedWord] end
# 7| 1: [Class] Class
# 7| 0: [ReservedWord] class
# 7| 1: [Constant] Bar
# 7| 2: [Superclass] Superclass
# 7| 0: [ReservedWord] <
# 7| 1: [Constant] BaseClass
# 8| 3: [ReservedWord] end
# 11| 2: [Class] Class
# 11| 0: [ReservedWord] class
# 11| 1: [Constant] Baz
# 11| 2: [Superclass] Superclass
# 11| 0: [ReservedWord] <
# 11| 1: [Call] Call
# 11| 0: [Identifier] superclass_for
# 11| 1: [ArgumentList] ArgumentList
# 11| 0: [ReservedWord] (
# 11| 1: [SimpleSymbol] :baz
# 11| 2: [ReservedWord] )
# 12| 3: [ReservedWord] end
# 15| 3: [Module] Module
# 15| 0: [ReservedWord] module
# 15| 1: [Constant] MyModule
# 15| 2: [ReservedWord] ;
# 15| 3: [ReservedWord] end
# 16| 4: [Class] Class
# 16| 0: [ReservedWord] class
# 16| 1: [ScopeResolution] ScopeResolution
# 16| 0: [Constant] MyModule
# 16| 1: [ReservedWord] ::
# 16| 2: [Constant] MyClass
# 17| 2: [ReservedWord] end
# 20| 5: [Class] Class
# 20| 0: [ReservedWord] class
# 20| 1: [Constant] Wibble
# 21| 2: [BodyStatement] BodyStatement
# 21| 0: [Method] Method
# 21| 0: [ReservedWord] def
# 21| 1: [Identifier] method_a
# 22| 2: [BodyStatement] BodyStatement
# 22| 0: [Call] Call
# 22| 0: [Identifier] puts
# 22| 1: [ArgumentList] ArgumentList
# 22| 0: [String] String
# 22| 0: [ReservedWord] '
# 22| 1: [StringContent] a
# 22| 2: [ReservedWord] '
# 23| 3: [ReservedWord] end
# 25| 1: [Method] Method
# 25| 0: [ReservedWord] def
# 25| 1: [Identifier] method_b
# 26| 2: [BodyStatement] BodyStatement
# 26| 0: [Call] Call
# 26| 0: [Identifier] puts
# 26| 1: [ArgumentList] ArgumentList
# 26| 0: [String] String
# 26| 0: [ReservedWord] '
# 26| 1: [StringContent] b
# 26| 2: [ReservedWord] '
# 27| 3: [ReservedWord] end
# 29| 2: [Call] Call
# 29| 0: [Identifier] some_method_call
# 29| 1: [ArgumentList] ArgumentList
# 29| 0: [ReservedWord] (
# 29| 1: [ReservedWord] )
# 30| 3: [Assignment] Assignment
# 30| 0: [GlobalVariable] $global_var
# 30| 1: [ReservedWord] =
# 30| 2: [Integer] 123
# 32| 4: [Class] Class
# 32| 0: [ReservedWord] class
# 32| 1: [Constant] ClassInWibble
# 33| 2: [ReservedWord] end
# 35| 5: [Module] Module
# 35| 0: [ReservedWord] module
# 35| 1: [Constant] ModuleInWibble
# 36| 2: [ReservedWord] end
# 37| 3: [ReservedWord] end
# 40| 6: [Assignment] Assignment
# 40| 0: [Identifier] x
# 40| 1: [ReservedWord] =
# 40| 2: [String] String
# 40| 0: [ReservedWord] '
# 40| 1: [StringContent] hello
# 40| 2: [ReservedWord] '
# 41| 7: [SingletonClass] SingletonClass
# 41| 0: [ReservedWord] class
# 41| 1: [ReservedWord] <<
# 41| 2: [Identifier] x
# 42| 3: [BodyStatement] BodyStatement
# 42| 0: [Method] Method
# 42| 0: [ReservedWord] def
# 42| 1: [Identifier] length
# 43| 2: [BodyStatement] BodyStatement
# 43| 0: [Binary] Binary
# 43| 0: [Integer] 100
# 43| 1: [ReservedWord] *
# 43| 2: [Super] super
# 44| 3: [ReservedWord] end
# 46| 1: [Method] Method
# 46| 0: [ReservedWord] def
# 46| 1: [Identifier] wibble
# 47| 2: [BodyStatement] BodyStatement
# 47| 0: [Call] Call
# 47| 0: [Identifier] puts
# 47| 1: [ArgumentList] ArgumentList
# 47| 0: [String] String
# 47| 0: [ReservedWord] '
# 47| 1: [StringContent] wibble
# 47| 2: [ReservedWord] '
# 48| 3: [ReservedWord] end
# 50| 2: [Identifier] another_method_call
# 51| 3: [Assignment] Assignment
# 51| 0: [GlobalVariable] $global_var2
# 51| 1: [ReservedWord] =
# 51| 2: [Integer] 456
# 52| 4: [ReservedWord] end
# 55| 8: [Class] Class
# 55| 0: [ReservedWord] class
# 55| 1: [ScopeResolution] ScopeResolution
# 55| 0: [ReservedWord] ::
# 55| 1: [Constant] MyClassInGlobalScope
# 56| 2: [ReservedWord] end
# 2| [Comment] # a class with no superclass specified
# 6| [Comment] # a class where the superclass is a constant
# 10| [Comment] # a class where the superclass is a call expression
# 14| [Comment] # a class where the name is a scope resolution
# 19| [Comment] # a class with various expressions
# 39| [Comment] # a singleton class with some methods and some other arbitrary expressions
# 54| [Comment] # a class where the name is a scope resolution using the global scope
modules/modules.rb:
# 1| [Program] Program
# 1| 0: [Module] Module
# 1| 0: [ReservedWord] module
# 1| 1: [Constant] Empty
# 2| 2: [ReservedWord] end
# 4| 1: [Module] Module
# 4| 0: [ReservedWord] module
# 4| 1: [Constant] Foo
# 5| 2: [BodyStatement] BodyStatement
# 5| 0: [Module] Module
# 5| 0: [ReservedWord] module
# 5| 1: [Constant] Bar
# 6| 2: [BodyStatement] BodyStatement
# 6| 0: [Class] Class
# 6| 0: [ReservedWord] class
# 6| 1: [Constant] ClassInFooBar
# 7| 2: [ReservedWord] end
# 9| 1: [Method] Method
# 9| 0: [ReservedWord] def
# 9| 1: [Identifier] method_in_foo_bar
# 10| 2: [ReservedWord] end
# 12| 2: [Call] Call
# 12| 0: [Identifier] puts
# 12| 1: [ArgumentList] ArgumentList
# 12| 0: [String] String
# 12| 0: [ReservedWord] '
# 12| 1: [StringContent] module Foo::Bar
# 12| 2: [ReservedWord] '
# 13| 3: [Assignment] Assignment
# 13| 0: [GlobalVariable] $global_var
# 13| 1: [ReservedWord] =
# 13| 2: [Integer] 0
# 14| 3: [ReservedWord] end
# 16| 1: [Method] Method
# 16| 0: [ReservedWord] def
# 16| 1: [Identifier] method_in_foo
# 17| 2: [ReservedWord] end
# 19| 2: [Class] Class
# 19| 0: [ReservedWord] class
# 19| 1: [Constant] ClassInFoo
# 20| 2: [ReservedWord] end
# 22| 3: [Call] Call
# 22| 0: [Identifier] puts
# 22| 1: [ArgumentList] ArgumentList
# 22| 0: [String] String
# 22| 0: [ReservedWord] '
# 22| 1: [StringContent] module Foo
# 22| 2: [ReservedWord] '
# 23| 4: [Assignment] Assignment
# 23| 0: [GlobalVariable] $global_var
# 23| 1: [ReservedWord] =
# 23| 2: [Integer] 1
# 24| 3: [ReservedWord] end
# 26| 2: [Module] Module
# 26| 0: [ReservedWord] module
# 26| 1: [Constant] Foo
# 27| 2: [BodyStatement] BodyStatement
# 27| 0: [Method] Method
# 27| 0: [ReservedWord] def
# 27| 1: [Identifier] method_in_another_definition_of_foo
# 28| 2: [ReservedWord] end
# 30| 1: [Class] Class
# 30| 0: [ReservedWord] class
# 30| 1: [Constant] ClassInAnotherDefinitionOfFoo
# 31| 2: [ReservedWord] end
# 33| 2: [Call] Call
# 33| 0: [Identifier] puts
# 33| 1: [ArgumentList] ArgumentList
# 33| 0: [String] String
# 33| 0: [ReservedWord] '
# 33| 1: [StringContent] module Foo again
# 33| 2: [ReservedWord] '
# 34| 3: [Assignment] Assignment
# 34| 0: [GlobalVariable] $global_var
# 34| 1: [ReservedWord] =
# 34| 2: [Integer] 2
# 35| 3: [ReservedWord] end
# 37| 3: [Module] Module
# 37| 0: [ReservedWord] module
# 37| 1: [Constant] Bar
# 38| 2: [BodyStatement] BodyStatement
# 38| 0: [Method] Method
# 38| 0: [ReservedWord] def
# 38| 1: [Identifier] method_a
# 39| 2: [ReservedWord] end
# 41| 1: [Method] Method
# 41| 0: [ReservedWord] def
# 41| 1: [Identifier] method_b
# 42| 2: [ReservedWord] end
# 44| 2: [Call] Call
# 44| 0: [Identifier] puts
# 44| 1: [ArgumentList] ArgumentList
# 44| 0: [String] String
# 44| 0: [ReservedWord] '
# 44| 1: [StringContent] module Bar
# 44| 2: [ReservedWord] '
# 45| 3: [Assignment] Assignment
# 45| 0: [GlobalVariable] $global_var
# 45| 1: [ReservedWord] =
# 45| 2: [Integer] 3
# 46| 3: [ReservedWord] end
# 48| 4: [Module] Module
# 48| 0: [ReservedWord] module
# 48| 1: [ScopeResolution] ScopeResolution
# 48| 0: [Constant] Foo
# 48| 1: [ReservedWord] ::
# 48| 2: [Constant] Bar
# 49| 2: [BodyStatement] BodyStatement
# 49| 0: [Class] Class
# 49| 0: [ReservedWord] class
# 49| 1: [Constant] ClassInAnotherDefinitionOfFooBar
# 50| 2: [ReservedWord] end
# 52| 1: [Method] Method
# 52| 0: [ReservedWord] def
# 52| 1: [Identifier] method_in_another_definition_of_foo_bar
# 53| 2: [ReservedWord] end
# 55| 2: [Call] Call
# 55| 0: [Identifier] puts
# 55| 1: [ArgumentList] ArgumentList
# 55| 0: [String] String
# 55| 0: [ReservedWord] '
# 55| 1: [StringContent] module Foo::Bar again
# 55| 2: [ReservedWord] '
# 56| 3: [Assignment] Assignment
# 56| 0: [GlobalVariable] $global_var
# 56| 1: [ReservedWord] =
# 56| 2: [Integer] 4
# 57| 3: [ReservedWord] end
# 60| 5: [Module] Module
# 60| 0: [ReservedWord] module
# 60| 1: [ScopeResolution] ScopeResolution
# 60| 0: [ReservedWord] ::
# 60| 1: [Constant] MyModuleInGlobalScope
# 61| 2: [ReservedWord] end
# 63| 6: [Module] Module
# 63| 0: [ReservedWord] module
# 63| 1: [Constant] Test
# 65| 2: [BodyStatement] BodyStatement
# 65| 0: [Module] Module
# 65| 0: [ReservedWord] module
# 65| 1: [Constant] Foo1
# 66| 2: [BodyStatement] BodyStatement
# 66| 0: [Class] Class
# 66| 0: [ReservedWord] class
# 66| 1: [ScopeResolution] ScopeResolution
# 66| 0: [Constant] Foo1
# 66| 1: [ReservedWord] ::
# 66| 2: [Constant] Bar
# 67| 2: [ReservedWord] end
# 68| 3: [ReservedWord] end
# 70| 1: [Module] Module
# 70| 0: [ReservedWord] module
# 70| 1: [Constant] Foo2
# 71| 2: [BodyStatement] BodyStatement
# 71| 0: [Module] Module
# 71| 0: [ReservedWord] module
# 71| 1: [Constant] Foo2
# 71| 2: [ReservedWord] end
# 72| 1: [Class] Class
# 72| 0: [ReservedWord] class
# 72| 1: [ScopeResolution] ScopeResolution
# 72| 0: [Constant] Foo2
# 72| 1: [ReservedWord] ::
# 72| 2: [Constant] Bar
# 73| 2: [ReservedWord] end
# 74| 3: [ReservedWord] end
# 76| 2: [Module] Module
# 76| 0: [ReservedWord] module
# 76| 1: [Constant] Foo3
# 77| 2: [BodyStatement] BodyStatement
# 77| 0: [Assignment] Assignment
# 77| 0: [Constant] Foo3
# 77| 1: [ReservedWord] =
# 77| 2: [Constant] Object
# 78| 1: [Class] Class
# 78| 0: [ReservedWord] class
# 78| 1: [ScopeResolution] ScopeResolution
# 78| 0: [Constant] Foo3
# 78| 1: [ReservedWord] ::
# 78| 2: [Constant] Bar
# 79| 2: [ReservedWord] end
# 80| 3: [ReservedWord] end
# 81| 3: [ReservedWord] end
# 83| 7: [Module] Module
# 83| 0: [ReservedWord] module
# 83| 1: [Constant] Other
# 84| 2: [BodyStatement] BodyStatement
# 84| 0: [Module] Module
# 84| 0: [ReservedWord] module
# 84| 1: [Constant] Foo1
# 85| 2: [ReservedWord] end
# 86| 3: [ReservedWord] end
# 88| 8: [Module] Module
# 88| 0: [ReservedWord] module
# 88| 1: [Constant] IncludeTest
# 89| 2: [BodyStatement] BodyStatement
# 89| 0: [Call] Call
# 89| 0: [Identifier] include
# 89| 1: [ArgumentList] ArgumentList
# 89| 0: [ScopeResolution] ScopeResolution
# 89| 0: [ReservedWord] ::
# 89| 1: [Constant] Test
# 90| 1: [Call] Call
# 90| 0: [Constant] Object
# 90| 1: [ReservedWord] .
# 90| 2: [Identifier] module_eval
# 90| 3: [Block] Block
# 90| 0: [ReservedWord] {
# 90| 1: [BlockBody] BlockBody
# 90| 0: [Call] Call
# 90| 0: [Identifier] prepend
# 90| 1: [ArgumentList] ArgumentList
# 90| 0: [Constant] Other
# 90| 2: [ReservedWord] }
# 91| 2: [Module] Module
# 91| 0: [ReservedWord] module
# 91| 1: [ScopeResolution] ScopeResolution
# 91| 0: [Constant] Foo1
# 91| 1: [ReservedWord] ::
# 91| 2: [Constant] Y
# 92| 2: [ReservedWord] end
# 93| 3: [ReservedWord] end
# 95| 9: [Module] Module
# 95| 0: [ReservedWord] module
# 95| 1: [Constant] IncludeTest2
# 96| 2: [BodyStatement] BodyStatement
# 96| 0: [Call] Call
# 96| 0: [Identifier] include
# 96| 1: [ArgumentList] ArgumentList
# 96| 0: [Constant] Test
# 97| 1: [Module] Module
# 97| 0: [ReservedWord] module
# 97| 1: [ScopeResolution] ScopeResolution
# 97| 0: [Constant] Foo1
# 97| 1: [ReservedWord] ::
# 97| 2: [Constant] Z
# 98| 2: [ReservedWord] end
# 99| 3: [ReservedWord] end
# 101| 10: [Module] Module
# 101| 0: [ReservedWord] module
# 101| 1: [Constant] PrependTest
# 102| 2: [BodyStatement] BodyStatement
# 102| 0: [Call] Call
# 102| 0: [Identifier] prepend
# 102| 1: [ArgumentList] ArgumentList
# 102| 0: [ScopeResolution] ScopeResolution
# 102| 0: [ReservedWord] ::
# 102| 1: [Constant] Test
# 103| 1: [Module] Module
# 103| 0: [ReservedWord] module
# 103| 1: [ScopeResolution] ScopeResolution
# 103| 0: [Constant] Foo2
# 103| 1: [ReservedWord] ::
# 103| 2: [Constant] Y
# 104| 2: [ReservedWord] end
# 105| 3: [ReservedWord] end
# 107| 11: [Module] Module
# 107| 0: [ReservedWord] module
# 107| 1: [Constant] MM
# 108| 2: [BodyStatement] BodyStatement
# 108| 0: [Module] Module
# 108| 0: [ReservedWord] module
# 108| 1: [ScopeResolution] ScopeResolution
# 108| 0: [Constant] MM
# 108| 1: [ReservedWord] ::
# 108| 2: [Constant] MM
# 109| 2: [ReservedWord] end
# 110| 3: [ReservedWord] end
# 112| 12: [Class] Class
# 112| 0: [ReservedWord] class
# 112| 1: [Constant] YY
# 113| 2: [ReservedWord] end
# 115| 13: [Module] Module
# 115| 0: [ReservedWord] module
# 115| 1: [Constant] XX
# 116| 2: [BodyStatement] BodyStatement
# 116| 0: [Class] Class
# 116| 0: [ReservedWord] class
# 116| 1: [Constant] YY
# 116| 2: [Superclass] Superclass
# 116| 0: [ReservedWord] <
# 116| 1: [Constant] YY
# 117| 3: [ReservedWord] end
# 118| 3: [ReservedWord] end
# 120| 14: [Module] Module
# 120| 0: [ReservedWord] module
# 120| 1: [ScopeResolution] ScopeResolution
# 120| 0: [ScopeResolution] ScopeResolution
# 120| 0: [ScopeResolution] ScopeResolution
# 120| 0: [Constant] Test
# 120| 1: [ReservedWord] ::
# 120| 2: [Constant] Foo1
# 120| 1: [ReservedWord] ::
# 120| 2: [Constant] Bar
# 120| 1: [ReservedWord] ::
# 120| 2: [Constant] Baz
# 121| 2: [ReservedWord] end
# 59| [Comment] # a module where the name is a scope resolution using the global scope
modules/toplevel.rb:
# 1| [Program] Program
# 1| 0: [Call] Call
# 1| 0: [Identifier] puts
# 1| 1: [ArgumentList] ArgumentList
# 1| 0: [String] String
# 1| 0: [ReservedWord] "
# 1| 1: [StringContent] world
# 1| 2: [ReservedWord] "
# 3| 1: [EndBlock] EndBlock
# 3| 0: [ReservedWord] END
# 3| 1: [ReservedWord] {
# 3| 2: [Call] Call
# 3| 0: [Identifier] puts
# 3| 1: [ArgumentList] ArgumentList
# 3| 0: [String] String
# 3| 0: [ReservedWord] "
# 3| 1: [StringContent] !!!
# 3| 2: [ReservedWord] "
# 3| 3: [ReservedWord] }
# 5| 2: [BeginBlock] BeginBlock
# 5| 0: [ReservedWord] BEGIN
# 5| 1: [ReservedWord] {
# 5| 2: [Call] Call
# 5| 0: [Identifier] puts
# 5| 1: [ArgumentList] ArgumentList
# 5| 0: [String] String
# 5| 0: [ReservedWord] "
# 5| 1: [StringContent] hello
# 5| 2: [ReservedWord] "
# 5| 3: [ReservedWord] }
operations/operations.rb:
# 1| [Program] Program
# 3| 0: [Assignment] Assignment
# 3| 0: [Identifier] a
# 3| 1: [ReservedWord] =
# 3| 2: [Integer] 0
# 4| 1: [Assignment] Assignment
# 4| 0: [Identifier] b
# 4| 1: [ReservedWord] =
# 4| 2: [Integer] 0
# 5| 2: [Assignment] Assignment
# 5| 0: [Identifier] bar
# 5| 1: [ReservedWord] =
# 5| 2: [Integer] 0
# 6| 3: [Assignment] Assignment
# 6| 0: [Identifier] base
# 6| 1: [ReservedWord] =
# 6| 2: [Integer] 0
# 7| 4: [Assignment] Assignment
# 7| 0: [Identifier] baz
# 7| 1: [ReservedWord] =
# 7| 2: [Integer] 0
# 8| 5: [Assignment] Assignment
# 8| 0: [Identifier] foo
# 8| 1: [ReservedWord] =
# 8| 2: [Integer] 0
# 9| 6: [Assignment] Assignment
# 9| 0: [Identifier] handle
# 9| 1: [ReservedWord] =
# 9| 2: [Integer] 0
# 10| 7: [Assignment] Assignment
# 10| 0: [Identifier] m
# 10| 1: [ReservedWord] =
# 10| 2: [Integer] 0
# 11| 8: [Assignment] Assignment
# 11| 0: [Identifier] mask
# 11| 1: [ReservedWord] =
# 11| 2: [Integer] 0
# 12| 9: [Assignment] Assignment
# 12| 0: [Identifier] n
# 12| 1: [ReservedWord] =
# 12| 2: [Integer] 0
# 13| 10: [Assignment] Assignment
# 13| 0: [Identifier] name
# 13| 1: [ReservedWord] =
# 13| 2: [Integer] 0
# 14| 11: [Assignment] Assignment
# 14| 0: [Identifier] num
# 14| 1: [ReservedWord] =
# 14| 2: [Integer] 0
# 15| 12: [Assignment] Assignment
# 15| 0: [Identifier] power
# 15| 1: [ReservedWord] =
# 15| 2: [Integer] 0
# 16| 13: [Assignment] Assignment
# 16| 0: [Identifier] qux
# 16| 1: [ReservedWord] =
# 16| 2: [Integer] 0
# 17| 14: [Assignment] Assignment
# 17| 0: [Identifier] w
# 17| 1: [ReservedWord] =
# 17| 2: [Integer] 0
# 18| 15: [Assignment] Assignment
# 18| 0: [Identifier] x
# 18| 1: [ReservedWord] =
# 18| 2: [Integer] 0
# 19| 16: [Assignment] Assignment
# 19| 0: [Identifier] y
# 19| 1: [ReservedWord] =
# 19| 2: [Integer] 0
# 20| 17: [Assignment] Assignment
# 20| 0: [Identifier] z
# 20| 1: [ReservedWord] =
# 20| 2: [Integer] 0
# 23| 18: [Unary] Unary
# 23| 0: [ReservedWord] !
# 23| 1: [Identifier] a
# 24| 19: [Unary] Unary
# 24| 0: [ReservedWord] not
# 24| 1: [Identifier] b
# 25| 20: [Unary] Unary
# 25| 0: [ReservedWord] +
# 25| 1: [Integer] 14
# 26| 21: [Unary] Unary
# 26| 0: [ReservedWord] -
# 26| 1: [Integer] 7
# 27| 22: [Unary] Unary
# 27| 0: [ReservedWord] ~
# 27| 1: [Identifier] x
# 28| 23: [Unary] Unary
# 28| 0: [ReservedWord] defined?
# 28| 1: [Identifier] foo
# 29| 24: [Method] Method
# 29| 0: [ReservedWord] def
# 29| 1: [Identifier] foo
# 29| 2: [ReservedWord] ;
# 29| 3: [BodyStatement] BodyStatement
# 29| 0: [Return] Return
# 29| 0: [ReservedWord] return
# 29| 1: [ArgumentList] ArgumentList
# 29| 0: [Integer] 1
# 29| 1: [ReservedWord] ,
# 29| 2: [SplatArgument] SplatArgument
# 29| 0: [ReservedWord] *
# 29| 1: [Array] Array
# 29| 0: [ReservedWord] [
# 29| 1: [Integer] 2
# 29| 2: [ReservedWord] ]
# 29| 3: [ReservedWord] ,
# 29| 4: [Pair] Pair
# 29| 0: [HashKeySymbol] a
# 29| 1: [ReservedWord] :
# 29| 2: [Integer] 3
# 29| 5: [ReservedWord] ,
# 29| 6: [HashSplatArgument] HashSplatArgument
# 29| 0: [ReservedWord] **
# 29| 1: [Hash] Hash
# 29| 0: [ReservedWord] {
# 29| 1: [Pair] Pair
# 29| 0: [HashKeySymbol] b
# 29| 1: [ReservedWord] :
# 29| 2: [Integer] 4
# 29| 2: [ReservedWord] ,
# 29| 3: [Pair] Pair
# 29| 0: [HashKeySymbol] c
# 29| 1: [ReservedWord] :
# 29| 2: [Integer] 5
# 29| 4: [ReservedWord] }
# 29| 4: [ReservedWord] end
# 32| 25: [Binary] Binary
# 32| 0: [Identifier] w
# 32| 1: [ReservedWord] +
# 32| 2: [Integer] 234
# 33| 26: [Binary] Binary
# 33| 0: [Identifier] x
# 33| 1: [ReservedWord] -
# 33| 2: [Integer] 17
# 34| 27: [Binary] Binary
# 34| 0: [Identifier] y
# 34| 1: [ReservedWord] *
# 34| 2: [Integer] 10
# 35| 28: [Binary] Binary
# 35| 0: [Identifier] z
# 35| 1: [ReservedWord] /
# 35| 2: [Integer] 2
# 36| 29: [Binary] Binary
# 36| 0: [Identifier] num
# 36| 1: [ReservedWord] %
# 36| 2: [Integer] 2
# 37| 30: [Binary] Binary
# 37| 0: [Identifier] base
# 37| 1: [ReservedWord] **
# 37| 2: [Identifier] power
# 40| 31: [Binary] Binary
# 40| 0: [Identifier] foo
# 40| 1: [ReservedWord] &&
# 40| 2: [Identifier] bar
# 41| 32: [Binary] Binary
# 41| 0: [Identifier] baz
# 41| 1: [ReservedWord] and
# 41| 2: [Identifier] qux
# 42| 33: [Binary] Binary
# 42| 0: [Identifier] a
# 42| 1: [ReservedWord] or
# 42| 2: [Identifier] b
# 43| 34: [Binary] Binary
# 43| 0: [Identifier] x
# 43| 1: [ReservedWord] ||
# 43| 2: [Identifier] y
# 46| 35: [Binary] Binary
# 46| 0: [Identifier] x
# 46| 1: [ReservedWord] <<
# 46| 2: [Integer] 3
# 47| 36: [Binary] Binary
# 47| 0: [Identifier] y
# 47| 1: [ReservedWord] >>
# 47| 2: [Integer] 16
# 48| 37: [Binary] Binary
# 48| 0: [Identifier] foo
# 48| 1: [ReservedWord] &
# 48| 2: [Integer] 0xff
# 49| 38: [Binary] Binary
# 49| 0: [Identifier] bar
# 49| 1: [ReservedWord] |
# 49| 2: [Integer] 0x02
# 50| 39: [Binary] Binary
# 50| 0: [Identifier] baz
# 50| 1: [ReservedWord] ^
# 50| 2: [Identifier] qux
# 53| 40: [Binary] Binary
# 53| 0: [Identifier] x
# 53| 1: [ReservedWord] ==
# 53| 2: [Identifier] y
# 54| 41: [Binary] Binary
# 54| 0: [Identifier] a
# 54| 1: [ReservedWord] !=
# 54| 2: [Integer] 123
# 55| 42: [Binary] Binary
# 55| 0: [Identifier] m
# 55| 1: [ReservedWord] ===
# 55| 2: [Identifier] n
# 58| 43: [Binary] Binary
# 58| 0: [Identifier] x
# 58| 1: [ReservedWord] >
# 58| 2: [Integer] 0
# 59| 44: [Binary] Binary
# 59| 0: [Identifier] y
# 59| 1: [ReservedWord] >=
# 59| 2: [Integer] 100
# 60| 45: [Binary] Binary
# 60| 0: [Identifier] a
# 60| 1: [ReservedWord] <
# 60| 2: [Identifier] b
# 61| 46: [Binary] Binary
# 61| 0: [Integer] 7
# 61| 1: [ReservedWord] <=
# 61| 2: [Identifier] foo
# 64| 47: [Binary] Binary
# 64| 0: [Identifier] a
# 64| 1: [ReservedWord] <=>
# 64| 2: [Identifier] b
# 65| 48: [Binary] Binary
# 65| 0: [Identifier] name
# 65| 1: [ReservedWord] =~
# 65| 2: [Regex] Regex
# 65| 0: [ReservedWord] /
# 65| 1: [StringContent] foo.*
# 65| 2: [ReservedWord] /
# 66| 49: [Binary] Binary
# 66| 0: [Identifier] handle
# 66| 1: [ReservedWord] !~
# 66| 2: [Regex] Regex
# 66| 0: [ReservedWord] /
# 66| 1: [StringContent] .*bar
# 66| 2: [ReservedWord] /
# 69| 50: [OperatorAssignment] OperatorAssignment
# 69| 0: [Identifier] x
# 69| 1: [ReservedWord] +=
# 69| 2: [Integer] 128
# 70| 51: [OperatorAssignment] OperatorAssignment
# 70| 0: [Identifier] y
# 70| 1: [ReservedWord] -=
# 70| 2: [Integer] 32
# 71| 52: [OperatorAssignment] OperatorAssignment
# 71| 0: [Identifier] a
# 71| 1: [ReservedWord] *=
# 71| 2: [Integer] 12
# 72| 53: [OperatorAssignment] OperatorAssignment
# 72| 0: [Identifier] b
# 72| 1: [ReservedWord] /=
# 72| 2: [Integer] 4
# 73| 54: [OperatorAssignment] OperatorAssignment
# 73| 0: [Identifier] z
# 73| 1: [ReservedWord] %=
# 73| 2: [Integer] 2
# 74| 55: [OperatorAssignment] OperatorAssignment
# 74| 0: [Identifier] foo
# 74| 1: [ReservedWord] **=
# 74| 2: [Identifier] bar
# 77| 56: [OperatorAssignment] OperatorAssignment
# 77| 0: [Identifier] x
# 77| 1: [ReservedWord] &&=
# 77| 2: [Identifier] y
# 78| 57: [OperatorAssignment] OperatorAssignment
# 78| 0: [Identifier] a
# 78| 1: [ReservedWord] ||=
# 78| 2: [Identifier] b
# 81| 58: [OperatorAssignment] OperatorAssignment
# 81| 0: [Identifier] x
# 81| 1: [ReservedWord] <<=
# 81| 2: [Integer] 2
# 82| 59: [OperatorAssignment] OperatorAssignment
# 82| 0: [Identifier] y
# 82| 1: [ReservedWord] >>=
# 82| 2: [Integer] 3
# 83| 60: [OperatorAssignment] OperatorAssignment
# 83| 0: [Identifier] foo
# 83| 1: [ReservedWord] &=
# 83| 2: [Identifier] mask
# 84| 61: [OperatorAssignment] OperatorAssignment
# 84| 0: [Identifier] bar
# 84| 1: [ReservedWord] |=
# 84| 2: [Integer] 0x01
# 85| 62: [OperatorAssignment] OperatorAssignment
# 85| 0: [Identifier] baz
# 85| 1: [ReservedWord] ^=
# 85| 2: [Identifier] qux
# 87| 63: [Class] Class
# 87| 0: [ReservedWord] class
# 87| 1: [Constant] X
# 88| 2: [BodyStatement] BodyStatement
# 88| 0: [Assignment] Assignment
# 88| 0: [InstanceVariable] @x
# 88| 1: [ReservedWord] =
# 88| 2: [Integer] 1
# 89| 1: [OperatorAssignment] OperatorAssignment
# 89| 0: [InstanceVariable] @x
# 89| 1: [ReservedWord] +=
# 89| 2: [Integer] 2
# 91| 2: [Assignment] Assignment
# 91| 0: [ClassVariable] @@y
# 91| 1: [ReservedWord] =
# 91| 2: [Integer] 3
# 92| 3: [OperatorAssignment] OperatorAssignment
# 92| 0: [ClassVariable] @@y
# 92| 1: [ReservedWord] /=
# 92| 2: [Integer] 4
# 93| 3: [ReservedWord] end
# 95| 64: [Assignment] Assignment
# 95| 0: [GlobalVariable] $global_var
# 95| 1: [ReservedWord] =
# 95| 2: [Integer] 5
# 96| 65: [OperatorAssignment] OperatorAssignment
# 96| 0: [GlobalVariable] $global_var
# 96| 1: [ReservedWord] *=
# 96| 2: [Integer] 6
# 98| 66: [Assignment] Assignment
# 98| 0: [Constant] CONSTANT1
# 98| 1: [ReservedWord] =
# 98| 2: [Integer] 5
# 99| 67: [OperatorAssignment] OperatorAssignment
# 99| 0: [Constant] CONSTANT2
# 99| 1: [ReservedWord] +=
# 99| 2: [Integer] 6
# 100| 68: [OperatorAssignment] OperatorAssignment
# 100| 0: [Constant] CONSTANT3
# 100| 1: [ReservedWord] ||=
# 100| 2: [Integer] 7
# 101| 69: [OperatorAssignment] OperatorAssignment
# 101| 0: [ScopeResolution] ScopeResolution
# 101| 0: [Constant] Foo
# 101| 1: [ReservedWord] ::
# 101| 2: [Constant] MemberConstant
# 101| 1: [ReservedWord] ||=
# 101| 2: [Integer] 8
# 102| 70: [OperatorAssignment] OperatorAssignment
# 102| 0: [ScopeResolution] ScopeResolution
# 102| 0: [Call] Call
# 102| 0: [Call] Call
# 102| 0: [Identifier] foo
# 102| 1: [ArgumentList] ArgumentList
# 102| 0: [ReservedWord] (
# 102| 1: [Integer] 1
# 102| 2: [ReservedWord] )
# 102| 1: [ReservedWord] .
# 102| 2: [Identifier] bar
# 102| 1: [ReservedWord] ::
# 102| 2: [Constant] OtherConstant
# 102| 1: [ReservedWord] ||=
# 102| 2: [Integer] 7
# 103| 71: [OperatorAssignment] OperatorAssignment
# 103| 0: [ScopeResolution] ScopeResolution
# 103| 0: [ReservedWord] ::
# 103| 1: [Constant] CONSTANT4
# 103| 1: [ReservedWord] ||=
# 103| 2: [Integer] 7
# 104| 72: [Assignment] Assignment
# 104| 0: [LeftAssignmentList] LeftAssignmentList
# 104| 0: [Constant] FOO
# 104| 1: [ReservedWord] ,
# 104| 2: [ScopeResolution] ScopeResolution
# 104| 0: [ReservedWord] ::
# 104| 1: [Constant] BAR
# 104| 3: [ReservedWord] ,
# 104| 4: [ScopeResolution] ScopeResolution
# 104| 0: [Identifier] foo
# 104| 1: [ReservedWord] ::
# 104| 2: [Constant] FOO
# 104| 1: [ReservedWord] =
# 104| 2: [Array] Array
# 104| 0: [ReservedWord] [
# 104| 1: [Integer] 1
# 104| 2: [ReservedWord] ,
# 104| 3: [Integer] 2
# 104| 4: [ReservedWord] ,
# 104| 5: [Integer] 3
# 104| 6: [ReservedWord] ]
# 106| 73: [Binary] Binary
# 106| 0: [Identifier] foo
# 106| 1: [ReservedWord] /
# 107| 2: [Integer] 5
# 1| [Comment] # Start with assignments to all the identifiers used below, so that they are
# 2| [Comment] # interpreted as variables.
# 22| [Comment] # Unary operations
# 31| [Comment] # Binary arithmetic operations
# 39| [Comment] # Binary logical operations
# 45| [Comment] # Binary bitwise operations
# 52| [Comment] # Equality operations
# 57| [Comment] # Relational operations
# 63| [Comment] # Misc binary operations
# 68| [Comment] # Arithmetic assign operations
# 76| [Comment] # Logical assign operations
# 80| [Comment] # Bitwise assign operations
params/params.rb:
# 1| [Program] Program
# 4| 0: [Method] Method
# 4| 0: [ReservedWord] def
# 4| 1: [Identifier] identifier_method_params
# 4| 2: [MethodParameters] MethodParameters
# 4| 0: [ReservedWord] (
# 4| 1: [Identifier] foo
# 4| 2: [ReservedWord] ,
# 4| 3: [Identifier] bar
# 4| 4: [ReservedWord] ,
# 4| 5: [Identifier] baz
# 4| 6: [ReservedWord] )
# 5| 3: [ReservedWord] end
# 8| 1: [Assignment] Assignment
# 8| 0: [Identifier] hash
# 8| 1: [ReservedWord] =
# 8| 2: [Hash] Hash
# 8| 0: [ReservedWord] {
# 8| 1: [ReservedWord] }
# 9| 2: [Call] Call
# 9| 0: [Identifier] hash
# 9| 1: [ReservedWord] .
# 9| 2: [Identifier] each
# 9| 3: [DoBlock] DoBlock
# 9| 0: [ReservedWord] do
# 9| 1: [BlockParameters] BlockParameters
# 9| 0: [ReservedWord] |
# 9| 1: [Identifier] key
# 9| 2: [ReservedWord] ,
# 9| 3: [Identifier] value
# 9| 4: [ReservedWord] |
# 10| 2: [BodyStatement] BodyStatement
# 10| 0: [Call] Call
# 10| 0: [Identifier] puts
# 10| 1: [ArgumentList] ArgumentList
# 10| 0: [String] String
# 10| 0: [ReservedWord] "
# 10| 1: [Interpolation] Interpolation
# 10| 0: [ReservedWord] #{
# 10| 1: [Identifier] key
# 10| 2: [ReservedWord] }
# 10| 2: [StringContent] ->
# 10| 3: [Interpolation] Interpolation
# 10| 0: [ReservedWord] #{
# 10| 1: [Identifier] value
# 10| 2: [ReservedWord] }
# 10| 4: [ReservedWord] "
# 11| 3: [ReservedWord] end
# 14| 3: [Assignment] Assignment
# 14| 0: [Identifier] sum
# 14| 1: [ReservedWord] =
# 14| 2: [Lambda] Lambda
# 14| 0: [ReservedWord] ->
# 14| 1: [LambdaParameters] LambdaParameters
# 14| 0: [ReservedWord] (
# 14| 1: [Identifier] foo
# 14| 2: [ReservedWord] ,
# 14| 3: [Identifier] bar
# 14| 4: [ReservedWord] )
# 14| 2: [Block] Block
# 14| 0: [ReservedWord] {
# 14| 1: [BlockBody] BlockBody
# 14| 0: [Binary] Binary
# 14| 0: [Identifier] foo
# 14| 1: [ReservedWord] +
# 14| 2: [Identifier] bar
# 14| 2: [ReservedWord] }
# 17| 4: [Method] Method
# 17| 0: [ReservedWord] def
# 17| 1: [Identifier] destructured_method_param
# 17| 2: [MethodParameters] MethodParameters
# 17| 0: [ReservedWord] (
# 17| 1: [DestructuredParameter] DestructuredParameter
# 17| 0: [ReservedWord] (
# 17| 1: [Identifier] a
# 17| 2: [ReservedWord] ,
# 17| 3: [Identifier] b
# 17| 4: [ReservedWord] ,
# 17| 5: [Identifier] c
# 17| 6: [ReservedWord] )
# 17| 2: [ReservedWord] )
# 18| 3: [ReservedWord] end
# 21| 5: [Assignment] Assignment
# 21| 0: [Identifier] array
# 21| 1: [ReservedWord] =
# 21| 2: [Array] Array
# 21| 0: [ReservedWord] [
# 21| 1: [ReservedWord] ]
# 22| 6: [Call] Call
# 22| 0: [Identifier] array
# 22| 1: [ReservedWord] .
# 22| 2: [Identifier] each
# 22| 3: [Block] Block
# 22| 0: [ReservedWord] {
# 22| 1: [BlockParameters] BlockParameters
# 22| 0: [ReservedWord] |
# 22| 1: [DestructuredParameter] DestructuredParameter
# 22| 0: [ReservedWord] (
# 22| 1: [Identifier] a
# 22| 2: [ReservedWord] ,
# 22| 3: [Identifier] b
# 22| 4: [ReservedWord] )
# 22| 2: [ReservedWord] |
# 22| 2: [BlockBody] BlockBody
# 22| 0: [Call] Call
# 22| 0: [Identifier] puts
# 22| 1: [ArgumentList] ArgumentList
# 22| 0: [Binary] Binary
# 22| 0: [Identifier] a
# 22| 1: [ReservedWord] +
# 22| 2: [Identifier] b
# 22| 3: [ReservedWord] }
# 25| 7: [Assignment] Assignment
# 25| 0: [Identifier] sum_four_values
# 25| 1: [ReservedWord] =
# 25| 2: [Lambda] Lambda
# 25| 0: [ReservedWord] ->
# 25| 1: [LambdaParameters] LambdaParameters
# 25| 0: [ReservedWord] (
# 25| 1: [DestructuredParameter] DestructuredParameter
# 25| 0: [ReservedWord] (
# 25| 1: [Identifier] first
# 25| 2: [ReservedWord] ,
# 25| 3: [Identifier] second
# 25| 4: [ReservedWord] )
# 25| 2: [ReservedWord] ,
# 25| 3: [DestructuredParameter] DestructuredParameter
# 25| 0: [ReservedWord] (
# 25| 1: [Identifier] third
# 25| 2: [ReservedWord] ,
# 25| 3: [Identifier] fourth
# 25| 4: [ReservedWord] )
# 25| 4: [ReservedWord] )
# 25| 2: [Block] Block
# 25| 0: [ReservedWord] {
# 26| 1: [BlockBody] BlockBody
# 26| 0: [Binary] Binary
# 26| 0: [Binary] Binary
# 26| 0: [Binary] Binary
# 26| 0: [Identifier] first
# 26| 1: [ReservedWord] +
# 26| 2: [Identifier] second
# 26| 1: [ReservedWord] +
# 26| 2: [Identifier] third
# 26| 1: [ReservedWord] +
# 26| 2: [Identifier] fourth
# 27| 2: [ReservedWord] }
# 30| 8: [Method] Method
# 30| 0: [ReservedWord] def
# 30| 1: [Identifier] method_with_splat
# 30| 2: [MethodParameters] MethodParameters
# 30| 0: [ReservedWord] (
# 30| 1: [Identifier] wibble
# 30| 2: [ReservedWord] ,
# 30| 3: [SplatParameter] SplatParameter
# 30| 0: [ReservedWord] *
# 30| 1: [Identifier] splat
# 30| 4: [ReservedWord] ,
# 30| 5: [HashSplatParameter] HashSplatParameter
# 30| 0: [ReservedWord] **
# 30| 1: [Identifier] double_splat
# 30| 6: [ReservedWord] )
# 31| 3: [ReservedWord] end
# 34| 9: [Call] Call
# 34| 0: [Identifier] array
# 34| 1: [ReservedWord] .
# 34| 2: [Identifier] each
# 34| 3: [DoBlock] DoBlock
# 34| 0: [ReservedWord] do
# 34| 1: [BlockParameters] BlockParameters
# 34| 0: [ReservedWord] |
# 34| 1: [Identifier] val
# 34| 2: [ReservedWord] ,
# 34| 3: [SplatParameter] SplatParameter
# 34| 0: [ReservedWord] *
# 34| 1: [Identifier] splat
# 34| 4: [ReservedWord] ,
# 34| 5: [HashSplatParameter] HashSplatParameter
# 34| 0: [ReservedWord] **
# 34| 1: [Identifier] double_splat
# 34| 6: [ReservedWord] |
# 35| 2: [ReservedWord] end
# 38| 10: [Assignment] Assignment
# 38| 0: [Identifier] lambda_with_splats
# 38| 1: [ReservedWord] =
# 38| 2: [Lambda] Lambda
# 38| 0: [ReservedWord] ->
# 38| 1: [LambdaParameters] LambdaParameters
# 38| 0: [ReservedWord] (
# 38| 1: [Identifier] x
# 38| 2: [ReservedWord] ,
# 38| 3: [SplatParameter] SplatParameter
# 38| 0: [ReservedWord] *
# 38| 1: [Identifier] blah
# 38| 4: [ReservedWord] ,
# 38| 5: [HashSplatParameter] HashSplatParameter
# 38| 0: [ReservedWord] **
# 38| 1: [Identifier] wibble
# 38| 6: [ReservedWord] )
# 38| 2: [Block] Block
# 38| 0: [ReservedWord] {
# 38| 1: [ReservedWord] }
# 41| 11: [Method] Method
# 41| 0: [ReservedWord] def
# 41| 1: [Identifier] method_with_keyword_params
# 41| 2: [MethodParameters] MethodParameters
# 41| 0: [ReservedWord] (
# 41| 1: [Identifier] x
# 41| 2: [ReservedWord] ,
# 41| 3: [KeywordParameter] KeywordParameter
# 41| 0: [Identifier] foo
# 41| 1: [ReservedWord] :
# 41| 4: [ReservedWord] ,
# 41| 5: [KeywordParameter] KeywordParameter
# 41| 0: [Identifier] bar
# 41| 1: [ReservedWord] :
# 41| 2: [Integer] 7
# 41| 6: [ReservedWord] )
# 42| 3: [BodyStatement] BodyStatement
# 42| 0: [Binary] Binary
# 42| 0: [Binary] Binary
# 42| 0: [Identifier] x
# 42| 1: [ReservedWord] +
# 42| 2: [Identifier] foo
# 42| 1: [ReservedWord] +
# 42| 2: [Identifier] bar
# 43| 4: [ReservedWord] end
# 46| 12: [Method] Method
# 46| 0: [ReservedWord] def
# 46| 1: [Identifier] use_block_with_keyword
# 46| 2: [MethodParameters] MethodParameters
# 46| 0: [ReservedWord] (
# 46| 1: [BlockParameter] BlockParameter
# 46| 0: [ReservedWord] &
# 46| 1: [Identifier] block
# 46| 2: [ReservedWord] )
# 47| 3: [BodyStatement] BodyStatement
# 47| 0: [Call] Call
# 47| 0: [Identifier] puts
# 47| 1: [ArgumentList] ArgumentList
# 47| 0: [ReservedWord] (
# 47| 1: [Call] Call
# 47| 0: [Identifier] block
# 47| 1: [ReservedWord] .
# 47| 2: [Identifier] call
# 47| 3: [ArgumentList] ArgumentList
# 47| 0: [Pair] Pair
# 47| 0: [HashKeySymbol] bar
# 47| 1: [ReservedWord] :
# 47| 2: [Integer] 2
# 47| 1: [ReservedWord] ,
# 47| 2: [Pair] Pair
# 47| 0: [HashKeySymbol] foo
# 47| 1: [ReservedWord] :
# 47| 2: [Integer] 3
# 47| 2: [ReservedWord] )
# 48| 4: [ReservedWord] end
# 49| 13: [Call] Call
# 49| 0: [Identifier] use_block_with_keyword
# 49| 1: [DoBlock] DoBlock
# 49| 0: [ReservedWord] do
# 49| 1: [BlockParameters] BlockParameters
# 49| 0: [ReservedWord] |
# 49| 1: [KeywordParameter] KeywordParameter
# 49| 0: [Identifier] xx
# 49| 1: [ReservedWord] :
# 49| 2: [ReservedWord] ,
# 49| 3: [KeywordParameter] KeywordParameter
# 49| 0: [Identifier] yy
# 49| 1: [ReservedWord] :
# 49| 2: [Integer] 100
# 49| 4: [ReservedWord] |
# 50| 2: [BodyStatement] BodyStatement
# 50| 0: [Binary] Binary
# 50| 0: [Identifier] xx
# 50| 1: [ReservedWord] +
# 50| 2: [Identifier] yy
# 51| 3: [ReservedWord] end
# 53| 14: [Assignment] Assignment
# 53| 0: [Identifier] lambda_with_keyword_params
# 53| 1: [ReservedWord] =
# 53| 2: [Lambda] Lambda
# 53| 0: [ReservedWord] ->
# 53| 1: [LambdaParameters] LambdaParameters
# 53| 0: [ReservedWord] (
# 53| 1: [Identifier] x
# 53| 2: [ReservedWord] ,
# 53| 3: [KeywordParameter] KeywordParameter
# 53| 0: [Identifier] y
# 53| 1: [ReservedWord] :
# 53| 4: [ReservedWord] ,
# 53| 5: [KeywordParameter] KeywordParameter
# 53| 0: [Identifier] z
# 53| 1: [ReservedWord] :
# 53| 2: [Integer] 3
# 53| 6: [ReservedWord] )
# 53| 2: [Block] Block
# 53| 0: [ReservedWord] {
# 54| 1: [BlockBody] BlockBody
# 54| 0: [Binary] Binary
# 54| 0: [Binary] Binary
# 54| 0: [Identifier] x
# 54| 1: [ReservedWord] +
# 54| 2: [Identifier] y
# 54| 1: [ReservedWord] +
# 54| 2: [Identifier] z
# 55| 2: [ReservedWord] }
# 58| 15: [Method] Method
# 58| 0: [ReservedWord] def
# 58| 1: [Identifier] method_with_optional_params
# 58| 2: [MethodParameters] MethodParameters
# 58| 0: [ReservedWord] (
# 58| 1: [Identifier] val1
# 58| 2: [ReservedWord] ,
# 58| 3: [OptionalParameter] OptionalParameter
# 58| 0: [Identifier] val2
# 58| 1: [ReservedWord] =
# 58| 2: [Integer] 0
# 58| 4: [ReservedWord] ,
# 58| 5: [OptionalParameter] OptionalParameter
# 58| 0: [Identifier] val3
# 58| 1: [ReservedWord] =
# 58| 2: [Integer] 100
# 58| 6: [ReservedWord] )
# 59| 3: [ReservedWord] end
# 62| 16: [Method] Method
# 62| 0: [ReservedWord] def
# 62| 1: [Identifier] use_block_with_optional
# 62| 2: [MethodParameters] MethodParameters
# 62| 0: [ReservedWord] (
# 62| 1: [BlockParameter] BlockParameter
# 62| 0: [ReservedWord] &
# 62| 1: [Identifier] block
# 62| 2: [ReservedWord] )
# 63| 3: [BodyStatement] BodyStatement
# 63| 0: [Call] Call
# 63| 0: [Identifier] block
# 63| 1: [ReservedWord] .
# 63| 2: [Identifier] call
# 63| 3: [ArgumentList] ArgumentList
# 63| 0: [String] String
# 63| 0: [ReservedWord] '
# 63| 1: [StringContent] Zeus
# 63| 2: [ReservedWord] '
# 64| 4: [ReservedWord] end
# 65| 17: [Call] Call
# 65| 0: [Identifier] use_block_with_optional
# 65| 1: [DoBlock] DoBlock
# 65| 0: [ReservedWord] do
# 65| 1: [BlockParameters] BlockParameters
# 65| 0: [ReservedWord] |
# 65| 1: [Identifier] name
# 65| 2: [ReservedWord] ,
# 65| 3: [OptionalParameter] OptionalParameter
# 65| 0: [Identifier] age
# 65| 1: [ReservedWord] =
# 65| 2: [Integer] 99
# 65| 4: [ReservedWord] |
# 66| 2: [BodyStatement] BodyStatement
# 66| 0: [Call] Call
# 66| 0: [Identifier] puts
# 66| 1: [ArgumentList] ArgumentList
# 66| 0: [String] String
# 66| 0: [ReservedWord] "
# 66| 1: [Interpolation] Interpolation
# 66| 0: [ReservedWord] #{
# 66| 1: [Identifier] name
# 66| 2: [ReservedWord] }
# 66| 2: [StringContent] is
# 66| 3: [Interpolation] Interpolation
# 66| 0: [ReservedWord] #{
# 66| 1: [Identifier] age
# 66| 2: [ReservedWord] }
# 66| 4: [StringContent] years old
# 66| 5: [ReservedWord] "
# 67| 3: [ReservedWord] end
# 70| 18: [Assignment] Assignment
# 70| 0: [Identifier] lambda_with_optional_params
# 70| 1: [ReservedWord] =
# 70| 2: [Lambda] Lambda
# 70| 0: [ReservedWord] ->
# 70| 1: [LambdaParameters] LambdaParameters
# 70| 0: [ReservedWord] (
# 70| 1: [Identifier] a
# 70| 2: [ReservedWord] ,
# 70| 3: [OptionalParameter] OptionalParameter
# 70| 0: [Identifier] b
# 70| 1: [ReservedWord] =
# 70| 2: [Integer] 1000
# 70| 4: [ReservedWord] ,
# 70| 5: [OptionalParameter] OptionalParameter
# 70| 0: [Identifier] c
# 70| 1: [ReservedWord] =
# 70| 2: [Integer] 20
# 70| 6: [ReservedWord] )
# 70| 2: [Block] Block
# 70| 0: [ReservedWord] {
# 70| 1: [BlockBody] BlockBody
# 70| 0: [Binary] Binary
# 70| 0: [Binary] Binary
# 70| 0: [Identifier] a
# 70| 1: [ReservedWord] +
# 70| 2: [Identifier] b
# 70| 1: [ReservedWord] +
# 70| 2: [Identifier] c
# 70| 2: [ReservedWord] }
# 73| 19: [Method] Method
# 73| 0: [ReservedWord] def
# 73| 1: [Identifier] method_with_nil_splat
# 73| 2: [MethodParameters] MethodParameters
# 73| 0: [ReservedWord] (
# 73| 1: [Identifier] wibble
# 73| 2: [ReservedWord] ,
# 73| 3: [HashSplatNil] **nil
# 73| 0: [ReservedWord] **
# 73| 1: [ReservedWord] nil
# 73| 4: [ReservedWord] )
# 74| 3: [ReservedWord] end
# 77| 20: [Call] Call
# 77| 0: [Identifier] array
# 77| 1: [ReservedWord] .
# 77| 2: [Identifier] each
# 77| 3: [DoBlock] DoBlock
# 77| 0: [ReservedWord] do
# 77| 1: [BlockParameters] BlockParameters
# 77| 0: [ReservedWord] |
# 77| 1: [Identifier] val
# 77| 2: [ReservedWord] ,
# 77| 3: [HashSplatNil] **nil
# 77| 0: [ReservedWord] **
# 77| 1: [ReservedWord] nil
# 77| 4: [ReservedWord] |
# 78| 2: [ReservedWord] end
# 81| 21: [Method] Method
# 81| 0: [ReservedWord] def
# 81| 1: [Identifier] anonymous_block_parameter
# 81| 2: [MethodParameters] MethodParameters
# 81| 0: [ReservedWord] (
# 81| 1: [Identifier] array
# 81| 2: [ReservedWord] ,
# 81| 3: [BlockParameter] BlockParameter
# 81| 0: [ReservedWord] &
# 81| 4: [ReservedWord] )
# 82| 3: [BodyStatement] BodyStatement
# 82| 0: [Call] Call
# 82| 0: [Identifier] proc
# 82| 1: [ArgumentList] ArgumentList
# 82| 0: [ReservedWord] (
# 82| 1: [BlockArgument] BlockArgument
# 82| 0: [ReservedWord] &
# 82| 2: [ReservedWord] )
# 83| 1: [Call] Call
# 83| 0: [Identifier] array
# 83| 1: [ReservedWord] .
# 83| 2: [Identifier] each
# 83| 3: [ArgumentList] ArgumentList
# 83| 0: [ReservedWord] (
# 83| 1: [BlockArgument] BlockArgument
# 83| 0: [ReservedWord] &
# 83| 2: [ReservedWord] )
# 84| 4: [ReservedWord] end
# 86| 22: [Call] Call
# 86| 0: [Identifier] run_block
# 86| 1: [Block] Block
# 86| 0: [ReservedWord] {
# 86| 1: [BlockParameters] BlockParameters
# 86| 0: [ReservedWord] |
# 86| 1: [Identifier] x
# 86| 2: [ReservedWord] ;
# 86| 3: [Identifier] y
# 86| 4: [ReservedWord] ,
# 86| 5: [Identifier] z
# 86| 6: [ReservedWord] |
# 86| 2: [BlockBody] BlockBody
# 86| 0: [Call] Call
# 86| 0: [Identifier] puts
# 86| 1: [ArgumentList] ArgumentList
# 86| 0: [Identifier] x
# 86| 3: [ReservedWord] }
# 89| 23: [Method] Method
# 89| 0: [ReservedWord] def
# 89| 1: [Identifier] anonymous_splat_parameter
# 89| 2: [MethodParameters] MethodParameters
# 89| 0: [ReservedWord] (
# 89| 1: [Identifier] array
# 89| 2: [ReservedWord] ,
# 89| 3: [SplatParameter] SplatParameter
# 89| 0: [ReservedWord] *
# 89| 4: [ReservedWord] )
# 90| 3: [BodyStatement] BodyStatement
# 90| 0: [Call] Call
# 90| 0: [Identifier] array
# 90| 1: [ReservedWord] .
# 90| 2: [Identifier] concat
# 90| 3: [ArgumentList] ArgumentList
# 90| 0: [ReservedWord] (
# 90| 1: [SplatArgument] SplatArgument
# 90| 0: [ReservedWord] *
# 90| 2: [ReservedWord] )
# 91| 4: [ReservedWord] end
# 94| 24: [Method] Method
# 94| 0: [ReservedWord] def
# 94| 1: [Identifier] anonymous_hash_splat_parameter
# 94| 2: [MethodParameters] MethodParameters
# 94| 0: [ReservedWord] (
# 94| 1: [Identifier] hash
# 94| 2: [ReservedWord] ,
# 94| 3: [HashSplatParameter] HashSplatParameter
# 94| 0: [ReservedWord] **
# 94| 4: [ReservedWord] )
# 95| 3: [BodyStatement] BodyStatement
# 95| 0: [Call] Call
# 95| 0: [Identifier] hash
# 95| 1: [ReservedWord] .
# 95| 2: [Identifier] merge
# 95| 3: [ArgumentList] ArgumentList
# 95| 0: [ReservedWord] (
# 95| 1: [HashSplatArgument] HashSplatArgument
# 95| 0: [ReservedWord] **
# 95| 2: [ReservedWord] )
# 96| 4: [ReservedWord] end
# 98| 25: [Class] Class
# 98| 0: [ReservedWord] class
# 98| 1: [Constant] Sup
# 99| 2: [BodyStatement] BodyStatement
# 99| 0: [Method] Method
# 99| 0: [ReservedWord] def
# 99| 1: [Identifier] m
# 99| 2: [MethodParameters] MethodParameters
# 99| 0: [ReservedWord] (
# 99| 1: [Identifier] x
# 99| 2: [ReservedWord] ,
# 99| 3: [SplatParameter] SplatParameter
# 99| 0: [ReservedWord] *
# 99| 1: [Identifier] rest
# 99| 4: [ReservedWord] ,
# 99| 5: [KeywordParameter] KeywordParameter
# 99| 0: [Identifier] k
# 99| 1: [ReservedWord] :
# 99| 6: [ReservedWord] ,
# 99| 7: [HashSplatParameter] HashSplatParameter
# 99| 0: [ReservedWord] **
# 99| 1: [Identifier] kwargs
# 99| 8: [ReservedWord] )
# 100| 3: [BodyStatement] BodyStatement
# 100| 0: [Call] Call
# 100| 0: [Identifier] print
# 100| 1: [ArgumentList] ArgumentList
# 100| 0: [ReservedWord] (
# 100| 1: [Binary] Binary
# 100| 0: [Identifier] x
# 100| 1: [ReservedWord] +
# 100| 2: [Integer] 1
# 100| 2: [ReservedWord] )
# 101| 1: [Call] Call
# 101| 0: [Identifier] print
# 101| 1: [ArgumentList] ArgumentList
# 101| 0: [ReservedWord] (
# 101| 1: [Binary] Binary
# 101| 0: [Identifier] k
# 101| 1: [ReservedWord] +
# 101| 2: [Integer] 1
# 101| 2: [ReservedWord] )
# 102| 4: [ReservedWord] end
# 103| 3: [ReservedWord] end
# 105| 26: [Class] Class
# 105| 0: [ReservedWord] class
# 105| 1: [Constant] Sub
# 105| 2: [Superclass] Superclass
# 105| 0: [ReservedWord] <
# 105| 1: [Constant] Sup
# 106| 3: [BodyStatement] BodyStatement
# 106| 0: [Method] Method
# 106| 0: [ReservedWord] def
# 106| 1: [Identifier] m
# 106| 2: [MethodParameters] MethodParameters
# 106| 0: [ReservedWord] (
# 106| 1: [Identifier] y
# 106| 2: [ReservedWord] ,
# 106| 3: [SplatParameter] SplatParameter
# 106| 0: [ReservedWord] *
# 106| 1: [Identifier] rest
# 106| 4: [ReservedWord] ,
# 106| 5: [KeywordParameter] KeywordParameter
# 106| 0: [Identifier] k
# 106| 1: [ReservedWord] :
# 106| 6: [ReservedWord] ,
# 106| 7: [HashSplatParameter] HashSplatParameter
# 106| 0: [ReservedWord] **
# 106| 1: [Identifier] kwargs
# 106| 8: [ReservedWord] )
# 107| 3: [BodyStatement] BodyStatement
# 107| 0: [Super] super
# 108| 4: [ReservedWord] end
# 109| 4: [ReservedWord] end
# 111| 27: [Call] Call
# 111| 0: [Call] Call
# 111| 0: [Constant] Sub
# 111| 1: [ReservedWord] .
# 111| 2: [Identifier] new
# 111| 1: [ReservedWord] .
# 111| 2: [Identifier] m
# 111| 3: [ArgumentList] ArgumentList
# 111| 0: [ReservedWord] (
# 111| 1: [Integer] 42
# 111| 2: [ReservedWord] ,
# 111| 3: [Pair] Pair
# 111| 0: [HashKeySymbol] k
# 111| 1: [ReservedWord] :
# 111| 2: [Integer] 22
# 111| 4: [ReservedWord] )
# 1| [Comment] # Tests for the different kinds and contexts of parameters.
# 3| [Comment] # Method containing identifier parameters
# 7| [Comment] # Block containing identifier parameters
# 13| [Comment] # Lambda containing identifier parameters
# 16| [Comment] # Method containing destructured parameters
# 20| [Comment] # Block containing destructured parameters
# 24| [Comment] # Lambda containing destructured parameters
# 29| [Comment] # Method containing splat and hash-splat params
# 33| [Comment] # Block with splat and hash-splat parameter
# 37| [Comment] # Lambda with splat and hash-splat
# 40| [Comment] # Method containing keyword parameters
# 45| [Comment] # Block with keyword parameters
# 57| [Comment] # Method containing optional parameters
# 61| [Comment] # Block containing optional parameter
# 69| [Comment] # Lambda containing optional parameters
# 72| [Comment] # Method containing nil hash-splat params
# 76| [Comment] # Block with nil hash-splat parameter
# 80| [Comment] # Anonymous block parameter
# 88| [Comment] # Anonymous splat parameter
# 93| [Comment] # Anonymous hash splat parameter