diff --git a/ruby/ql/test/library-tests/ast/Ast.expected b/ruby/ql/test/library-tests/ast/Ast.expected index 02a154516be..216edb2ee0e 100644 --- a/ruby/ql/test/library-tests/ast/Ast.expected +++ b/ruby/ql/test/library-tests/ast/Ast.expected @@ -1659,495 +1659,508 @@ literals/literals.rb: # 11| getStmt: [IntegerLiteral] 5_678 # 12| getStmt: [IntegerLiteral] 0 # 13| getStmt: [IntegerLiteral] 0d900 -# 16| getStmt: [IntegerLiteral] 0x1234 -# 17| getStmt: [IntegerLiteral] 0xdeadbeef -# 18| getStmt: [IntegerLiteral] 0xF00D_face -# 21| getStmt: [IntegerLiteral] 0123 -# 22| getStmt: [IntegerLiteral] 0o234 -# 23| getStmt: [IntegerLiteral] 0O45_6 -# 26| getStmt: [IntegerLiteral] 0b10010100 -# 27| getStmt: [IntegerLiteral] 0B011_01101 -# 30| getStmt: [FloatLiteral] 12.34 -# 31| getStmt: [FloatLiteral] 1234e-2 -# 32| getStmt: [FloatLiteral] 1.234E1 -# 35| getStmt: [RationalLiteral] 23r -# 36| getStmt: [RationalLiteral] 9.85r -# 39| getStmt: [ComplexLiteral] 2i -# 46| getStmt: [StringLiteral] "" -# 47| getStmt: [StringLiteral] "" -# 48| getStmt: [StringLiteral] "hello" -# 48| getComponent: [StringTextComponent] hello -# 49| getStmt: [StringLiteral] "goodbye" -# 49| getComponent: [StringTextComponent] goodbye -# 50| getStmt: [StringLiteral] "string with escaped \" quote" -# 50| getComponent: [StringTextComponent] string with escaped -# 50| getComponent: [StringEscapeSequenceComponent] \" -# 50| getComponent: [StringTextComponent] quote -# 51| getStmt: [StringLiteral] "string with " quote" -# 51| getComponent: [StringTextComponent] string with " quote -# 52| getStmt: [StringLiteral] "foo bar baz" -# 52| getComponent: [StringTextComponent] foo bar baz -# 53| getStmt: [StringLiteral] "foo bar baz" -# 53| getComponent: [StringTextComponent] foo bar baz -# 54| getStmt: [StringLiteral] "foo ' bar " baz'" -# 54| getComponent: [StringTextComponent] foo ' bar " baz' -# 55| getStmt: [StringLiteral] "FOO ' BAR " BAZ'" -# 55| getComponent: [StringTextComponent] FOO ' BAR " BAZ' -# 56| getStmt: [StringLiteral] "foo\ bar" -# 56| getComponent: [StringTextComponent] foo\ bar -# 57| getStmt: [StringLiteral] "foo\ bar" -# 57| getComponent: [StringTextComponent] foo -# 57| getComponent: [StringEscapeSequenceComponent] \ -# 57| getComponent: [StringTextComponent] bar -# 58| getStmt: [StringLiteral] "2 + 2 = #{...}" -# 58| getComponent: [StringTextComponent] 2 + 2 = -# 58| getComponent: [StringInterpolationComponent] #{...} -# 58| getStmt: [AddExpr] ... + ... -# 58| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 2 -# 58| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 2 -# 59| getStmt: [StringLiteral] "3 + 4 = #{...}" -# 59| getComponent: [StringTextComponent] 3 + 4 = -# 59| getComponent: [StringInterpolationComponent] #{...} -# 59| getStmt: [AddExpr] ... + ... -# 59| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 3 -# 59| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 4 -# 60| getStmt: [StringLiteral] "2 + 2 = #{ 2 + 2 }" -# 60| getComponent: [StringTextComponent] 2 + 2 = #{ 2 + 2 } -# 61| getStmt: [StringLiteral] "3 + 4 = #{ 3 + 4 }" -# 61| getComponent: [StringTextComponent] 3 + 4 = #{ 3 + 4 } -# 62| getStmt: [StringConcatenation] "..." "..." -# 62| getString: [StringLiteral] "foo" -# 62| getComponent: [StringTextComponent] foo -# 62| getString: [StringLiteral] "bar" -# 62| getComponent: [StringTextComponent] bar -# 62| getString: [StringLiteral] "baz" -# 62| getComponent: [StringTextComponent] baz -# 63| getStmt: [StringConcatenation] "..." "..." -# 63| getString: [StringLiteral] "foo" -# 63| getComponent: [StringTextComponent] foo -# 63| getString: [StringLiteral] "bar" -# 63| getComponent: [StringTextComponent] bar -# 63| getString: [StringLiteral] "baz" -# 63| getComponent: [StringTextComponent] baz -# 64| getStmt: [StringConcatenation] "..." "..." -# 64| getString: [StringLiteral] "foo" -# 64| getComponent: [StringTextComponent] foo -# 64| getString: [StringLiteral] "bar#{...}" -# 64| getComponent: [StringTextComponent] bar -# 64| getComponent: [StringInterpolationComponent] #{...} -# 64| getStmt: [MulExpr] ... * ... -# 64| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 1 -# 64| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 64| getString: [StringLiteral] "baz" -# 64| getComponent: [StringTextComponent] baz -# 65| getStmt: [StringLiteral] "foo #{...} qux" -# 65| getComponent: [StringTextComponent] foo -# 65| getComponent: [StringInterpolationComponent] #{...} -# 65| getStmt: [StringLiteral] "bar #{...} baz" -# 65| getComponent: [StringTextComponent] bar -# 65| getComponent: [StringInterpolationComponent] #{...} -# 65| getStmt: [AddExpr] ... + ... -# 65| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 2 -# 65| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 3 -# 65| getComponent: [StringTextComponent] baz -# 65| getComponent: [StringTextComponent] qux -# 66| getStmt: [StringLiteral] "foo #{...}" -# 66| getComponent: [StringTextComponent] foo -# 66| getComponent: [StringInterpolationComponent] #{...} -# 66| getStmt: [MethodCall] call to blah -# 66| getReceiver: [SelfVariableAccess] self -# 66| getStmt: [AddExpr] ... + ... -# 66| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 1 -# 66| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 9 -# 67| getStmt: [AssignExpr] ... = ... -# 67| getAnOperand/getLeftOperand: [LocalVariableAccess] bar -# 67| getAnOperand/getRightOperand: [StringLiteral] "bar" -# 67| getComponent: [StringTextComponent] bar -# 68| getStmt: [AssignExpr] ... = ... -# 68| getAnOperand/getLeftOperand: [ConstantAssignment] BAR -# 68| getAnOperand/getRightOperand: [StringLiteral] "bar" -# 68| getComponent: [StringTextComponent] bar -# 69| getStmt: [StringLiteral] "foo #{...}" -# 69| getComponent: [StringTextComponent] foo -# 69| getComponent: [StringInterpolationComponent] #{...} -# 69| getStmt: [LocalVariableAccess] bar -# 70| getStmt: [StringLiteral] "foo #{...}" -# 70| getComponent: [StringTextComponent] foo -# 70| getComponent: [StringInterpolationComponent] #{...} -# 70| getStmt: [ConstantReadAccess] BAR -# 73| getStmt: [CharacterLiteral] ?x -# 74| getStmt: [CharacterLiteral] ?\n -# 75| getStmt: [CharacterLiteral] ?\s -# 76| getStmt: [CharacterLiteral] ?\\ -# 77| getStmt: [CharacterLiteral] ?\u{58} -# 78| getStmt: [CharacterLiteral] ?\C-a -# 79| getStmt: [CharacterLiteral] ?\M-a -# 80| getStmt: [CharacterLiteral] ?\M-\C-a -# 81| getStmt: [CharacterLiteral] ?\C-\M-a -# 84| getStmt: [SymbolLiteral] :"" -# 85| getStmt: [SymbolLiteral] :hello -# 86| getStmt: [SymbolLiteral] :"foo bar" -# 86| getComponent: [StringTextComponent] foo bar -# 87| getStmt: [SymbolLiteral] :"bar baz" -# 87| getComponent: [StringTextComponent] bar baz -# 88| getStmt: [HashLiteral] {...} -# 88| getElement: [Pair] Pair -# 88| getKey: [SymbolLiteral] :foo -# 88| getValue: [StringLiteral] "bar" -# 88| getComponent: [StringTextComponent] bar -# 89| getStmt: [SymbolLiteral] :"wibble" -# 89| getComponent: [StringTextComponent] wibble -# 90| getStmt: [SymbolLiteral] :"wibble wobble" -# 90| getComponent: [StringTextComponent] wibble wobble -# 91| getStmt: [SymbolLiteral] :"foo_#{...}_#{...}_#{...}" -# 91| getComponent: [StringTextComponent] foo_ -# 91| getComponent: [StringInterpolationComponent] #{...} -# 91| getStmt: [AddExpr] ... + ... -# 91| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 2 -# 91| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 2 -# 91| getComponent: [StringTextComponent] _ -# 91| getComponent: [StringInterpolationComponent] #{...} -# 91| getStmt: [LocalVariableAccess] bar -# 91| getComponent: [StringTextComponent] _ -# 91| getComponent: [StringInterpolationComponent] #{...} -# 91| getStmt: [ConstantReadAccess] BAR -# 92| getStmt: [SymbolLiteral] :"foo_#{ 2 + 2}_#{bar}_#{BAR}" -# 92| getComponent: [StringTextComponent] foo_#{ 2 + 2}_#{bar}_#{BAR} -# 93| getStmt: [SymbolLiteral] :"foo_#{ 3 - 2 }" -# 93| getComponent: [StringTextComponent] foo_#{ 3 - 2 } -# 96| getStmt: [ArrayLiteral] [...] -# 97| getStmt: [ArrayLiteral] [...] -# 97| getElement: [IntegerLiteral] 1 -# 97| getElement: [IntegerLiteral] 2 -# 97| getElement: [IntegerLiteral] 3 -# 98| getStmt: [ArrayLiteral] [...] -# 98| getElement: [IntegerLiteral] 4 -# 98| getElement: [IntegerLiteral] 5 -# 98| getElement: [DivExpr] ... / ... -# 98| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 12 -# 98| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 2 -# 99| getStmt: [ArrayLiteral] [...] -# 99| getElement: [IntegerLiteral] 7 -# 99| getElement: [ArrayLiteral] [...] -# 99| getElement: [IntegerLiteral] 8 -# 99| getElement: [IntegerLiteral] 9 -# 102| getStmt: [ArrayLiteral] %w(...) -# 103| getStmt: [ArrayLiteral] %w(...) -# 103| getElement: [StringLiteral] "foo" -# 103| getComponent: [StringTextComponent] foo -# 103| getElement: [StringLiteral] "bar" -# 103| getComponent: [StringTextComponent] bar -# 103| getElement: [StringLiteral] "baz" -# 103| getComponent: [StringTextComponent] baz -# 104| getStmt: [ArrayLiteral] %w(...) -# 104| getElement: [StringLiteral] "foo" -# 104| getComponent: [StringTextComponent] foo -# 104| getElement: [StringLiteral] "bar" -# 104| getComponent: [StringTextComponent] bar -# 104| getElement: [StringLiteral] "baz" -# 104| getComponent: [StringTextComponent] baz -# 105| getStmt: [ArrayLiteral] %w(...) -# 105| getElement: [StringLiteral] "foo" -# 105| getComponent: [StringTextComponent] foo -# 105| getElement: [StringLiteral] "bar#{...}" -# 105| getComponent: [StringTextComponent] bar -# 105| getComponent: [StringInterpolationComponent] #{...} -# 105| getStmt: [AddExpr] ... + ... -# 105| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 1 -# 105| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 105| getElement: [StringLiteral] "#{...}" -# 105| getComponent: [StringInterpolationComponent] #{...} -# 105| getStmt: [LocalVariableAccess] bar -# 105| getElement: [StringLiteral] "#{...}" -# 105| getComponent: [StringInterpolationComponent] #{...} -# 105| getStmt: [ConstantReadAccess] BAR -# 105| getElement: [StringLiteral] "baz" -# 105| getComponent: [StringTextComponent] baz -# 106| getStmt: [ArrayLiteral] %w(...) -# 106| getElement: [StringLiteral] "foo" -# 106| getComponent: [StringTextComponent] foo -# 106| getElement: [StringLiteral] "bar#{1+1}" -# 106| getComponent: [StringTextComponent] bar#{1+1} -# 106| getElement: [StringLiteral] "#{bar}" -# 106| getComponent: [StringTextComponent] #{bar} -# 106| getElement: [StringLiteral] "#{BAR}" -# 106| getComponent: [StringTextComponent] #{BAR} -# 106| getElement: [StringLiteral] "baz" -# 106| getComponent: [StringTextComponent] baz -# 109| getStmt: [ArrayLiteral] %i(...) -# 110| getStmt: [ArrayLiteral] %i(...) -# 110| getElement: [SymbolLiteral] :"foo" -# 110| getComponent: [StringTextComponent] foo -# 110| getElement: [SymbolLiteral] :"bar" -# 110| getComponent: [StringTextComponent] bar -# 110| getElement: [SymbolLiteral] :"baz" -# 110| getComponent: [StringTextComponent] baz -# 111| getStmt: [ArrayLiteral] %i(...) -# 111| getElement: [SymbolLiteral] :"foo" -# 111| getComponent: [StringTextComponent] foo -# 111| getElement: [SymbolLiteral] :"bar" -# 111| getComponent: [StringTextComponent] bar -# 111| getElement: [SymbolLiteral] :"baz" -# 111| getComponent: [StringTextComponent] baz -# 112| getStmt: [ArrayLiteral] %i(...) -# 112| getElement: [SymbolLiteral] :"foo" -# 112| getComponent: [StringTextComponent] foo -# 112| getElement: [SymbolLiteral] :"bar#{...}" -# 112| getComponent: [StringTextComponent] bar -# 112| getComponent: [StringInterpolationComponent] #{...} -# 112| getStmt: [AddExpr] ... + ... -# 112| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 2 -# 112| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 4 -# 112| getElement: [SymbolLiteral] :"#{...}" -# 112| getComponent: [StringInterpolationComponent] #{...} -# 112| getStmt: [LocalVariableAccess] bar -# 112| getElement: [SymbolLiteral] :"#{...}" -# 112| getComponent: [StringInterpolationComponent] #{...} -# 112| getStmt: [ConstantReadAccess] BAR -# 112| getElement: [SymbolLiteral] :"baz" -# 112| getComponent: [StringTextComponent] baz -# 113| getStmt: [ArrayLiteral] %i(...) -# 113| getElement: [SymbolLiteral] :"foo" -# 113| getComponent: [StringTextComponent] foo -# 113| getElement: [SymbolLiteral] :"bar#{" -# 113| getComponent: [StringTextComponent] bar#{ -# 113| getElement: [SymbolLiteral] :"2" -# 113| getComponent: [StringTextComponent] 2 -# 113| getElement: [SymbolLiteral] :"+" -# 113| getComponent: [StringTextComponent] + -# 113| getElement: [SymbolLiteral] :"4" -# 113| getComponent: [StringTextComponent] 4 -# 113| getElement: [SymbolLiteral] :"}" -# 113| getComponent: [StringTextComponent] } -# 113| getElement: [SymbolLiteral] :"#{bar}" -# 113| getComponent: [StringTextComponent] #{bar} -# 113| getElement: [SymbolLiteral] :"#{BAR}" -# 113| getComponent: [StringTextComponent] #{BAR} -# 113| getElement: [SymbolLiteral] :"baz" -# 113| getComponent: [StringTextComponent] baz -# 116| getStmt: [HashLiteral] {...} -# 117| getStmt: [HashLiteral] {...} -# 117| getElement: [Pair] Pair -# 117| getKey: [SymbolLiteral] :foo -# 117| getValue: [IntegerLiteral] 1 -# 117| getElement: [Pair] Pair -# 117| getKey: [SymbolLiteral] :bar -# 117| getValue: [IntegerLiteral] 2 -# 117| getElement: [Pair] Pair -# 117| getKey: [StringLiteral] "baz" -# 117| getComponent: [StringTextComponent] baz -# 117| getValue: [IntegerLiteral] 3 -# 118| getStmt: [HashLiteral] {...} -# 118| getElement: [Pair] Pair -# 118| getKey: [SymbolLiteral] :foo -# 118| getValue: [IntegerLiteral] 7 -# 118| getElement: [HashSplatExpr] ** ... -# 118| getAnOperand/getOperand/getReceiver: [MethodCall] call to baz -# 118| getReceiver: [SelfVariableAccess] self -# 121| getStmt: [ParenthesizedExpr] ( ... ) -# 121| getStmt: [RangeLiteral] _ .. _ -# 121| getBegin: [IntegerLiteral] 1 -# 121| getEnd: [IntegerLiteral] 10 -# 122| getStmt: [ParenthesizedExpr] ( ... ) -# 122| getStmt: [RangeLiteral] _ ... _ -# 122| getBegin: [IntegerLiteral] 1 -# 122| getEnd: [IntegerLiteral] 10 -# 123| getStmt: [ParenthesizedExpr] ( ... ) -# 123| getStmt: [RangeLiteral] _ .. _ -# 123| getBegin: [IntegerLiteral] 1 -# 123| getEnd: [IntegerLiteral] 0 -# 124| getStmt: [ParenthesizedExpr] ( ... ) -# 124| getStmt: [RangeLiteral] _ .. _ -# 124| getBegin: [MethodCall] call to start -# 124| getReceiver: [SelfVariableAccess] self -# 124| getEnd: [AddExpr] ... + ... -# 124| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 2 -# 124| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 3 -# 125| getStmt: [ParenthesizedExpr] ( ... ) -# 125| getStmt: [RangeLiteral] _ .. _ -# 125| getBegin: [IntegerLiteral] 1 -# 126| getStmt: [ParenthesizedExpr] ( ... ) -# 126| getStmt: [RangeLiteral] _ .. _ -# 126| getEnd: [IntegerLiteral] 1 -# 127| getStmt: [ParenthesizedExpr] ( ... ) -# 127| getStmt: [SubExpr] ... - ... -# 127| getAnOperand/getLeftOperand/getReceiver: [RangeLiteral] _ .. _ -# 127| getBegin: [IntegerLiteral] 0 -# 127| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 130| getStmt: [SubshellLiteral] `ls -l` -# 130| getComponent: [StringTextComponent] ls -l -# 131| getStmt: [SubshellLiteral] `ls -l` -# 131| getComponent: [StringTextComponent] ls -l -# 132| getStmt: [SubshellLiteral] `du -d #{...} #{...} #{...}` -# 132| getComponent: [StringTextComponent] du -d -# 132| getComponent: [StringInterpolationComponent] #{...} -# 132| getStmt: [AddExpr] ... + ... -# 132| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 1 -# 132| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 132| getComponent: [StringTextComponent] -# 132| getComponent: [StringInterpolationComponent] #{...} -# 132| getStmt: [LocalVariableAccess] bar -# 132| getComponent: [StringTextComponent] -# 132| getComponent: [StringInterpolationComponent] #{...} -# 132| getStmt: [ConstantReadAccess] BAR -# 133| getStmt: [SubshellLiteral] `du -d #{...}` -# 133| getComponent: [StringTextComponent] du -d -# 133| getComponent: [StringInterpolationComponent] #{...} -# 133| getStmt: [SubExpr] ... - ... -# 133| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 5 -# 133| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 4 -# 136| getStmt: [RegExpLiteral] // -# 137| getStmt: [RegExpLiteral] /foo/ -# 137| getParsed: [RegExpConstant, RegExpNormalChar] foo -# 137| getComponent: [RegExpTextComponent] foo -# 138| getStmt: [RegExpLiteral] /foo/ -# 138| getParsed: [RegExpConstant, RegExpNormalChar] foo -# 138| getComponent: [RegExpTextComponent] foo -# 139| getStmt: [RegExpLiteral] /foo+\sbar\S/ -# 139| getParsed: [RegExpSequence] foo+\sbar\S -# 139| 0: [RegExpConstant, RegExpNormalChar] fo -# 139| 1: [RegExpPlus] o+ -# 139| 0: [RegExpConstant, RegExpNormalChar] o -# 139| 2: [RegExpCharacterClassEscape] \s -# 139| 3: [RegExpConstant, RegExpNormalChar] bar -# 139| 4: [RegExpCharacterClassEscape] \S -# 139| getComponent: [RegExpTextComponent] foo+ -# 139| getComponent: [RegExpEscapeSequenceComponent] \s -# 139| getComponent: [RegExpTextComponent] bar -# 139| getComponent: [RegExpEscapeSequenceComponent] \S -# 140| getStmt: [RegExpLiteral] /foo#{...}bar#{...}#{...}/ -# 140| getParsed: [RegExpConstant, RegExpNormalChar] foo2barbarbar -# 140| getComponent: [RegExpTextComponent] foo -# 140| getComponent: [RegExpInterpolationComponent] #{...} -# 140| getStmt: [AddExpr] ... + ... -# 140| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 1 -# 140| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 140| getComponent: [RegExpTextComponent] bar -# 140| getComponent: [RegExpInterpolationComponent] #{...} -# 140| getStmt: [LocalVariableAccess] bar -# 140| getComponent: [RegExpInterpolationComponent] #{...} -# 140| getStmt: [ConstantReadAccess] BAR -# 141| getStmt: [RegExpLiteral] /foo/ -# 141| getComponent: [RegExpTextComponent] foo -# 142| getStmt: [RegExpLiteral] // -# 143| getStmt: [RegExpLiteral] /foo/ -# 143| getParsed: [RegExpConstant, RegExpNormalChar] foo -# 143| getComponent: [RegExpTextComponent] foo -# 144| getStmt: [RegExpLiteral] /foo/ -# 144| getParsed: [RegExpConstant, RegExpNormalChar] foo -# 144| getComponent: [RegExpTextComponent] foo -# 145| getStmt: [RegExpLiteral] /foo+\sbar\S/ -# 145| getParsed: [RegExpSequence] foo+\sbar\S -# 145| 0: [RegExpConstant, RegExpNormalChar] fo -# 145| 1: [RegExpPlus] o+ -# 145| 0: [RegExpConstant, RegExpNormalChar] o -# 145| 2: [RegExpCharacterClassEscape] \s -# 145| 3: [RegExpConstant, RegExpNormalChar] bar -# 145| 4: [RegExpCharacterClassEscape] \S -# 145| getComponent: [RegExpTextComponent] foo+ -# 145| getComponent: [RegExpEscapeSequenceComponent] \s -# 145| getComponent: [RegExpTextComponent] bar -# 145| getComponent: [RegExpEscapeSequenceComponent] \S -# 146| getStmt: [RegExpLiteral] /foo#{...}bar#{...}#{...}/ -# 146| getParsed: [RegExpConstant, RegExpNormalChar] foo2barbarbar -# 146| getComponent: [RegExpTextComponent] foo -# 146| getComponent: [RegExpInterpolationComponent] #{...} -# 146| getStmt: [AddExpr] ... + ... -# 146| getAnOperand/getLeftOperand/getReceiver: [IntegerLiteral] 1 -# 146| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 146| getComponent: [RegExpTextComponent] bar -# 146| getComponent: [RegExpInterpolationComponent] #{...} -# 146| getStmt: [LocalVariableAccess] bar -# 146| getComponent: [RegExpInterpolationComponent] #{...} -# 146| getStmt: [ConstantReadAccess] BAR -# 147| getStmt: [RegExpLiteral] /foo/ -# 147| getComponent: [RegExpTextComponent] foo -# 150| getStmt: [StringLiteral] "abcdefghijklmnopqrstuvwxyzabcdef" -# 150| getComponent: [StringTextComponent] abcdefghijklmnopqrstuvwxyzabcdef -# 151| getStmt: [StringLiteral] "foobarfoobarfoobarfoobarfooba..." -# 151| getComponent: [StringTextComponent] foobarfoobarfoobarfoobarfoobarfoo -# 152| getStmt: [StringLiteral] "foobar\\foobar\\foobar\\fooba..." -# 152| getComponent: [StringTextComponent] foobar -# 152| getComponent: [StringEscapeSequenceComponent] \\ -# 152| getComponent: [StringTextComponent] foobar -# 152| getComponent: [StringEscapeSequenceComponent] \\ -# 152| getComponent: [StringTextComponent] foobar -# 152| getComponent: [StringEscapeSequenceComponent] \\ -# 152| getComponent: [StringTextComponent] foobar -# 152| getComponent: [StringEscapeSequenceComponent] \\ -# 152| getComponent: [StringTextComponent] foobar -# 155| getStmt: [MethodCall] call to run_sql -# 155| getReceiver: [SelfVariableAccess] self -# 155| getArgument: [HereDoc] <