File tree Expand file tree Collapse file tree 2 files changed +9
-4
lines changed
Expand file tree Collapse file tree 2 files changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -140,6 +140,8 @@ def compile
140140 end
141141
142142 class DynamicXStringNode < Base
143+ include XStringLineSplitter
144+
143145 handle :dxstr
144146
145147 def requires_semicolon ( code )
@@ -151,12 +153,13 @@ def compile
151153
152154 children . each do |part |
153155 if String === part
154- push part . to_s
156+ compile_split_lines ( part . to_s , @sexp )
157+
155158 needs_semicolon = true if requires_semicolon ( part . to_s )
156159 elsif part . type == :evstr
157160 push expr ( part [ 1 ] )
158161 elsif part . type == :str
159- push part . last . to_s
162+ compile_split_lines ( part . last . to_s , part )
160163 needs_semicolon = true if requires_semicolon ( part . last . to_s )
161164 else
162165 raise "Bad dxstr part"
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ def initialize(source, file)
1515 @cond = 0
1616 @cmdarg = 0
1717 @line = 1
18+ @tok_line = 1
1819 @column = 0
1920 @tok_column = 0
2021 @file = file
@@ -115,16 +116,17 @@ def matched
115116
116117 def line = ( line )
117118 @column = @tok_column = 0
118- @line = line
119+ @line = @tok_line = line
119120 end
120121
121122 def next_token
122123 token = self . yylex
123124 value = self . yylval
124- location = [ @line , @tok_column ]
125+ location = [ @tok_line , @tok_column ]
125126
126127 # once location is stored, ensure next token starts in correct place
127128 @tok_column = @column
129+ @tok_line = @line
128130
129131 [ token , [ value , location ] ]
130132 end
You can’t perform that action at this time.
0 commit comments