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: [Identifier] bar # 8| 1: [ArgumentList] ArgumentList # 8| 0: [ReservedWord] ( # 8| 1: [ReservedWord] ) # 11| 3: [Call] Call # 11| 0: [Integer] 123 # 11| 1: [ReservedWord] . # 11| 2: [Identifier] bar # 14| 4: [Call] Call # 14| 0: [Identifier] foo # 14| 1: [ArgumentList] ArgumentList # 14| 0: [Integer] 0 # 14| 1: [ReservedWord] , # 14| 2: [Integer] 1 # 14| 3: [ReservedWord] , # 14| 4: [Integer] 2 # 17| 5: [Call] Call # 17| 0: [Identifier] foo # 17| 1: [Block] Block # 17| 0: [ReservedWord] { # 17| 1: [BlockParameters] BlockParameters # 17| 0: [ReservedWord] | # 17| 1: [Identifier] x # 17| 2: [ReservedWord] | # 17| 2: [Binary] Binary # 17| 0: [Identifier] x # 17| 1: [ReservedWord] + # 17| 2: [Integer] 1 # 17| 3: [ReservedWord] } # 20| 6: [Call] Call # 20| 0: [Identifier] foo # 20| 1: [DoBlock] DoBlock # 20| 0: [ReservedWord] do # 20| 1: [BlockParameters] BlockParameters # 20| 0: [ReservedWord] | # 20| 1: [Identifier] x # 20| 2: [ReservedWord] | # 21| 2: [Binary] Binary # 21| 0: [Identifier] x # 21| 1: [ReservedWord] + # 21| 2: [Integer] 1 # 22| 3: [ReservedWord] end # 25| 7: [Call] Call # 25| 0: [Integer] 123 # 25| 1: [ReservedWord] . # 25| 2: [Identifier] bar # 25| 3: [ArgumentList] ArgumentList # 25| 0: [ReservedWord] ( # 25| 1: [String] String # 25| 0: [ReservedWord] ' # 25| 1: [StringContent] foo # 25| 2: [ReservedWord] ' # 25| 2: [ReservedWord] ) # 25| 4: [DoBlock] DoBlock # 25| 0: [ReservedWord] do # 25| 1: [BlockParameters] BlockParameters # 25| 0: [ReservedWord] | # 25| 1: [Identifier] x # 25| 2: [ReservedWord] | # 26| 2: [Binary] Binary # 26| 0: [Identifier] x # 26| 1: [ReservedWord] + # 26| 2: [Integer] 1 # 27| 3: [ReservedWord] end # 30| 8: [Method] Method # 30| 0: [ReservedWord] def # 30| 1: [Identifier] method_that_yields # 31| 2: [Yield] Yield # 31| 0: [ReservedWord] yield # 32| 3: [ReservedWord] end # 35| 9: [Method] Method # 35| 0: [ReservedWord] def # 35| 1: [Identifier] another_method_that_yields # 36| 2: [Yield] Yield # 36| 0: [ReservedWord] yield # 36| 1: [ArgumentList] ArgumentList # 36| 0: [Integer] 100 # 36| 1: [ReservedWord] , # 36| 2: [Integer] 200 # 37| 3: [ReservedWord] end # 46| 10: [Identifier] foo # 47| 11: [Call] Call # 47| 0: [Constant] X # 47| 1: [ReservedWord] :: # 47| 2: [Identifier] foo # 50| 12: [ParenthesizedStatements] ParenthesizedStatements # 50| 0: [ReservedWord] ( # 50| 1: [Identifier] foo # 50| 2: [ReservedWord] ) # 51| 13: [ParenthesizedStatements] ParenthesizedStatements # 51| 0: [ReservedWord] ( # 51| 1: [Call] Call # 51| 0: [Constant] X # 51| 1: [ReservedWord] :: # 51| 2: [Identifier] foo # 51| 2: [ReservedWord] ) # 54| 14: [Call] Call # 54| 0: [Identifier] some_func # 54| 1: [ArgumentList] ArgumentList # 54| 0: [ReservedWord] ( # 54| 1: [Identifier] foo # 54| 2: [ReservedWord] ) # 55| 15: [Call] Call # 55| 0: [Identifier] some_func # 55| 1: [ArgumentList] ArgumentList # 55| 0: [ReservedWord] ( # 55| 1: [Call] Call # 55| 0: [Constant] X # 55| 1: [ReservedWord] :: # 55| 2: [Identifier] foo # 55| 2: [ReservedWord] ) # 58| 16: [Array] Array # 58| 0: [ReservedWord] [ # 58| 1: [Identifier] foo # 58| 2: [ReservedWord] ] # 59| 17: [Array] Array # 59| 0: [ReservedWord] [ # 59| 1: [Call] Call # 59| 0: [Constant] X # 59| 1: [ReservedWord] :: # 59| 2: [Identifier] foo # 59| 2: [ReservedWord] ] # 62| 18: [Assignment] Assignment # 62| 0: [Identifier] var1 # 62| 1: [ReservedWord] = # 62| 2: [Identifier] foo # 63| 19: [Assignment] Assignment # 63| 0: [Identifier] var1 # 63| 1: [ReservedWord] = # 63| 2: [Call] Call # 63| 0: [Constant] X # 63| 1: [ReservedWord] :: # 63| 2: [Identifier] foo # 66| 20: [OperatorAssignment] OperatorAssignment # 66| 0: [Identifier] var1 # 66| 1: [ReservedWord] += # 66| 2: [Identifier] bar # 67| 21: [OperatorAssignment] OperatorAssignment # 67| 0: [Identifier] var1 # 67| 1: [ReservedWord] += # 67| 2: [Call] Call # 67| 0: [Constant] X # 67| 1: [ReservedWord] :: # 67| 2: [Identifier] bar # 70| 22: [Assignment] Assignment # 70| 0: [Identifier] var1 # 70| 1: [ReservedWord] = # 70| 2: [RightAssignmentList] RightAssignmentList # 70| 0: [Identifier] foo # 70| 1: [ReservedWord] , # 70| 2: [Call] Call # 70| 0: [Constant] X # 70| 1: [ReservedWord] :: # 70| 2: [Identifier] bar # 73| 23: [Begin] Begin # 73| 0: [ReservedWord] begin # 74| 1: [Identifier] foo # 75| 2: [Call] Call # 75| 0: [Constant] X # 75| 1: [ReservedWord] :: # 75| 2: [Identifier] foo # 76| 3: [ReservedWord] end # 79| 24: [BeginBlock] BeginBlock # 79| 0: [ReservedWord] BEGIN # 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: [EndBlock] EndBlock # 82| 0: [ReservedWord] END # 82| 1: [ReservedWord] { # 82| 2: [Identifier] foo # 82| 3: [ReservedWord] ; # 82| 4: [Call] Call # 82| 0: [Constant] X # 82| 1: [ReservedWord] :: # 82| 2: [Identifier] bar # 82| 5: [ReservedWord] } # 85| 26: [Binary] Binary # 85| 0: [Identifier] foo # 85| 1: [ReservedWord] + # 85| 2: [Call] Call # 85| 0: [Constant] X # 85| 1: [ReservedWord] :: # 85| 2: [Identifier] bar # 88| 27: [Unary] Unary # 88| 0: [ReservedWord] ! # 88| 1: [Identifier] foo # 89| 28: [Unary] Unary # 89| 0: [ReservedWord] ~ # 89| 1: [Call] Call # 89| 0: [Constant] X # 89| 1: [ReservedWord] :: # 89| 2: [Identifier] bar # 92| 29: [Call] Call # 92| 0: [Identifier] foo # 92| 1: [ArgumentList] ArgumentList # 92| 0: [ReservedWord] ( # 92| 1: [ReservedWord] ) # 92| 2: [Block] Block # 92| 0: [ReservedWord] { # 92| 1: [Identifier] bar # 92| 2: [ReservedWord] ; # 92| 3: [Call] Call # 92| 0: [Constant] X # 92| 1: [ReservedWord] :: # 92| 2: [Identifier] baz # 92| 4: [ReservedWord] } # 95| 30: [Call] Call # 95| 0: [Identifier] foo # 95| 1: [ArgumentList] ArgumentList # 95| 0: [ReservedWord] ( # 95| 1: [ReservedWord] ) # 95| 2: [DoBlock] DoBlock # 95| 0: [ReservedWord] do # 96| 1: [Identifier] bar # 97| 2: [Call] Call # 97| 0: [Constant] X # 97| 1: [ReservedWord] :: # 97| 2: [Identifier] baz # 98| 3: [ReservedWord] end # 101| 31: [Call] Call # 101| 0: [Identifier] foo # 101| 1: [ReservedWord] . # 101| 2: [Identifier] bar # 101| 3: [ArgumentList] ArgumentList # 101| 0: [ReservedWord] ( # 101| 1: [ReservedWord] ) # 102| 32: [Call] Call # 102| 0: [Identifier] bar # 102| 1: [ReservedWord] . # 102| 2: [Identifier] baz # 102| 3: [ArgumentList] ArgumentList # 102| 0: [ReservedWord] ( # 102| 1: [ReservedWord] ) # 106| 33: [Case] Case # 106| 0: [ReservedWord] case # 106| 1: [Identifier] foo # 107| 2: [When] When # 107| 0: [ReservedWord] when # 107| 1: [Pattern] Pattern # 107| 0: [Identifier] bar # 107| 2: [Then] Then # 108| 0: [Identifier] baz # 109| 3: [ReservedWord] end # 110| 34: [Case] Case # 110| 0: [ReservedWord] case # 110| 1: [Call] Call # 110| 0: [Constant] X # 110| 1: [ReservedWord] :: # 110| 2: [Identifier] foo # 111| 2: [When] When # 111| 0: [ReservedWord] when # 111| 1: [Pattern] Pattern # 111| 0: [Call] Call # 111| 0: [Constant] X # 111| 1: [ReservedWord] :: # 111| 2: [Identifier] bar # 111| 2: [Then] Then # 112| 0: [Call] Call # 112| 0: [Constant] X # 112| 1: [ReservedWord] :: # 112| 2: [Identifier] baz # 113| 3: [ReservedWord] end # 116| 35: [Class] Class # 116| 0: [ReservedWord] class # 116| 1: [Constant] MyClass # 117| 2: [Identifier] foo # 118| 3: [Call] Call # 118| 0: [Constant] X # 118| 1: [ReservedWord] :: # 118| 2: [Identifier] bar # 119| 4: [ReservedWord] end # 122| 36: [Class] Class # 122| 0: [ReservedWord] class # 122| 1: [Constant] MyClass # 122| 2: [Superclass] Superclass # 122| 0: [ReservedWord] < # 122| 1: [Identifier] foo # 123| 3: [ReservedWord] end # 124| 37: [Class] Class # 124| 0: [ReservedWord] class # 124| 1: [Constant] MyClass2 # 124| 2: [Superclass] Superclass # 124| 0: [ReservedWord] < # 124| 1: [Call] Call # 124| 0: [Constant] X # 124| 1: [ReservedWord] :: # 124| 2: [Identifier] foo # 125| 3: [ReservedWord] end # 128| 38: [SingletonClass] SingletonClass # 128| 0: [ReservedWord] class # 128| 1: [ReservedWord] << # 128| 2: [Identifier] foo # 129| 3: [Identifier] bar # 130| 4: [ReservedWord] end # 131| 39: [SingletonClass] SingletonClass # 131| 0: [ReservedWord] class # 131| 1: [ReservedWord] << # 131| 2: [Call] Call # 131| 0: [Constant] X # 131| 1: [ReservedWord] :: # 131| 2: [Identifier] foo # 132| 3: [Call] Call # 132| 0: [Constant] X # 132| 1: [ReservedWord] :: # 132| 2: [Identifier] bar # 133| 4: [ReservedWord] end # 136| 40: [Method] Method # 136| 0: [ReservedWord] def # 136| 1: [Identifier] some_method # 137| 2: [Identifier] foo # 138| 3: [Call] Call # 138| 0: [Constant] X # 138| 1: [ReservedWord] :: # 138| 2: [Identifier] bar # 139| 4: [ReservedWord] end # 142| 41: [SingletonMethod] SingletonMethod # 142| 0: [ReservedWord] def # 142| 1: [Identifier] foo # 142| 2: [ReservedWord] . # 142| 3: [Identifier] some_method # 143| 4: [Identifier] bar # 144| 5: [Call] Call # 144| 0: [Constant] X # 144| 1: [ReservedWord] :: # 144| 2: [Identifier] baz # 145| 6: [ReservedWord] end # 148| 42: [Method] Method # 148| 0: [ReservedWord] def # 148| 1: [Identifier] method_with_keyword_param # 148| 2: [MethodParameters] MethodParameters # 148| 0: [ReservedWord] ( # 148| 1: [KeywordParameter] KeywordParameter # 148| 0: [Identifier] keyword # 148| 1: [ReservedWord] : # 148| 2: [Identifier] foo # 148| 2: [ReservedWord] ) # 149| 3: [ReservedWord] end # 150| 43: [Method] Method # 150| 0: [ReservedWord] def # 150| 1: [Identifier] method_with_keyword_param2 # 150| 2: [MethodParameters] MethodParameters # 150| 0: [ReservedWord] ( # 150| 1: [KeywordParameter] KeywordParameter # 150| 0: [Identifier] keyword # 150| 1: [ReservedWord] : # 150| 2: [Call] Call # 150| 0: [Constant] X # 150| 1: [ReservedWord] :: # 150| 2: [Identifier] foo # 150| 2: [ReservedWord] ) # 151| 3: [ReservedWord] end # 154| 44: [Method] Method # 154| 0: [ReservedWord] def # 154| 1: [Identifier] method_with_optional_param # 154| 2: [MethodParameters] MethodParameters # 154| 0: [ReservedWord] ( # 154| 1: [OptionalParameter] OptionalParameter # 154| 0: [Identifier] param # 154| 1: [ReservedWord] = # 154| 2: [Identifier] foo # 154| 2: [ReservedWord] ) # 155| 3: [ReservedWord] end # 156| 45: [Method] Method # 156| 0: [ReservedWord] def # 156| 1: [Identifier] method_with_optional_param2 # 156| 2: [MethodParameters] MethodParameters # 156| 0: [ReservedWord] ( # 156| 1: [OptionalParameter] OptionalParameter # 156| 0: [Identifier] param # 156| 1: [ReservedWord] = # 156| 2: [Call] Call # 156| 0: [Constant] X # 156| 1: [ReservedWord] :: # 156| 2: [Identifier] foo # 156| 2: [ReservedWord] ) # 157| 3: [ReservedWord] end # 160| 46: [Module] Module # 160| 0: [ReservedWord] module # 160| 1: [Constant] SomeModule # 161| 2: [Identifier] foo # 162| 3: [Call] Call # 162| 0: [Constant] X # 162| 1: [ReservedWord] :: # 162| 2: [Identifier] bar # 163| 4: [ReservedWord] end # 166| 47: [Conditional] Conditional # 166| 0: [Identifier] foo # 166| 1: [ReservedWord] ? # 166| 2: [Identifier] bar # 166| 3: [ReservedWord] : # 166| 4: [Identifier] baz # 167| 48: [Conditional] Conditional # 167| 0: [Call] Call # 167| 0: [Constant] X # 167| 1: [ReservedWord] :: # 167| 2: [Identifier] foo # 167| 1: [ReservedWord] ? # 167| 2: [Call] Call # 167| 0: [Constant] X # 167| 1: [ReservedWord] :: # 167| 2: [Identifier] bar # 167| 3: [ReservedWord] : # 167| 4: [Call] Call # 167| 0: [Constant] X # 167| 1: [ReservedWord] :: # 167| 2: [Identifier] baz # 170| 49: [If] If # 170| 0: [ReservedWord] if # 170| 1: [Identifier] foo # 170| 2: [Then] Then # 171| 0: [Identifier] wibble # 172| 3: [Elsif] Elsif # 172| 0: [ReservedWord] elsif # 172| 1: [Identifier] bar # 172| 2: [Then] Then # 173| 0: [Identifier] wobble # 174| 3: [Else] Else # 174| 0: [ReservedWord] else # 175| 1: [Identifier] wabble # 176| 4: [ReservedWord] end # 177| 50: [If] If # 177| 0: [ReservedWord] if # 177| 1: [Call] Call # 177| 0: [Constant] X # 177| 1: [ReservedWord] :: # 177| 2: [Identifier] foo # 177| 2: [Then] Then # 178| 0: [Call] Call # 178| 0: [Constant] X # 178| 1: [ReservedWord] :: # 178| 2: [Identifier] wibble # 179| 3: [Elsif] Elsif # 179| 0: [ReservedWord] elsif # 179| 1: [Call] Call # 179| 0: [Constant] X # 179| 1: [ReservedWord] :: # 179| 2: [Identifier] bar # 179| 2: [Then] Then # 180| 0: [Call] Call # 180| 0: [Constant] X # 180| 1: [ReservedWord] :: # 180| 2: [Identifier] wobble # 181| 3: [Else] Else # 181| 0: [ReservedWord] else # 182| 1: [Call] Call # 182| 0: [Constant] X # 182| 1: [ReservedWord] :: # 182| 2: [Identifier] wabble # 183| 4: [ReservedWord] end # 186| 51: [IfModifier] IfModifier # 186| 0: [Identifier] bar # 186| 1: [ReservedWord] if # 186| 2: [Identifier] foo # 187| 52: [IfModifier] IfModifier # 187| 0: [Call] Call # 187| 0: [Constant] X # 187| 1: [ReservedWord] :: # 187| 2: [Identifier] bar # 187| 1: [ReservedWord] if # 187| 2: [Call] Call # 187| 0: [Constant] X # 187| 1: [ReservedWord] :: # 187| 2: [Identifier] foo # 190| 53: [Unless] Unless # 190| 0: [ReservedWord] unless # 190| 1: [Identifier] foo # 190| 2: [Then] Then # 191| 0: [Identifier] bar # 192| 3: [ReservedWord] end # 193| 54: [Unless] Unless # 193| 0: [ReservedWord] unless # 193| 1: [Call] Call # 193| 0: [Constant] X # 193| 1: [ReservedWord] :: # 193| 2: [Identifier] foo # 193| 2: [Then] Then # 194| 0: [Call] Call # 194| 0: [Constant] X # 194| 1: [ReservedWord] :: # 194| 2: [Identifier] bar # 195| 3: [ReservedWord] end # 198| 55: [UnlessModifier] UnlessModifier # 198| 0: [Identifier] bar # 198| 1: [ReservedWord] unless # 198| 2: [Identifier] foo # 199| 56: [UnlessModifier] UnlessModifier # 199| 0: [Call] Call # 199| 0: [Constant] X # 199| 1: [ReservedWord] :: # 199| 2: [Identifier] bar # 199| 1: [ReservedWord] unless # 199| 2: [Call] Call # 199| 0: [Constant] X # 199| 1: [ReservedWord] :: # 199| 2: [Identifier] foo # 202| 57: [While] While # 202| 0: [ReservedWord] while # 202| 1: [Identifier] foo # 202| 2: [Do] Do # 202| 0: [ReservedWord] do # 203| 1: [Identifier] bar # 204| 2: [ReservedWord] end # 205| 58: [While] While # 205| 0: [ReservedWord] while # 205| 1: [Call] Call # 205| 0: [Constant] X # 205| 1: [ReservedWord] :: # 205| 2: [Identifier] foo # 205| 2: [Do] Do # 205| 0: [ReservedWord] do # 206| 1: [Call] Call # 206| 0: [Constant] X # 206| 1: [ReservedWord] :: # 206| 2: [Identifier] bar # 207| 2: [ReservedWord] end # 210| 59: [WhileModifier] WhileModifier # 210| 0: [Identifier] bar # 210| 1: [ReservedWord] while # 210| 2: [Identifier] foo # 211| 60: [WhileModifier] WhileModifier # 211| 0: [Call] Call # 211| 0: [Constant] X # 211| 1: [ReservedWord] :: # 211| 2: [Identifier] bar # 211| 1: [ReservedWord] while # 211| 2: [Call] Call # 211| 0: [Constant] X # 211| 1: [ReservedWord] :: # 211| 2: [Identifier] foo # 214| 61: [Until] Until # 214| 0: [ReservedWord] until # 214| 1: [Identifier] foo # 214| 2: [Do] Do # 214| 0: [ReservedWord] do # 215| 1: [Identifier] bar # 216| 2: [ReservedWord] end # 217| 62: [Until] Until # 217| 0: [ReservedWord] until # 217| 1: [Call] Call # 217| 0: [Constant] X # 217| 1: [ReservedWord] :: # 217| 2: [Identifier] foo # 217| 2: [Do] Do # 217| 0: [ReservedWord] do # 218| 1: [Call] Call # 218| 0: [Constant] X # 218| 1: [ReservedWord] :: # 218| 2: [Identifier] bar # 219| 2: [ReservedWord] end # 222| 63: [UntilModifier] UntilModifier # 222| 0: [Identifier] bar # 222| 1: [ReservedWord] until # 222| 2: [Identifier] foo # 223| 64: [UntilModifier] UntilModifier # 223| 0: [Call] Call # 223| 0: [Constant] X # 223| 1: [ReservedWord] :: # 223| 2: [Identifier] bar # 223| 1: [ReservedWord] until # 223| 2: [Call] Call # 223| 0: [Constant] X # 223| 1: [ReservedWord] :: # 223| 2: [Identifier] foo # 226| 65: [For] For # 226| 0: [ReservedWord] for # 226| 1: [Identifier] x # 226| 2: [In] In # 226| 0: [ReservedWord] in # 226| 1: [Identifier] bar # 226| 3: [Do] Do # 227| 0: [Identifier] baz # 228| 1: [ReservedWord] end # 229| 66: [For] For # 229| 0: [ReservedWord] for # 229| 1: [Identifier] x # 229| 2: [In] In # 229| 0: [ReservedWord] in # 229| 1: [Call] Call # 229| 0: [Constant] X # 229| 1: [ReservedWord] :: # 229| 2: [Identifier] bar # 229| 3: [Do] Do # 230| 0: [Call] Call # 230| 0: [Constant] X # 230| 1: [ReservedWord] :: # 230| 2: [Identifier] baz # 231| 1: [ReservedWord] end # 234| 67: [ElementReference] ElementReference # 234| 0: [Identifier] foo # 234| 1: [ReservedWord] [ # 234| 2: [Identifier] bar # 234| 3: [ReservedWord] ] # 235| 68: [ElementReference] ElementReference # 235| 0: [Call] Call # 235| 0: [Constant] X # 235| 1: [ReservedWord] :: # 235| 2: [Identifier] foo # 235| 1: [ReservedWord] [ # 235| 2: [Call] Call # 235| 0: [Constant] X # 235| 1: [ReservedWord] :: # 235| 2: [Identifier] bar # 235| 3: [ReservedWord] ] # 238| 69: [String] String # 238| 0: [ReservedWord] " # 238| 1: [StringContent] foo- # 238| 2: [Interpolation] Interpolation # 238| 0: [ReservedWord] #{ # 238| 1: [Identifier] bar # 238| 2: [ReservedWord] } # 238| 3: [StringContent] - # 238| 4: [Interpolation] Interpolation # 238| 0: [ReservedWord] #{ # 238| 1: [Call] Call # 238| 0: [Constant] X # 238| 1: [ReservedWord] :: # 238| 2: [Identifier] baz # 238| 2: [ReservedWord] } # 238| 5: [ReservedWord] " # 241| 70: [ScopeResolution] ScopeResolution # 241| 0: [Identifier] foo # 241| 1: [ReservedWord] :: # 241| 2: [Constant] Bar # 242| 71: [ScopeResolution] ScopeResolution # 242| 0: [Call] Call # 242| 0: [Constant] X # 242| 1: [ReservedWord] :: # 242| 2: [Identifier] foo # 242| 1: [ReservedWord] :: # 242| 2: [Constant] Bar # 245| 72: [Range] Range # 245| 0: [Identifier] foo # 245| 1: [ReservedWord] .. # 245| 2: [Identifier] bar # 246| 73: [Range] Range # 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 # 249| 74: [Hash] Hash # 249| 0: [ReservedWord] { # 249| 1: [Pair] Pair # 249| 0: [Identifier] foo # 249| 1: [ReservedWord] => # 249| 2: [Identifier] bar # 249| 2: [ReservedWord] , # 249| 3: [Pair] Pair # 249| 0: [Call] Call # 249| 0: [Constant] X # 249| 1: [ReservedWord] :: # 249| 2: [Identifier] foo # 249| 1: [ReservedWord] => # 249| 2: [Call] Call # 249| 0: [Constant] X # 249| 1: [ReservedWord] :: # 249| 2: [Identifier] bar # 249| 4: [ReservedWord] } # 252| 75: [Begin] Begin # 252| 0: [ReservedWord] begin # 253| 1: [Rescue] Rescue # 253| 0: [ReservedWord] rescue # 253| 1: [Exceptions] Exceptions # 253| 0: [Identifier] foo # 254| 2: [Ensure] Ensure # 254| 0: [ReservedWord] ensure # 254| 1: [Identifier] bar # 255| 3: [ReservedWord] end # 256| 76: [Begin] Begin # 256| 0: [ReservedWord] begin # 257| 1: [Rescue] Rescue # 257| 0: [ReservedWord] rescue # 257| 1: [Exceptions] Exceptions # 257| 0: [Call] Call # 257| 0: [Constant] X # 257| 1: [ReservedWord] :: # 257| 2: [Identifier] foo # 258| 2: [Ensure] Ensure # 258| 0: [ReservedWord] ensure # 258| 1: [Call] Call # 258| 0: [Constant] X # 258| 1: [ReservedWord] :: # 258| 2: [Identifier] bar # 259| 3: [ReservedWord] end # 262| 77: [RescueModifier] RescueModifier # 262| 0: [Identifier] foo # 262| 1: [ReservedWord] rescue # 262| 2: [Identifier] bar # 263| 78: [RescueModifier] RescueModifier # 263| 0: [Call] Call # 263| 0: [Constant] X # 263| 1: [ReservedWord] :: # 263| 2: [Identifier] foo # 263| 1: [ReservedWord] rescue # 263| 2: [Call] Call # 263| 0: [Constant] X # 263| 1: [ReservedWord] :: # 263| 2: [Identifier] bar # 266| 79: [Call] Call # 266| 0: [Identifier] foo # 266| 1: [ArgumentList] ArgumentList # 266| 0: [ReservedWord] ( # 266| 1: [BlockArgument] BlockArgument # 266| 0: [ReservedWord] & # 266| 1: [Identifier] bar # 266| 2: [ReservedWord] ) # 267| 80: [Call] Call # 267| 0: [Identifier] foo # 267| 1: [ArgumentList] ArgumentList # 267| 0: [ReservedWord] ( # 267| 1: [BlockArgument] BlockArgument # 267| 0: [ReservedWord] & # 267| 1: [Call] Call # 267| 0: [Constant] X # 267| 1: [ReservedWord] :: # 267| 2: [Identifier] bar # 267| 2: [ReservedWord] ) # 268| 81: [Call] Call # 268| 0: [Identifier] foo # 268| 1: [ArgumentList] ArgumentList # 268| 0: [ReservedWord] ( # 268| 1: [BlockArgument] BlockArgument # 268| 0: [ReservedWord] & # 268| 2: [ReservedWord] ) # 270| 82: [Call] Call # 270| 0: [Identifier] foo # 270| 1: [ArgumentList] ArgumentList # 270| 0: [ReservedWord] ( # 270| 1: [SplatArgument] SplatArgument # 270| 0: [ReservedWord] * # 270| 1: [Identifier] bar # 270| 2: [ReservedWord] ) # 271| 83: [Call] Call # 271| 0: [Identifier] foo # 271| 1: [ArgumentList] ArgumentList # 271| 0: [ReservedWord] ( # 271| 1: [SplatArgument] SplatArgument # 271| 0: [ReservedWord] * # 271| 1: [Call] Call # 271| 0: [Constant] X # 271| 1: [ReservedWord] :: # 271| 2: [Identifier] bar # 271| 2: [ReservedWord] ) # 274| 84: [Call] Call # 274| 0: [Identifier] foo # 274| 1: [ArgumentList] ArgumentList # 274| 0: [ReservedWord] ( # 274| 1: [HashSplatArgument] HashSplatArgument # 274| 0: [ReservedWord] ** # 274| 1: [Identifier] bar # 274| 2: [ReservedWord] ) # 275| 85: [Call] Call # 275| 0: [Identifier] foo # 275| 1: [ArgumentList] ArgumentList # 275| 0: [ReservedWord] ( # 275| 1: [HashSplatArgument] HashSplatArgument # 275| 0: [ReservedWord] ** # 275| 1: [Call] Call # 275| 0: [Constant] X # 275| 1: [ReservedWord] :: # 275| 2: [Identifier] bar # 275| 2: [ReservedWord] ) # 278| 86: [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: [Identifier] bar # 278| 2: [ReservedWord] ) # 279| 87: [Call] Call # 279| 0: [Identifier] foo # 279| 1: [ArgumentList] ArgumentList # 279| 0: [ReservedWord] ( # 279| 1: [Pair] Pair # 279| 0: [HashKeySymbol] blah # 279| 1: [ReservedWord] : # 279| 2: [Call] Call # 279| 0: [Constant] X # 279| 1: [ReservedWord] :: # 279| 2: [Identifier] bar # 279| 2: [ReservedWord] ) # 284| 88: [Class] Class # 284| 0: [ReservedWord] class # 284| 1: [Constant] MyClass # 285| 2: [Method] Method # 285| 0: [ReservedWord] def # 285| 1: [Identifier] my_method # 286| 2: [Super] super # 287| 3: [Call] Call # 287| 0: [Super] super # 287| 1: [ArgumentList] ArgumentList # 287| 0: [ReservedWord] ( # 287| 1: [ReservedWord] ) # 288| 4: [Call] Call # 288| 0: [Super] super # 288| 1: [ArgumentList] ArgumentList # 288| 0: [String] String # 288| 0: [ReservedWord] ' # 288| 1: [StringContent] blah # 288| 2: [ReservedWord] ' # 289| 5: [Call] Call # 289| 0: [Super] super # 289| 1: [ArgumentList] ArgumentList # 289| 0: [Integer] 1 # 289| 1: [ReservedWord] , # 289| 2: [Integer] 2 # 289| 3: [ReservedWord] , # 289| 4: [Integer] 3 # 290| 6: [Call] Call # 290| 0: [Super] super # 290| 1: [Block] Block # 290| 0: [ReservedWord] { # 290| 1: [BlockParameters] BlockParameters # 290| 0: [ReservedWord] | # 290| 1: [Identifier] x # 290| 2: [ReservedWord] | # 290| 2: [Binary] Binary # 290| 0: [Identifier] x # 290| 1: [ReservedWord] + # 290| 2: [Integer] 1 # 290| 3: [ReservedWord] } # 291| 7: [Call] Call # 291| 0: [Super] super # 291| 1: [DoBlock] DoBlock # 291| 0: [ReservedWord] do # 291| 1: [BlockParameters] BlockParameters # 291| 0: [ReservedWord] | # 291| 1: [Identifier] x # 291| 2: [ReservedWord] | # 291| 2: [Binary] Binary # 291| 0: [Identifier] x # 291| 1: [ReservedWord] * # 291| 2: [Integer] 2 # 291| 3: [ReservedWord] end # 292| 8: [Call] Call # 292| 0: [Super] super # 292| 1: [ArgumentList] ArgumentList # 292| 0: [Integer] 4 # 292| 1: [ReservedWord] , # 292| 2: [Integer] 5 # 292| 2: [Block] Block # 292| 0: [ReservedWord] { # 292| 1: [BlockParameters] BlockParameters # 292| 0: [ReservedWord] | # 292| 1: [Identifier] x # 292| 2: [ReservedWord] | # 292| 2: [Binary] Binary # 292| 0: [Identifier] x # 292| 1: [ReservedWord] + # 292| 2: [Integer] 100 # 292| 3: [ReservedWord] } # 293| 9: [Call] Call # 293| 0: [Super] super # 293| 1: [ArgumentList] ArgumentList # 293| 0: [Integer] 6 # 293| 1: [ReservedWord] , # 293| 2: [Integer] 7 # 293| 2: [DoBlock] DoBlock # 293| 0: [ReservedWord] do # 293| 1: [BlockParameters] BlockParameters # 293| 0: [ReservedWord] | # 293| 1: [Identifier] x # 293| 2: [ReservedWord] | # 293| 2: [Binary] Binary # 293| 0: [Identifier] x # 293| 1: [ReservedWord] + # 293| 2: [Integer] 200 # 293| 3: [ReservedWord] end # 294| 10: [ReservedWord] end # 295| 3: [ReservedWord] end # 301| 89: [Class] Class # 301| 0: [ReservedWord] class # 301| 1: [Constant] AnotherClass # 302| 2: [Method] Method # 302| 0: [ReservedWord] def # 302| 1: [Identifier] another_method # 303| 2: [Call] Call # 303| 0: [Identifier] foo # 303| 1: [ReservedWord] . # 303| 2: [Identifier] super # 304| 3: [Call] Call # 304| 0: [Self] self # 304| 1: [ReservedWord] . # 304| 2: [Identifier] super # 305| 4: [Call] Call # 305| 0: [Super] super # 305| 1: [ReservedWord] . # 305| 2: [Identifier] super # 306| 5: [ReservedWord] end # 307| 3: [ReservedWord] end # 310| 90: [Call] Call # 310| 0: [Identifier] foo # 310| 1: [ReservedWord] . # 310| 2: [ArgumentList] ArgumentList # 310| 0: [ReservedWord] ( # 310| 1: [ReservedWord] ) # 311| 91: [Call] Call # 311| 0: [Identifier] foo # 311| 1: [ReservedWord] . # 311| 2: [ArgumentList] ArgumentList # 311| 0: [ReservedWord] ( # 311| 1: [Integer] 1 # 311| 2: [ReservedWord] ) # 314| 92: [Assignment] Assignment # 314| 0: [Call] Call # 314| 0: [Self] self # 314| 1: [ReservedWord] . # 314| 2: [Identifier] foo # 314| 1: [ReservedWord] = # 314| 2: [Integer] 10 # 315| 93: [Assignment] Assignment # 315| 0: [ElementReference] ElementReference # 315| 0: [Identifier] foo # 315| 1: [ReservedWord] [ # 315| 2: [Integer] 0 # 315| 3: [ReservedWord] ] # 315| 1: [ReservedWord] = # 315| 2: [Integer] 10 # 316| 94: [Assignment] Assignment # 316| 0: [LeftAssignmentList] LeftAssignmentList # 316| 0: [Call] Call # 316| 0: [Self] self # 316| 1: [ReservedWord] . # 316| 2: [Identifier] foo # 316| 1: [ReservedWord] , # 316| 2: [RestAssignment] RestAssignment # 316| 0: [ReservedWord] * # 316| 1: [Call] Call # 316| 0: [Self] self # 316| 1: [ReservedWord] . # 316| 2: [Identifier] bar # 316| 3: [ReservedWord] , # 316| 4: [ElementReference] ElementReference # 316| 0: [Identifier] foo # 316| 1: [ReservedWord] [ # 316| 2: [Integer] 4 # 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] , # 316| 7: [Integer] 4 # 316| 8: [ReservedWord] ] # 317| 95: [Assignment] Assignment # 317| 0: [LeftAssignmentList] LeftAssignmentList # 317| 0: [Identifier] a # 317| 1: [ReservedWord] , # 317| 2: [RestAssignment] RestAssignment # 317| 0: [ReservedWord] * # 317| 1: [ElementReference] ElementReference # 317| 0: [Identifier] foo # 317| 1: [ReservedWord] [ # 317| 2: [Integer] 5 # 317| 3: [ReservedWord] ] # 317| 1: [ReservedWord] = # 317| 2: [Array] Array # 317| 0: [ReservedWord] [ # 317| 1: [Integer] 1 # 317| 2: [ReservedWord] , # 317| 3: [Integer] 2 # 317| 4: [ReservedWord] , # 317| 5: [Integer] 3 # 317| 6: [ReservedWord] ] # 318| 96: [OperatorAssignment] OperatorAssignment # 318| 0: [Call] Call # 318| 0: [Self] self # 318| 1: [ReservedWord] . # 318| 2: [Identifier] count # 318| 1: [ReservedWord] += # 318| 2: [Integer] 1 # 319| 97: [OperatorAssignment] OperatorAssignment # 319| 0: [ElementReference] ElementReference # 319| 0: [Identifier] foo # 319| 1: [ReservedWord] [ # 319| 2: [Integer] 0 # 319| 3: [ReservedWord] ] # 319| 1: [ReservedWord] += # 319| 2: [Integer] 1 # 320| 98: [OperatorAssignment] OperatorAssignment # 320| 0: [ElementReference] ElementReference # 320| 0: [Call] Call # 320| 0: [Identifier] foo # 320| 1: [ReservedWord] . # 320| 2: [Identifier] bar # 320| 1: [ReservedWord] [ # 320| 2: [Integer] 0 # 320| 3: [ReservedWord] , # 320| 4: [Call] Call # 320| 0: [Identifier] foo # 320| 1: [ReservedWord] . # 320| 2: [Identifier] baz # 320| 5: [ReservedWord] , # 320| 6: [Binary] Binary # 320| 0: [Call] Call # 320| 0: [Identifier] foo # 320| 1: [ReservedWord] . # 320| 2: [Identifier] boo # 320| 1: [ReservedWord] + # 320| 2: [Integer] 1 # 320| 7: [ReservedWord] ] # 320| 1: [ReservedWord] *= # 320| 2: [Integer] 2 # 323| 99: [Method] Method # 323| 0: [ReservedWord] def # 323| 1: [Identifier] foo # 323| 2: [ReservedWord] = # 323| 3: [Identifier] bar # 324| 100: [Method] Method # 324| 0: [ReservedWord] def # 324| 1: [Identifier] foo # 324| 2: [MethodParameters] MethodParameters # 324| 0: [ReservedWord] ( # 324| 1: [ReservedWord] ) # 324| 3: [ReservedWord] = # 324| 4: [Identifier] bar # 325| 101: [Method] Method # 325| 0: [ReservedWord] def # 325| 1: [Identifier] foo # 325| 2: [MethodParameters] MethodParameters # 325| 0: [ReservedWord] ( # 325| 1: [Identifier] x # 325| 2: [ReservedWord] ) # 325| 3: [ReservedWord] = # 325| 4: [Identifier] bar # 326| 102: [SingletonMethod] SingletonMethod # 326| 0: [ReservedWord] def # 326| 1: [Constant] Object # 326| 2: [ReservedWord] . # 326| 3: [Identifier] foo # 326| 4: [ReservedWord] = # 326| 5: [Identifier] bar # 327| 103: [SingletonMethod] SingletonMethod # 327| 0: [ReservedWord] def # 327| 1: [Constant] Object # 327| 2: [ReservedWord] . # 327| 3: [Identifier] foo # 327| 4: [MethodParameters] MethodParameters # 327| 0: [ReservedWord] ( # 327| 1: [Identifier] x # 327| 2: [ReservedWord] ) # 327| 5: [ReservedWord] = # 327| 6: [Identifier] bar # 328| 104: [Method] Method # 328| 0: [ReservedWord] def # 328| 1: [Identifier] foo # 328| 2: [MethodParameters] MethodParameters # 328| 0: [ReservedWord] ( # 328| 1: [ReservedWord] ) # 328| 3: [ReservedWord] = # 328| 4: [RescueModifier] RescueModifier # 328| 0: [Identifier] bar # 328| 1: [ReservedWord] rescue # 328| 2: [ParenthesizedStatements] ParenthesizedStatements # 328| 0: [ReservedWord] ( # 328| 1: [Call] Call # 328| 0: [Identifier] print # 328| 1: [ArgumentList] ArgumentList # 328| 0: [String] String # 328| 0: [ReservedWord] " # 328| 1: [StringContent] error # 328| 2: [ReservedWord] " # 328| 2: [ReservedWord] ) # 331| 105: [Method] Method # 331| 0: [ReservedWord] def # 331| 1: [Identifier] foo # 331| 2: [MethodParameters] MethodParameters # 331| 0: [ReservedWord] ( # 331| 1: [ForwardParameter] ... # 331| 0: [ReservedWord] ... # 331| 2: [ReservedWord] ) # 332| 3: [Call] Call # 332| 0: [Super] super # 332| 1: [ArgumentList] ArgumentList # 332| 0: [ReservedWord] ( # 332| 1: [ForwardArgument] ... # 332| 0: [ReservedWord] ... # 332| 2: [ReservedWord] ) # 333| 4: [ReservedWord] end # 335| 106: [Method] Method # 335| 0: [ReservedWord] def # 335| 1: [Identifier] foo # 335| 2: [MethodParameters] MethodParameters # 335| 0: [ReservedWord] ( # 335| 1: [Identifier] a # 335| 2: [ReservedWord] , # 335| 3: [Identifier] b # 335| 4: [ReservedWord] , # 335| 5: [ForwardParameter] ... # 335| 0: [ReservedWord] ... # 335| 6: [ReservedWord] ) # 336| 3: [Call] Call # 336| 0: [Identifier] bar # 336| 1: [ArgumentList] ArgumentList # 336| 0: [ReservedWord] ( # 336| 1: [Identifier] b # 336| 2: [ReservedWord] , # 336| 3: [ForwardArgument] ... # 336| 0: [ReservedWord] ... # 336| 4: [ReservedWord] ) # 337| 4: [ReservedWord] end # 340| 107: [For] For # 340| 0: [ReservedWord] for # 340| 1: [LeftAssignmentList] LeftAssignmentList # 340| 0: [Identifier] x # 340| 1: [ReservedWord] , # 340| 2: [Identifier] y # 340| 3: [ReservedWord] , # 340| 4: [Identifier] z # 340| 2: [In] In # 340| 0: [ReservedWord] in # 340| 1: [Array] Array # 340| 0: [ReservedWord] [ # 340| 1: [Array] Array # 340| 0: [ReservedWord] [ # 340| 1: [Integer] 1 # 340| 2: [ReservedWord] , # 340| 3: [Integer] 2 # 340| 4: [ReservedWord] , # 340| 5: [Integer] 3 # 340| 6: [ReservedWord] ] # 340| 2: [ReservedWord] , # 340| 3: [Array] Array # 340| 0: [ReservedWord] [ # 340| 1: [Integer] 4 # 340| 2: [ReservedWord] , # 340| 3: [Integer] 5 # 340| 4: [ReservedWord] , # 340| 5: [Integer] 6 # 340| 6: [ReservedWord] ] # 340| 4: [ReservedWord] ] # 340| 3: [Do] Do # 341| 0: [Call] Call # 341| 0: [Identifier] foo # 341| 1: [ArgumentList] ArgumentList # 341| 0: [Identifier] x # 341| 1: [ReservedWord] , # 341| 2: [Identifier] y # 341| 3: [ReservedWord] , # 341| 4: [Identifier] z # 342| 1: [ReservedWord] end # 344| 108: [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: [Integer] 42 # 344| 2: [ReservedWord] ) # 345| 109: [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: [ReservedWord] , # 345| 3: [Pair] Pair # 345| 0: [HashKeySymbol] novar # 345| 1: [ReservedWord] : # 345| 4: [ReservedWord] ) # 346| 110: [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: [Integer] 42 # 346| 2: [ReservedWord] ) # 347| 111: [Call] Call # 347| 0: [Identifier] foo # 347| 1: [ArgumentList] ArgumentList # 347| 0: [ReservedWord] ( # 347| 1: [Pair] Pair # 347| 0: [HashKeySymbol] X # 347| 1: [ReservedWord] : # 347| 2: [ReservedWord] ) # 350| 112: [Assignment] Assignment # 350| 0: [Identifier] y # 350| 1: [ReservedWord] = # 350| 2: [Integer] 1 # 351| 113: [Assignment] Assignment # 351| 0: [Identifier] one # 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: [Identifier] y # 351| 2: [ReservedWord] } # 352| 114: [Assignment] Assignment # 352| 0: [Identifier] f # 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: [Call] Call # 352| 0: [Identifier] foo # 352| 1: [ArgumentList] ArgumentList # 352| 0: [Identifier] x # 352| 2: [ReservedWord] } # 353| 115: [Assignment] Assignment # 353| 0: [Identifier] g # 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: [Block] Block # 353| 0: [ReservedWord] { # 353| 1: [Identifier] unknown_call # 353| 2: [ReservedWord] } # 354| 116: [Assignment] Assignment # 354| 0: [Identifier] h # 354| 1: [ReservedWord] = # 354| 2: [Lambda] Lambda # 354| 0: [ReservedWord] -> # 354| 1: [LambdaParameters] LambdaParameters # 354| 0: [ReservedWord] ( # 354| 1: [Identifier] x # 354| 2: [ReservedWord] ) # 354| 2: [DoBlock] DoBlock # 354| 0: [ReservedWord] do # 355| 1: [Identifier] x # 356| 2: [Identifier] y # 357| 3: [Identifier] unknown_call # 358| 4: [ReservedWord] end # 361| 117: [Call] Call # 361| 0: [Identifier] list # 361| 1: [ReservedWord] . # 361| 2: [Identifier] empty? # 362| 118: [Call] Call # 362| 0: [Identifier] list # 362| 1: [ReservedWord] &. # 362| 2: [Identifier] empty? # 363| 119: [Call] Call # 363| 0: [Identifier] list # 363| 1: [ReservedWord] :: # 363| 2: [Identifier] empty? # 364| 120: [Call] Call # 364| 0: [Identifier] foo # 364| 1: [ReservedWord] &. # 364| 2: [Identifier] bar # 364| 3: [ArgumentList] ArgumentList # 364| 0: [ReservedWord] ( # 364| 1: [Integer] 1 # 364| 2: [ReservedWord] , # 364| 3: [Integer] 2 # 364| 4: [ReservedWord] ) # 364| 4: [Block] Block # 364| 0: [ReservedWord] { # 364| 1: [BlockParameters] BlockParameters # 364| 0: [ReservedWord] | # 364| 1: [Identifier] x # 364| 2: [ReservedWord] | # 364| 2: [Identifier] x # 364| 3: [ReservedWord] } # 1| [Comment] # call with no receiver, arguments, or block # 4| [Comment] # call whose name is a scope resolution # 7| [Comment] # call whose name is a global scope resolution # 10| [Comment] # call with a receiver, no arguments or block # 13| [Comment] # call with arguments # 16| [Comment] # call with curly brace block # 19| [Comment] # call with do block # 24| [Comment] # call with receiver, arguments, and a block # 29| [Comment] # a yield call # 34| [Comment] # a yield call with arguments # 39| [Comment] # ------------------------------------------------------------------------------ # 40| [Comment] # Calls without parentheses or arguments are parsed by tree-sitter simply as # 41| [Comment] # `identifier` nodes (or `scope_resolution` nodes whose `name` field is an # 42| [Comment] # `identifier), so here we test that our AST library correctly represents them # 43| [Comment] # as calls in all the following contexts. # 45| [Comment] # root level (child of program) # 49| [Comment] # in a parenthesized statement # 53| [Comment] # in an argument list # 57| [Comment] # in an array # 61| [Comment] # RHS of an assignment # 65| [Comment] # RHS an operator assignment # 69| [Comment] # RHS assignment list # 72| [Comment] # in a begin-end block # 78| [Comment] # in a BEGIN block # 81| [Comment] # in an END block # 84| [Comment] # both operands of a binary operation # 87| [Comment] # unary operand # 91| [Comment] # in a curly brace block # 94| [Comment] # in a do-end block # 100| [Comment] # the receiver in a call can itself be a call # 104| [Comment] # the value for a case expr # 105| [Comment] # and the when pattern and body # 115| [Comment] # in a class definition # 121| [Comment] # in a superclass # 127| [Comment] # in a singleton class value or body # 135| [Comment] # in a method body # 141| [Comment] # in a singleton method object or body # 147| [Comment] # in the default value for a keyword parameter # 153| [Comment] # in the default value for an optional parameter # 159| [Comment] # in a module # 165| [Comment] # ternary if: condition, consequence, and alternative can all be calls # 169| [Comment] # if/elsif/else conditions and bodies # 185| [Comment] # if-modifier condition/body # 189| [Comment] # unless condition/body # 197| [Comment] # unless-modifier condition/body # 201| [Comment] # while loop condition/body # 209| [Comment] # while-modifier loop condition/body # 213| [Comment] # until loop condition/body # 221| [Comment] # until-modifier loop condition/body # 225| [Comment] # the collection being iterated over in a for loop, and the body # 233| [Comment] # in an array indexing operation, both the object and the index can be calls # 237| [Comment] # interpolation # 240| [Comment] # the scope in a scope resolution # 244| [Comment] # in a range # 248| [Comment] # the key/value in a hash pair # 251| [Comment] # rescue exceptions and ensure # 261| [Comment] # rescue-modifier body and handler # 265| [Comment] # block argument # 269| [Comment] # splat argument # 273| [Comment] # hash-splat argument # 277| [Comment] # the value in a keyword argument # 281| [Comment] # ------------------------------------------------------------------------------ # 282| [Comment] # calls to `super` # 297| [Comment] # ------------------------------------------------------------------------------ # 298| [Comment] # calls to methods simply named `super`, i.e. *not* calls to the same method in # 299| [Comment] # a parent classs, so these should be Call but not SuperCall # 305| [Comment] # we expect the receiver to be a SuperCall, while the outer call should not (it's just a regular Call) # 309| [Comment] # calls without method name # 313| [Comment] # setter calls # 322| [Comment] # endless method definitions # 330| [Comment] # forward parameter and forwarded arguments # 339| [Comment] # for loop over nested array # 349| [Comment] # calls inside lambdas # 360| [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: [Class] Class # 2| 0: [ReservedWord] class # 2| 1: [Constant] ClassA # 3| 2: [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| 3: [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| 4: [Module] Module # 8| 0: [ReservedWord] module # 8| 1: [Constant] ModuleB # 9| 2: [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| 3: [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| 4: [ReservedWord] end # 15| 5: [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: [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| 3: [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: [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| 4: [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| 5: [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: [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: [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: [Class] Class # 47| 0: [ReservedWord] class # 47| 1: [Constant] ClassB # 47| 2: [Superclass] Superclass # 47| 0: [ReservedWord] < # 47| 1: [Constant] Base # 48| 3: [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: [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| 3: [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: [Assignment] Assignment # 55| 0: [ClassVariable] @@fourty_four # 55| 1: [ReservedWord] = # 55| 2: [Constant] FOURTY_FOUR # 56| 4: [Assignment] Assignment # 56| 0: [Constant] FOURTY_FOUR # 56| 1: [ReservedWord] = # 56| 2: [Integer] 44 # 57| 5: [Assignment] Assignment # 57| 0: [ClassVariable] @@fourty_four # 57| 1: [ReservedWord] = # 57| 2: [Constant] FOURTY_FOUR # 58| 6: [ReservedWord] end # 59| 4: [ReservedWord] end # 61| 11: [Module] Module # 61| 0: [ReservedWord] module # 61| 1: [Constant] Mod1 # 62| 2: [Module] Module # 62| 0: [ReservedWord] module # 62| 1: [Constant] Mod3 # 63| 2: [Assignment] Assignment # 63| 0: [Constant] FOURTY_FIVE # 63| 1: [ReservedWord] = # 63| 2: [Integer] 45 # 64| 3: [ReservedWord] end # 65| 3: [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| 4: [ReservedWord] end # 68| 12: [Module] Module # 68| 0: [ReservedWord] module # 68| 1: [Constant] Mod4 # 69| 2: [Call] Call # 69| 0: [Identifier] include # 69| 1: [ArgumentList] ArgumentList # 69| 0: [Constant] Mod1 # 70| 3: [Module] Module # 70| 0: [ReservedWord] module # 70| 1: [ScopeResolution] ScopeResolution # 70| 0: [Constant] Mod3 # 70| 1: [ReservedWord] :: # 70| 2: [Constant] Mod5 # 71| 2: [Assignment] Assignment # 71| 0: [Constant] FOURTY_SIX # 71| 1: [ReservedWord] = # 71| 2: [Integer] 46 # 72| 3: [ReservedWord] end # 73| 4: [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| 5: [ReservedWord] end # 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 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: [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 # 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] # # 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] # 😊 # 28| [Comment] # # 29| [Comment] # # 30| [Comment] # # 31| [Comment] # # 32| [Comment] # # 33| [Comment] #
# 34| [Comment] # # 35| [Comment] # # 36| [Comment] # # 37| [Comment] # problem: only \c is parsed as part of the escape sequence # 38| [Comment] # 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] # # 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] # 😊 # 83| [Comment] # # 84| [Comment] # # 85| [Comment] # # 86| [Comment] # # 87| [Comment] # # 88| [Comment] # # 89| [Comment] # # 90| [Comment] # # 91| [Comment] # # 92| [Comment] # problem: only \c is parsed as part of the escape sequence # 93| [Comment] # 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: [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| 2: [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| 3: [ReservedWord] end gems/lib/test.rb: # 1| [Program] Program # 1| 0: [Class] Class # 1| 0: [ReservedWord] class # 1| 1: [Constant] Foo # 2| 2: [SingletonMethod] SingletonMethod # 2| 0: [ReservedWord] def # 2| 1: [Self] self # 2| 2: [ReservedWord] . # 2| 3: [Identifier] greet # 3| 4: [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: [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| 3: [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| 4: [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| 5: [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| 6: [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| 7: [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| 8: [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| 9: [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| 10: [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] <> # 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: [Assignment] Assignment # 88| 0: [InstanceVariable] @x # 88| 1: [ReservedWord] = # 88| 2: [Integer] 1 # 89| 3: [OperatorAssignment] OperatorAssignment # 89| 0: [InstanceVariable] @x # 89| 1: [ReservedWord] += # 89| 2: [Integer] 2 # 91| 4: [Assignment] Assignment # 91| 0: [ClassVariable] @@y # 91| 1: [ReservedWord] = # 91| 2: [Integer] 3 # 92| 5: [OperatorAssignment] OperatorAssignment # 92| 0: [ClassVariable] @@y # 92| 1: [ReservedWord] /= # 92| 2: [Integer] 4 # 93| 6: [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 # 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: [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: [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: [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: [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: [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: [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: [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: [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: [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: [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: [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: [Call] Call # 82| 0: [Identifier] proc # 82| 1: [ArgumentList] ArgumentList # 82| 0: [ReservedWord] ( # 82| 1: [BlockArgument] BlockArgument # 82| 0: [ReservedWord] & # 82| 2: [ReservedWord] ) # 83| 4: [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| 5: [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: [Call] Call # 86| 0: [Identifier] puts # 86| 1: [ArgumentList] ArgumentList # 86| 0: [Identifier] x # 86| 3: [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