diff --git a/diff b/diff new file mode 100644 index 0000000..b592341 --- /dev/null +++ b/diff @@ -0,0 +1,530 @@ +1 +2 +3 +-4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +-20 +-21 +22 +23 +24 +-25 +-26 +-27 +28 +29 +30 +-31 +-32 +-33 +34 +35 +36 +37 +38 +-39 +-40 +-41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +-57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +-67 +-68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +-81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +-114 +115 +116 +117 +118 +119 +121 +123 +125 +126 +127 +128 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +147 +148 +149 +151 +152 +154 +156 +157 +158 +159 +163 +164 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +178 +179 +180 +181 +182 +183 +184 +185 +187 +188 +189 +191 +194 +195 +196 +197 +198 +199 +200 +201 +204 +208 +209 +211 +212 +213 +214 +216 +217 +218 +228 +230 +231 +232 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +301 +302 +303 +304 +305 +306 +308 +310 +315 +316 +317 +318 +319 +321 +322 +324 +325 +326 +327 +329 +331 +333 +334 +335 +336 +339 +352 +354 +357 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +373 +374 +376 +417 +418 +419 +420 +421 +422 +424 +425 +427 +434 +435 +436 +438 +439 +440 +441 +443 +444 +448 +450 +454 +455 +457 +458 +460 +462 +465 +467 +468 +469 +470 +471 +473 +474 +476 +477 +478 +482 +483 +485 +488 +489 +490 +492 +493 +496 +497 +499 +503 +505 +506 +508 +509 +510 +511 +516 +517 +519 +520 +521 +522 +523 +524 +525 +526 +528 + + +-120 +-122 +-124 +-129 +-145 +-146 +-150 +-153 +-155 +-160 +-161 +-162 +-165 +-177 +-186 +-190 +-192 +-193 +-202 +-203 +-205 +-206 +-207 +-210 +-215 +-219 +-220 +-221 +-222 +-223 +-224 +-225 +-226 +-227 +-229 +-233 +-283 +-284 +-285 +-286 +-300 +-307 +-309 +-311 +-312 +-313 +-314 +-320 +-323 +-328 +-330 +-332 +-337 +-338 +-340 +-341 +-342 +-343 +-344 +-345 +-346 +-347 +-348 +-349 +-350 +-351 +-353 +-355 +-356 +-358 +-371 +-372 +-375 +-377 +-378 +-379 +-380 +-381 +-382 +-383 +-384 +-385 +-386 +-387 +-388 +-389 +-390 +-391 +-392 +-393 +-394 +-395 +-396 +-397 +-398 +-399 +-400 +-401 +-402 +-403 +-404 +-405 +-406 +-407 +-408 +-409 +-410 +-411 +-412 +-413 +-414 +-415 +-416 +-423 +-426 +-428 +-429 +-430 +-431 +-432 +-433 +-437 +-442 +-445 +-446 +-447 +-449 +-451 +-452 +-453 +-456 +-459 +-461 +-463 +-464 +-466 +-472 +-475 +-479 +-480 +-481 +-484 +-486 +-487 +-491 +-494 +-495 +-498 +-500 +-501 +-502 +-504 +-507 +-512 +-513 +-514 +-515 +-518 +-527 \ No newline at end of file diff --git a/log b/log new file mode 100644 index 0000000..fc7a18c --- /dev/null +++ b/log @@ -0,0 +1,6239 @@ +==> /Users/z7zmey/work/go/src/github.com/z7zmey/php-parser/example.php +2 +3 +474 +473 +468 +465 +448 +154 +151 +474 +473 +468 +465 +448 +438 +434 +156 +152 +149 +324 +467 +448 +438 +434 +63 +42 +5 +1 +474 +473 +458 +474 +473 +468 +465 +448 +154 +151 +474 +473 +468 +465 +448 +438 +434 +156 +152 +149 +331 +467 +448 +438 +434 +63 +42 +5 +1 +474 +473 +468 +465 +483 +482 +478 +474 +473 +468 +465 +448 +154 +151 +474 +473 +468 +465 +448 +438 +434 +156 +152 +149 +454 +455 +450 +441 +444 +438 +434 +63 +42 +5 +1 +3 +333 +483 +474 +473 +468 +465 +448 +154 +151 +474 +473 +468 +465 +448 +438 +434 +156 +152 +149 +327 +467 +448 +438 +434 +63 +42 +5 +1 +474 +473 +462 +483 +474 +473 +468 +465 +448 +154 +151 +474 +473 +468 +465 +448 +438 +434 +156 +152 +149 +329 +467 +448 +438 +434 +63 +42 +5 +1 +3 +333 +339 +474 +473 +468 +465 +448 +154 +151 +474 +473 +468 +465 +448 +438 +434 +156 +152 +149 +359 +228 +282 +435 +63 +42 +5 +1 +317 +88 +3 +336 +147 +88 +90 +3 +376 +373 +143 +140 +3 +336 +147 +89 +91 +142 +141 +138 +37 +92 +86 +6 +1 +95 +99 +104 +167 +201 +199 +198 +317 +88 +3 +336 +147 +88 +90 +3 +376 +373 +143 +140 +3 +336 +147 +89 +91 +142 +141 +138 +37 +194 +171 +166 +93 +87 +7 +1 +317 +88 +3 +336 +147 +88 +90 +3 +376 +373 +143 +140 +3 +336 +147 +89 +91 +142 +141 +138 +318 +37 +305 +435 +63 +42 +5 +1 +317 +88 +3 +336 +147 +88 +90 +3 +376 +373 +143 +140 +3 +336 +147 +89 +91 +142 +141 +138 +318 +37 +306 +435 +63 +42 +5 +1 +362 +424 +299 +435 +63 +42 +5 +1 +362 +424 +299 +435 +63 +42 +5 +1 +362 +424 +299 +435 +63 +42 +5 +1 +362 +424 +299 +435 +63 +42 +5 +1 +362 +424 +299 +435 +63 +42 +5 +1 +370 +424 +299 +435 +63 +42 +5 +1 +370 +424 +299 +435 +63 +42 +5 +1 +370 +424 +299 +435 +63 +42 +5 +1 +360 +424 +299 +435 +63 +42 +5 +1 +361 +424 +299 +435 +63 +42 +5 +1 +361 +424 +299 +435 +63 +42 +5 +1 +360 +424 +299 +435 +63 +42 +5 +1 +361 +424 +299 +435 +63 +42 +5 +1 +360 +424 +299 +435 +63 +42 +5 +1 +361 +424 +299 +435 +63 +42 +5 +1 +427 +299 +435 +63 +42 +5 +1 +365 +424 +299 +435 +63 +42 +5 +1 +364 +424 +299 +435 +63 +42 +5 +1 +368 +424 +299 +435 +63 +42 +5 +1 +363 +424 +299 +435 +63 +42 +5 +1 +369 +424 +299 +435 +63 +42 +5 +1 +367 +424 +299 +435 +63 +42 +5 +1 +366 +424 +299 +435 +63 +42 +5 +1 +506 +505 +425 +299 +435 +63 +42 +5 +1 +508 +505 +503 +425 +299 +435 +63 +42 +5 +1 +421 +299 +435 +509 +505 +425 +299 +435 +63 +42 +5 +1 +360 +424 +299 +435 +510 +505 +425 +299 +435 +63 +42 +5 +1 +474 +473 +468 +465 +483 +482 +478 +148 +454 +455 +450 +441 +444 +511 +505 +425 +299 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +132 +136 +46 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +132 +474 +473 +468 +465 +448 +438 +434 +436 +37 +133 +136 +46 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +132 +37 +137 +46 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +132 +474 +473 +468 +465 +448 +438 +434 +436 +37 +133 +474 +473 +468 +465 +448 +438 +434 +436 +37 +133 +37 +137 +46 +42 +5 +1 +360 +424 +299 +435 +436 +37 +51 +42 +38 +36 +44 +42 +128 +47 +42 +5 +1 +360 +424 +299 +435 +436 +37 +360 +424 +299 +435 +52 +42 +38 +36 +44 +42 +128 +47 +42 +5 +1 +360 +424 +299 +435 +436 +37 +360 +424 +299 +435 +436 +281 +435 +52 +42 +38 +36 +44 +42 +128 +47 +42 +5 +1 +95 +99 +104 +167 +360 +374 +373 +212 +360 +374 +373 +211 +169 +166 +93 +87 +7 +1 +95 +99 +104 +167 +197 +317 +88 +139 +37 +194 +171 +166 +93 +87 +7 +1 +95 +99 +104 +167 +201 +199 +204 +200 +198 +317 +89 +139 +37 +194 +171 +166 +93 +87 +7 +1 +95 +99 +104 +167 +201 +199 +204 +200 +198 +317 +89 +139 +37 +194 +171 +166 +93 +87 +7 +1 +96 +99 +104 +167 +93 +87 +7 +1 +98 +3 +336 +100 +104 +167 +93 +87 +7 +1 +98 +99 +3 +336 +106 +105 +167 +93 +87 +7 +1 +98 +99 +3 +336 +106 +3 +336 +107 +105 +167 +93 +87 +7 +1 +360 +374 +373 +35 +360 +374 +373 +34 +15 +1 +360 +424 +299 +435 +436 +37 +53 +42 +38 +36 +44 +42 +128 +47 +42 +5 +1 +360 +424 +299 +435 +436 +37 +360 +424 +299 +435 +54 +42 +38 +36 +44 +42 +128 +47 +42 +5 +1 +360 +424 +299 +435 +436 +37 +360 +424 +299 +435 +436 +281 +435 +54 +42 +38 +36 +44 +42 +128 +47 +42 +5 +1 +360 +374 +373 +119 +70 +42 +117 +69 +42 +5 +1 +360 +374 +373 +119 +37 +44 +42 +117 +69 +42 +5 +1 +360 +374 +373 +119 +37 +118 +69 +42 +5 +1 +37 +44 +42 +360 +424 +299 +435 +436 +48 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +214 +360 +424 +299 +435 +213 +61 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +281 +435 +214 +61 +42 +5 +1 +474 +473 +468 +465 +448 +360 +424 +299 +435 +231 +435 +218 +216 +474 +473 +468 +465 +448 +438 +434 +360 +424 +299 +435 +276 +435 +218 +216 +474 +473 +468 +465 +448 +440 +247 +435 +218 +474 +473 +468 +465 +448 +440 +247 +435 +217 +216 +37 +44 +42 +113 +49 +42 +5 +1 +474 +473 +468 +465 +448 +360 +424 +299 +435 +231 +435 +218 +216 +474 +473 +468 +465 +448 +438 +434 +360 +424 +299 +435 +276 +435 +218 +216 +474 +473 +468 +465 +448 +440 +247 +435 +218 +474 +473 +468 +465 +448 +440 +247 +435 +217 +216 +37 +114 +49 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +110 +108 +37 +44 +42 +115 +65 +42 +5 +1 +492 +316 +301 +474 +473 +468 +465 +448 +110 +108 +37 +44 +42 +115 +67 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +110 +108 +37 +116 +65 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +110 +474 +473 +468 +465 +448 +110 +109 +37 +44 +42 +115 +66 +42 +5 +1 +492 +316 +301 +474 +473 +468 +465 +448 +110 +474 +473 +468 +465 +448 +110 +109 +37 +44 +42 +115 +68 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +110 +474 +473 +468 +465 +448 +111 +109 +37 +44 +42 +115 +66 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +110 +474 +473 +468 +465 +448 +489 +488 +112 +109 +37 +44 +42 +115 +66 +42 +5 +1 +317 +88 +139 +37 +92 +86 +6 +1 +317 +88 +139 +37 +41 +36 +317 +88 +139 +37 +92 +86 +39 +36 +95 +99 +104 +167 +93 +87 +40 +36 +474 +473 +468 +465 +448 +57 +42 +38 +36 +92 +86 +6 +1 +317 +88 +139 +37 +55 +42 +38 +36 +92 +86 +6 +1 +317 +89 +139 +37 +360 +424 +299 +56 +42 +38 +36 +92 +86 +6 +1 +317 +89 +139 +37 +92 +86 +6 +1 +159 +158 +159 +157 +59 +42 +5 +1 +43 +5 +1 +73 +42 +5 +1 +8 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +130 +134 +45 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +130 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +131 +134 +45 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +130 +37 +44 +42 +135 +45 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +130 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +131 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +131 +37 +44 +42 +135 +45 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +130 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +131 +474 +473 +468 +465 +448 +438 +434 +436 +37 +44 +42 +130 +37 +44 +42 +135 +45 +42 +135 +45 +42 +5 +1 +70 +42 +5 +1 +62 +42 +5 +1 +101 +102 +167 +94 +87 +7 +1 +101 +3 +336 +106 +103 +167 +94 +87 +7 +1 +101 +3 +336 +106 +3 +336 +107 +103 +167 +94 +87 +7 +1 +3 +9 +1 +3 +4 +2 +10 +1 +2 +11 +1 +95 +99 +104 +167 +196 +209 +168 +166 +93 +87 +7 +1 +95 +99 +104 +167 +201 +199 +204 +200 +195 +209 +360 +374 +373 +208 +168 +166 +93 +87 +7 +1 +164 +360 +374 +373 +163 +60 +42 +5 +1 +360 +424 +299 +435 +436 +125 +360 +424 +299 +435 +37 +126 +37 +127 +360 +424 +299 +435 +37 +126 +123 +50 +42 +5 +1 +360 +424 +299 +435 +436 +125 +360 +424 +299 +435 +37 +51 +42 +38 +36 +126 +360 +424 +299 +435 +37 +51 +42 +38 +36 +126 +121 +50 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +72 +42 +5 +1 +97 +99 +104 +167 +93 +87 +7 +1 +95 +99 +104 +167 +3 +336 +173 +175 +172 +170 +166 +93 +87 +7 +1 +95 +99 +104 +167 +3 +336 +173 +3 +336 +174 +175 +172 +170 +166 +93 +87 +7 +1 +95 +99 +104 +167 +3 +336 +173 +3 +336 +174 +3 +336 +188 +3 +336 +184 +3 +336 +185 +183 +181 +179 +3 +336 +188 +187 +191 +189 +182 +180 +178 +176 +172 +170 +166 +93 +87 +7 +1 +37 +74 +76 +71 +42 +5 +1 +37 +3 +336 +37 +79 +75 +76 +71 +42 +5 +1 +37 +3 +336 +37 +3 +336 +37 +82 +80 +78 +75 +76 +71 +42 +5 +1 +37 +3 +336 +37 +3 +336 +37 +82 +80 +3 +336 +37 +82 +81 +78 +75 +76 +71 +42 +5 +1 +37 +3 +336 +37 +79 +75 +37 +77 +71 +42 +5 +1 +474 +473 +468 +465 +448 +85 +83 +474 +473 +468 +465 +448 +85 +84 +64 +42 +5 +1 +3 +18 +17 +12 +1 +3 +20 +17 +12 +1 +3 +21 +17 +12 +1 +3 +18 +17 +3 +18 +16 +12 +1 +3 +18 +17 +3 +19 +16 +12 +1 +3 +24 +23 +3 +26 +22 +13 +1 +3 +25 +23 +3 +27 +22 +13 +1 +3 +30 +29 +3 +32 +28 +14 +1 +3 +31 +29 +3 +33 +28 +14 +1 +474 +473 +360 +424 +299 +435 +477 +471 +468 +465 +448 +438 +434 +63 +42 +5 +1 +474 +473 +360 +424 +299 +435 +477 +471 +360 +424 +299 +435 +477 +471 +468 +465 +448 +438 +434 +63 +42 +5 +1 +492 +315 +301 +435 +63 +42 +5 +1 +360 +424 +299 +435 +497 +493 +315 +301 +435 +63 +42 +5 +1 +360 +424 +299 +435 +360 +424 +299 +435 +496 +474 +473 +468 +465 +448 +439 +499 +493 +315 +301 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +271 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +270 +435 +63 +42 +5 +1 +3 +333 +528 +417 +422 +299 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +281 +435 +234 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +234 +435 +63 +42 +5 +1 +317 +88 +139 +318 +37 +305 +435 +63 +42 +5 +1 +317 +88 +144 +88 +90 +142 +140 +144 +88 +90 +142 +141 +138 +322 +321 +319 +37 +305 +435 +63 +42 +5 +1 +317 +88 +139 +318 +37 +305 +435 +63 +42 +5 +1 +3 +418 +422 +299 +435 +63 +42 +5 +1 +3 +419 +422 +299 +435 +63 +42 +5 +1 +3 +420 +422 +299 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +517 +289 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +298 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +521 +289 +435 +63 +42 +5 +1 +352 +297 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +354 +297 +435 +63 +42 +5 +1 +352 +297 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +354 +297 +435 +63 +42 +5 +1 +3 +148 +324 +467 +448 +438 +434 +63 +42 +5 +1 +3 +148 +325 +467 +448 +438 +434 +63 +42 +5 +1 +3 +148 +326 +467 +448 +438 +434 +63 +42 +5 +1 +474 +473 +458 +148 +331 +467 +448 +438 +434 +63 +42 +5 +1 +474 +473 +468 +465 +448 +440 +249 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +440 +247 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +440 +250 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +440 +248 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +519 +289 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +520 +289 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +522 +289 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +523 +289 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +3 +333 +339 +280 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +3 +334 +339 +280 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +3 +335 +339 +280 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +526 +524 +474 +473 +468 +465 +448 +526 +525 +516 +289 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +489 +488 +474 +473 +468 +465 +448 +438 +434 +230 +435 +63 +42 +5 +1 +474 +473 +476 +471 +468 +465 +448 +489 +488 +474 +473 +468 +465 +448 +438 +434 +230 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +489 +488 +490 +488 +474 +473 +468 +465 +448 +438 +434 +230 +435 +63 +42 +5 +1 +474 +473 +468 +465 +483 +482 +478 +148 +454 +455 +450 +441 +444 +438 +434 +63 +42 +5 +1 +3 +333 +339 +148 +359 +228 +282 +435 +63 +42 +5 +1 +3 +334 +339 +148 +359 +228 +282 +435 +63 +42 +5 +1 +3 +335 +339 +148 +359 +228 +282 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +436 +281 +435 +303 +435 +63 +42 +5 +1 +474 +473 +468 +465 +483 +482 +478 +457 +450 +441 +443 +438 +434 +63 +42 +5 +1 +506 +505 +357 +302 +435 +63 +42 +5 +1 +492 +316 +301 +435 +63 +42 +5 +1 +360 +424 +299 +435 +497 +493 +316 +301 +435 +63 +42 +5 +1 +360 +424 +299 +435 +360 +424 +299 +435 +496 +474 +473 +468 +465 +448 +439 +499 +493 +316 +301 +435 +63 +42 +5 +1 +3 +333 +483 +148 +327 +467 +448 +438 +434 +63 +42 +5 +1 +3 +334 +483 +148 +327 +467 +448 +438 +434 +63 +42 +5 +1 +3 +335 +483 +148 +327 +467 +448 +438 +434 +63 +42 +5 +1 +3 +333 +474 +473 +458 +460 +470 +465 +448 +438 +434 +63 +42 +5 +1 +3 +334 +474 +473 +458 +460 +470 +465 +448 +438 +434 +63 +42 +5 +1 +3 +335 +474 +473 +458 +460 +470 +465 +448 +438 +434 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +287 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +288 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +287 +435 +474 +473 +468 +465 +448 +438 +434 +287 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +287 +435 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +287 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +269 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +268 +435 +63 +42 +5 +1 +485 +474 +473 +469 +465 +448 +438 +434 +63 +42 +5 +1 +304 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +308 +58 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +310 +58 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +293 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +295 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +295 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +291 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +291 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +290 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +290 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +294 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +292 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +296 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +257 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +256 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +258 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +252 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +251 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +259 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +264 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +274 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +279 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +278 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +272 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +254 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +253 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +255 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +261 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +265 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +262 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +275 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +273 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +260 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +263 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +266 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +267 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +277 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +438 +434 +474 +473 +468 +465 +448 +438 +434 +276 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +232 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +231 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +242 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +243 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +244 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +240 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +239 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +236 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +241 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +237 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +235 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +238 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +245 +435 +63 +42 +5 +1 +474 +473 +468 +465 +448 +474 +473 +468 +465 +448 +438 +434 +246 +435 +63 +42 +5 +1 + | *stmt.StmtList + | "Stmts": + | *stmt.Expression Pos{Line: 2-2 Pos: 6-20} + | "Expr": + | *expr.FunctionCall Pos{Line: 2-2 Pos: 6-19} + | "Function": + | *name.Name Pos{Line: 2-2 Pos: 6-8} + | "Parts": + | *name.NamePart Pos{Line: 2-2 Pos: 6-8} map[Value:foo] + | "Arguments": + | *node.Argument Pos{Line: 2-2 Pos: 10-11} map[Variadic:false IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 2-2 Pos: 10-11} + | "VarName": + | *node.Identifier Pos{Line: 2-2 Pos: 10-11} map[Value:$a] + | *node.Argument Pos{Line: 2-2 Pos: 14-18} map[Variadic:true IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 2-2 Pos: 17-18} + | "VarName": + | *node.Identifier Pos{Line: 2-2 Pos: 17-18} map[Value:$b] + | *stmt.Expression Pos{Line: 3-3 Pos: 24-39} + | "Expr": + | *expr.FunctionCall Pos{Line: 3-3 Pos: 24-38} + | "Function": + | *expr.Variable Pos{Line: 3-3 Pos: 24-27} + | "VarName": + | *node.Identifier Pos{Line: 3-3 Pos: 24-27} map[Value:$foo] + | "Arguments": + | *node.Argument Pos{Line: 3-3 Pos: 29-30} map[Variadic:false IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 3-3 Pos: 29-30} + | "VarName": + | *node.Identifier Pos{Line: 3-3 Pos: 29-30} map[Value:$a] + | *node.Argument Pos{Line: 3-3 Pos: 33-37} map[Variadic:true IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 3-3 Pos: 36-37} + | "VarName": + | *node.Identifier Pos{Line: 3-3 Pos: 36-37} map[Value:$b] + | *stmt.Expression Pos{Line: 4-4 Pos: 53-63} + | "Expr": + | *expr.MethodCall Pos{Line: 4-4 Pos: 53-62} + | "Variable": + | *expr.Variable Pos{Line: 4-4 Pos: 43-62} + | "VarName": + | *node.Identifier Pos{Line: 4-4 Pos: 43-46} map[Value:$foo] + | "Method": + | *node.Identifier Pos{Line: 4-4 Pos: 49-51} map[Value:bar] + | "Arguments": + | *node.Argument Pos{Line: 4-4 Pos: 53-54} map[Variadic:false IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 4-4 Pos: 53-54} + | "VarName": + | *node.Identifier Pos{Line: 4-4 Pos: 53-54} map[Value:$a] + | *node.Argument Pos{Line: 4-4 Pos: 57-61} map[Variadic:true IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 4-4 Pos: 60-61} + | "VarName": + | *node.Identifier Pos{Line: 4-4 Pos: 60-61} map[Value:$b] + | *stmt.Expression Pos{Line: 5-5 Pos: 67-86} + | "Expr": + | *expr.StaticCall Pos{Line: 5-5 Pos: 67-85} + | "Class": + | *name.Name Pos{Line: 5-5 Pos: 67-69} + | "Parts": + | *name.NamePart Pos{Line: 5-5 Pos: 67-69} map[Value:foo] + | "Call": + | *node.Identifier Pos{Line: 5-5 Pos: 72-74} map[Value:bar] + | "Arguments": + | *node.Argument Pos{Line: 5-5 Pos: 76-77} map[Variadic:false IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 5-5 Pos: 76-77} + | "VarName": + | *node.Identifier Pos{Line: 5-5 Pos: 76-77} map[Value:$a] + | *node.Argument Pos{Line: 5-5 Pos: 80-84} map[Variadic:true IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 5-5 Pos: 83-84} + | "VarName": + | *node.Identifier Pos{Line: 5-5 Pos: 83-84} map[Value:$b] + | *stmt.Expression Pos{Line: 6-6 Pos: 90-110} + | "Expr": + | *expr.StaticCall Pos{Line: 6-6 Pos: 90-109} + | "Class": + | *expr.Variable Pos{Line: 6-6 Pos: 90-93} + | "VarName": + | *node.Identifier Pos{Line: 6-6 Pos: 90-93} map[Value:$foo] + | "Call": + | *node.Identifier Pos{Line: 6-6 Pos: 96-98} map[Value:bar] + | "Arguments": + | *node.Argument Pos{Line: 6-6 Pos: 100-101} map[Variadic:false IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 6-6 Pos: 100-101} + | "VarName": + | *node.Identifier Pos{Line: 6-6 Pos: 100-101} map[Value:$a] + | *node.Argument Pos{Line: 6-6 Pos: 104-108} map[Variadic:true IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 6-6 Pos: 107-108} + | "VarName": + | *node.Identifier Pos{Line: 6-6 Pos: 107-108} map[Value:$b] + | *stmt.Expression Pos{Line: 7-7 Pos: 114-132} + | "Expr": + | *expr.New Pos{Line: 7-7 Pos: 114-131} + | "Class": + | *name.Name Pos{Line: 7-7 Pos: 118-120} + | "Parts": + | *name.NamePart Pos{Line: 7-7 Pos: 118-120} map[Value:foo] + | "Arguments": + | *node.Argument Pos{Line: 7-7 Pos: 122-123} map[Variadic:false IsReference:false] + | "Expr": + | *expr.Variable Pos{Line: 7-7 Pos: 122-123} + | "VarName": + | *node.Identifier Pos{Line: 7-7 Pos: 122-123} map[Value:$a] + | *node.Argument Pos{Line: 7-7 Pos: 126-130} map[IsReference:false Variadic:true] + | "Expr": + | *expr.Variable Pos{Line: 7-7 Pos: 129-130} + | "VarName": + | *node.Identifier Pos{Line: 7-7 Pos: 129-130} map[Value:$b] + | *stmt.Function Pos{Line: 9-9 Pos: 137-180} map[ReturnsRef:false PhpDocComment:] + | "FunctionName": + | *node.Identifier Pos{Line: 9-9 Pos: 146-148} map[Value:foo] + | "Params": + | *node.Parameter Pos{Line: 9-9 Pos: 150-162} map[ByRef:false Variadic:false] + | "VariableType": + | *name.Name Pos{Line: 9-9 Pos: 150-152} + | "Parts": + | *name.NamePart Pos{Line: 9-9 Pos: 150-152} map[Value:bar] + | "Variable": + | *expr.Variable Pos{Line: 9-9 Pos: 154-157} + | "VarName": + | *node.Identifier Pos{Line: 9-9 Pos: 154-157} map[Value:$bar] + | "DefaultValue": + | *expr.ConstFetch Pos{Line: 9-9 Pos: 159-162} + | "Constant": + | *name.Name Pos{Line: 9-9 Pos: 159-162} + | "Parts": + | *name.NamePart Pos{Line: 9-9 Pos: 159-162} map[Value:null] + | *node.Parameter Pos{Line: 9-9 Pos: 165-176} map[ByRef:true Variadic:true] + | "VariableType": + | *name.Name Pos{Line: 9-9 Pos: 165-167} + | "Parts": + | *name.NamePart Pos{Line: 9-9 Pos: 165-167} map[Value:baz] + | "Variable": + | *expr.Variable Pos{Line: 9-9 Pos: 173-176} + | "VarName": + | *node.Identifier Pos{Line: 9-9 Pos: 173-176} map[Value:$baz] + | "Stmts": + | *stmt.Class Pos{Line: 10-10 Pos: 184-188} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 10-10 Pos: 190-192} map[Value:foo] + | "Stmts": + | *stmt.ClassMethod Pos{Line: 10-10 Pos: 195-245} map[ReturnsRef:false PhpDocComment:] + | "MethodName": + | *node.Identifier Pos{Line: 10-10 Pos: 211-213} map[Value:foo] + | "Modifiers": + | *node.Identifier Pos{Line: 10-10 Pos: 195-200} map[Value:public] + | "Params": + | *node.Parameter Pos{Line: 10-10 Pos: 215-227} map[ByRef:false Variadic:false] + | "VariableType": + | *name.Name Pos{Line: 10-10 Pos: 215-217} + | "Parts": + | *name.NamePart Pos{Line: 10-10 Pos: 215-217} map[Value:bar] + | "Variable": + | *expr.Variable Pos{Line: 10-10 Pos: 219-222} + | "VarName": + | *node.Identifier Pos{Line: 10-10 Pos: 219-222} map[Value:$bar] + | "DefaultValue": + | *expr.ConstFetch Pos{Line: 10-10 Pos: 224-227} + | "Constant": + | *name.Name Pos{Line: 10-10 Pos: 224-227} + | "Parts": + | *name.NamePart Pos{Line: 10-10 Pos: 224-227} map[Value:null] + | *node.Parameter Pos{Line: 10-10 Pos: 230-241} map[ByRef:true Variadic:true] + | "VariableType": + | *name.Name Pos{Line: 10-10 Pos: 230-232} + | "Parts": + | *name.NamePart Pos{Line: 10-10 Pos: 230-232} map[Value:baz] + | "Variable": + | *expr.Variable Pos{Line: 10-10 Pos: 238-241} + | "VarName": + | *node.Identifier Pos{Line: 10-10 Pos: 238-241} map[Value:$baz] + | "Stmts": + | *stmt.Expression Pos{Line: 11-11 Pos: 250-290} + | "Expr": + | *expr.Closure Pos{Line: 11-11 Pos: 250-289} map[ReturnsRef:false Static:false PhpDocComment:] + | "Params": + | *node.Parameter Pos{Line: 11-11 Pos: 259-271} map[ByRef:false Variadic:false] + | "VariableType": + | *name.Name Pos{Line: 11-11 Pos: 259-261} + | "Parts": + | *name.NamePart Pos{Line: 11-11 Pos: 259-261} map[Value:bar] + | "Variable": + | *expr.Variable Pos{Line: 11-11 Pos: 263-266} + | "VarName": + | *node.Identifier Pos{Line: 11-11 Pos: 263-266} map[Value:$bar] + | "DefaultValue": + | *expr.ConstFetch Pos{Line: 11-11 Pos: 268-271} + | "Constant": + | *name.Name Pos{Line: 11-11 Pos: 268-271} + | "Parts": + | *name.NamePart Pos{Line: 11-11 Pos: 268-271} map[Value:null] + | *node.Parameter Pos{Line: 11-11 Pos: 274-285} map[ByRef:true Variadic:true] + | "VariableType": + | *name.Name Pos{Line: 11-11 Pos: 274-276} + | "Parts": + | *name.NamePart Pos{Line: 11-11 Pos: 274-276} map[Value:baz] + | "Variable": + | *expr.Variable Pos{Line: 11-11 Pos: 282-285} + | "VarName": + | *node.Identifier Pos{Line: 11-11 Pos: 282-285} map[Value:$baz] + | "Uses": + | "Stmts": + | *stmt.Expression Pos{Line: 12-12 Pos: 294-341} + | "Expr": + | *expr.Closure Pos{Line: 12-12 Pos: 294-340} map[ReturnsRef:false Static:true PhpDocComment:] + | "Params": + | *node.Parameter Pos{Line: 12-12 Pos: 310-322} map[ByRef:false Variadic:false] + | "VariableType": + | *name.Name Pos{Line: 12-12 Pos: 310-312} + | "Parts": + | *name.NamePart Pos{Line: 12-12 Pos: 310-312} map[Value:bar] + | "Variable": + | *expr.Variable Pos{Line: 12-12 Pos: 314-317} + | "VarName": + | *node.Identifier Pos{Line: 12-12 Pos: 314-317} map[Value:$bar] + | "DefaultValue": + | *expr.ConstFetch Pos{Line: 12-12 Pos: 319-322} + | "Constant": + | *name.Name Pos{Line: 12-12 Pos: 319-322} + | "Parts": + | *name.NamePart Pos{Line: 12-12 Pos: 319-322} map[Value:null] + | *node.Parameter Pos{Line: 12-12 Pos: 325-336} map[ByRef:true Variadic:true] + | "VariableType": + | *name.Name Pos{Line: 12-12 Pos: 325-327} + | "Parts": + | *name.NamePart Pos{Line: 12-12 Pos: 325-327} map[Value:baz] + | "Variable": + | *expr.Variable Pos{Line: 12-12 Pos: 333-336} + | "VarName": + | *node.Identifier Pos{Line: 12-12 Pos: 333-336} map[Value:$baz] + | "Uses": + | "Stmts": + | *stmt.Expression Pos{Line: 14-14 Pos: 346-352} + | "Expr": + | *scalar.String Pos{Line: 14-14 Pos: 346-351} map[Value:"test"] + | *stmt.Expression Pos{Line: 15-15 Pos: 356-364} + | "Expr": + | *scalar.String Pos{Line: 15-15 Pos: 356-363} map[Value:"\$test"] + | *stmt.Expression Pos{Line: 16-18 Pos: 368-381} + | "Expr": + | *scalar.String Pos{Line: 16-18 Pos: 368-380} map[Value:" + test + "] + | *stmt.Expression Pos{Line: 19-19 Pos: 385-392} + | "Expr": + | *scalar.String Pos{Line: 19-19 Pos: 385-391} map[Value:'$test'] + | *stmt.Expression Pos{Line: 20-22 Pos: 396-410} + | "Expr": + | *scalar.String Pos{Line: 20-22 Pos: 396-409} map[Value:' + $test + '] + | *stmt.Expression Pos{Line: 23-25 Pos: 414-431} + | "Expr": + | *scalar.String Pos{Line: 23-25 Pos: 414-430} map[Value: hello +] + | *stmt.Expression Pos{Line: 26-28 Pos: 435-454} + | "Expr": + | *scalar.String Pos{Line: 26-28 Pos: 435-453} map[Value: hello +] + | *stmt.Expression Pos{Line: 29-31 Pos: 458-484} + | "Expr": + | *scalar.String Pos{Line: 29-31 Pos: 458-483} map[Value: hello $world +] + | *stmt.Expression Pos{Line: 33-33 Pos: 489-508} + | "Expr": + | *scalar.Lnumber Pos{Line: 33-33 Pos: 489-507} map[Value:1234567890123456789] + | *stmt.Expression Pos{Line: 34-34 Pos: 512-532} + | "Expr": + | *scalar.Dnumber Pos{Line: 34-34 Pos: 512-531} map[Value:12345678901234567890] + | *stmt.Expression Pos{Line: 35-35 Pos: 536-538} + | "Expr": + | *scalar.Dnumber Pos{Line: 35-35 Pos: 536-537} map[Value:0.] + | *stmt.Expression Pos{Line: 36-36 Pos: 542-608} + | "Expr": + | *scalar.Lnumber Pos{Line: 36-36 Pos: 542-607} map[Value:0b0111111111111111111111111111111111111111111111111111111111111111] + | *stmt.Expression Pos{Line: 37-37 Pos: 612-678} + | "Expr": + | *scalar.Dnumber Pos{Line: 37-37 Pos: 612-677} map[Value:0b1111111111111111111111111111111111111111111111111111111111111111] + | *stmt.Expression Pos{Line: 38-38 Pos: 682-702} + | "Expr": + | *scalar.Lnumber Pos{Line: 38-38 Pos: 682-701} map[Value:0x007111111111111111] + | *stmt.Expression Pos{Line: 39-39 Pos: 706-724} + | "Expr": + | *scalar.Dnumber Pos{Line: 39-39 Pos: 706-723} map[Value:0x8111111111111111] + | *stmt.Expression Pos{Line: 40-40 Pos: 728-737} + | "Expr": + | *scalar.MagicConstant Pos{Line: 40-40 Pos: 728-736} map[Value:__CLASS__] + | *stmt.Expression Pos{Line: 41-41 Pos: 741-748} + | "Expr": + | *scalar.MagicConstant Pos{Line: 41-41 Pos: 741-747} map[Value:__DIR__] + | *stmt.Expression Pos{Line: 42-42 Pos: 752-760} + | "Expr": + | *scalar.MagicConstant Pos{Line: 42-42 Pos: 752-759} map[Value:__FILE__] + | *stmt.Expression Pos{Line: 43-43 Pos: 764-776} + | "Expr": + | *scalar.MagicConstant Pos{Line: 43-43 Pos: 764-775} map[Value:__FUNCTION__] + | *stmt.Expression Pos{Line: 44-44 Pos: 780-788} + | "Expr": + | *scalar.MagicConstant Pos{Line: 44-44 Pos: 780-787} map[Value:__LINE__] + | *stmt.Expression Pos{Line: 45-45 Pos: 792-805} + | "Expr": + | *scalar.MagicConstant Pos{Line: 45-45 Pos: 792-804} map[Value:__NAMESPACE__] + | *stmt.Expression Pos{Line: 46-46 Pos: 809-819} + | "Expr": + | *scalar.MagicConstant Pos{Line: 46-46 Pos: 809-818} map[Value:__METHOD__] + | *stmt.Expression Pos{Line: 47-47 Pos: 823-832} + | "Expr": + | *scalar.MagicConstant Pos{Line: 47-47 Pos: 823-831} map[Value:__TRAIT__] + | *stmt.Expression Pos{Line: 49-49 Pos: 837-848} + | "Expr": + | *scalar.Encapsed Pos{Line: 49-49 Pos: 837-847} + | "Parts": + | *scalar.EncapsedStringPart Pos{Line: 49-49 Pos: 838-842} map[Value:test ] + | *expr.Variable Pos{Line: 49-49 Pos: 843-846} + | "VarName": + | *node.Identifier Pos{Line: 49-49 Pos: 843-846} map[Value:$var] + | *stmt.Expression Pos{Line: 50-50 Pos: 852-870} + | "Expr": + | *scalar.Encapsed Pos{Line: 50-50 Pos: 852-869} + | "Parts": + | *scalar.EncapsedStringPart Pos{Line: 50-50 Pos: 853-857} map[Value:test ] + | *expr.PropertyFetch Pos{Line: 50-50 Pos: 858-866} + | "Variable": + | *expr.Variable Pos{Line: 50-50 Pos: 858-861} + | "VarName": + | *node.Identifier Pos{Line: 50-50 Pos: 858-861} map[Value:$foo] + | "Property": + | *node.Identifier Pos{Line: 50-50 Pos: 864-866} map[Value:bar] + | *scalar.EncapsedStringPart Pos{Line: 50-50 Pos: 867-868} map[Value:()] + | *stmt.Expression Pos{Line: 51-51 Pos: 874-887} + | "Expr": + | *scalar.Encapsed Pos{Line: 51-51 Pos: 874-886} + | "Parts": + | *scalar.EncapsedStringPart Pos{Line: 51-51 Pos: 875-879} map[Value:test ] + | *expr.Variable Pos{Line: 51-51 Pos: 880-885} + | "VarName": + | *node.Identifier Pos{Line: 51-51 Pos: 882-884} map[Value:foo] + | *stmt.Expression Pos{Line: 52-52 Pos: 891-907} + | "Expr": + | *scalar.Encapsed Pos{Line: 52-52 Pos: 891-906} + | "Parts": + | *scalar.EncapsedStringPart Pos{Line: 52-52 Pos: 892-896} map[Value:test ] + | *expr.ArrayDimFetch Pos{Line: 52-52 Pos: 897-905} + | "Variable": + | *expr.Variable Pos{Line: 52-52 Pos: 899-901} + | "VarName": + | *node.Identifier Pos{Line: 52-52 Pos: 899-901} map[Value:foo] + | "Dim": + | *scalar.Lnumber Pos{Line: 52-52 Pos: 903-903} map[Value:0] + | *stmt.Expression Pos{Line: 53-53 Pos: 911-931} + | "Expr": + | *scalar.Encapsed Pos{Line: 53-53 Pos: 911-930} + | "Parts": + | *scalar.EncapsedStringPart Pos{Line: 53-53 Pos: 912-916} map[Value:test ] + | *expr.MethodCall Pos{Line: -1-53 Pos: -1-928} + | "Variable": + | *expr.Variable Pos{Line: 53-53 Pos: 918-928} + | "VarName": + | *node.Identifier Pos{Line: 53-53 Pos: 918-921} map[Value:$foo] + | "Method": + | *node.Identifier Pos{Line: 53-53 Pos: 924-926} map[Value:bar] + | "Arguments": + | *stmt.AltIf Pos{Line: 55-56 Pos: 936-953} + | "Cond": + | *expr.Variable Pos{Line: 55-55 Pos: 940-941} + | "VarName": + | *node.Identifier Pos{Line: 55-55 Pos: 940-941} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | *stmt.AltIf Pos{Line: 57-59 Pos: 957-989} + | "Cond": + | *expr.Variable Pos{Line: 57-57 Pos: 961-962} + | "VarName": + | *node.Identifier Pos{Line: 57-57 Pos: 961-962} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | "ElseIf": + | *stmt.AltElseIf Pos{Line: 58--1 Pos: 969--1} + | "Cond": + | *expr.Variable Pos{Line: 58-58 Pos: 977-978} + | "VarName": + | *node.Identifier Pos{Line: 58-58 Pos: 977-978} map[Value:$b] + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | *stmt.AltIf Pos{Line: 60-62 Pos: 993-1018} + | "Cond": + | *expr.Variable Pos{Line: 60-60 Pos: 997-998} + | "VarName": + | *node.Identifier Pos{Line: 60-60 Pos: 997-998} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | "Else": + | *stmt.AltElse Pos{Line: 61--1 Pos: 1005--1} + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | *stmt.AltIf Pos{Line: 63-67 Pos: 1022-1077} + | "Cond": + | *expr.Variable Pos{Line: 63-63 Pos: 1026-1027} + | "VarName": + | *node.Identifier Pos{Line: 63-63 Pos: 1026-1027} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | "ElseIf": + | *stmt.AltElseIf Pos{Line: 64--1 Pos: 1034--1} + | "Cond": + | *expr.Variable Pos{Line: 64-64 Pos: 1042-1043} + | "VarName": + | *node.Identifier Pos{Line: 64-64 Pos: 1042-1043} map[Value:$b] + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | *stmt.AltElseIf Pos{Line: 65--1 Pos: 1049--1} + | "Cond": + | *expr.Variable Pos{Line: 65-65 Pos: 1057-1058} + | "VarName": + | *node.Identifier Pos{Line: 65-65 Pos: 1057-1058} map[Value:$c] + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | "Else": + | *stmt.AltElse Pos{Line: 66--1 Pos: 1064--1} + | "Stmt": + | *stmt.StmtList Pos{Line: -1--1 Pos: -1--1} + | "Stmts": + | *stmt.While Pos{Line: 69-69 Pos: 1082-1101} + | "Cond": + | *scalar.Lnumber Pos{Line: 69-69 Pos: 1089-1089} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 69-69 Pos: 1092-1101} + | "Stmts": + | *stmt.Break Pos{Line: 69-69 Pos: 1094-1099} + | *stmt.While Pos{Line: 70-70 Pos: 1105-1126} + | "Cond": + | *scalar.Lnumber Pos{Line: 70-70 Pos: 1112-1112} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 70-70 Pos: 1115-1126} + | "Stmts": + | *stmt.Break Pos{Line: 70-70 Pos: 1117-1124} + | "Expr": + | *scalar.Lnumber Pos{Line: 70-70 Pos: 1123-1123} map[Value:2] + | *stmt.While Pos{Line: 71-71 Pos: 1130-1152} + | "Cond": + | *scalar.Lnumber Pos{Line: 71-71 Pos: 1137-1137} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 71-71 Pos: 1140-1152} + | "Stmts": + | *stmt.Break Pos{Line: 71-71 Pos: 1142-1150} + | "Expr": + | *scalar.Lnumber Pos{Line: 71-71 Pos: 1148-1148} map[Value:3] + | *stmt.Class Pos{Line: 72-72 Pos: 1156-1160} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 72-72 Pos: 1162-1164} map[Value:foo] + | "Stmts": + | *stmt.ClassConstList Pos{Line: 72-72 Pos: 1167-1188} + | "Consts": + | *stmt.Constant Pos{Line: 72-72 Pos: 1173-1179} map[PhpDocComment:] + | "ConstantName": + | *node.Identifier Pos{Line: 72-72 Pos: 1173-1175} map[Value:FOO] + | "Expr": + | *scalar.Lnumber Pos{Line: 72-72 Pos: 1179-1179} map[Value:1] + | *stmt.Constant Pos{Line: 72-72 Pos: 1182-1188} map[PhpDocComment:] + | "ConstantName": + | *node.Identifier Pos{Line: 72-72 Pos: 1182-1184} map[Value:BAR] + | "Expr": + | *scalar.Lnumber Pos{Line: 72-72 Pos: 1188-1188} map[Value:2] + | *stmt.Class Pos{Line: 73-73 Pos: 1195-1199} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 73-73 Pos: 1201-1203} map[Value:foo] + | "Stmts": + | *stmt.ClassMethod Pos{Line: 73-73 Pos: 1206-1222} map[ReturnsRef:false PhpDocComment:] + | "MethodName": + | *node.Identifier Pos{Line: 73-73 Pos: 1215-1217} map[Value:bar] + | "Stmts": + | *stmt.Class Pos{Line: 74-74 Pos: 1228-1232} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 74-74 Pos: 1234-1236} map[Value:foo] + | "Stmts": + | *stmt.ClassMethod Pos{Line: 74-74 Pos: 1239-1270} map[PhpDocComment: ReturnsRef:true] + | "MethodName": + | *node.Identifier Pos{Line: 74-74 Pos: 1263-1265} map[Value:bar] + | "Modifiers": + | *node.Identifier Pos{Line: 74-74 Pos: 1239-1244} map[Value:public] + | *node.Identifier Pos{Line: 74-74 Pos: 1246-1251} map[Value:static] + | "Stmts": + | *stmt.Class Pos{Line: 75-75 Pos: 1276-1280} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 75-75 Pos: 1282-1284} map[Value:foo] + | "Stmts": + | *stmt.ClassMethod Pos{Line: 75-75 Pos: 1287-1318} map[ReturnsRef:true PhpDocComment:] + | "MethodName": + | *node.Identifier Pos{Line: 75-75 Pos: 1311-1313} map[Value:bar] + | "Modifiers": + | *node.Identifier Pos{Line: 75-75 Pos: 1287-1292} map[Value:public] + | *node.Identifier Pos{Line: 75-75 Pos: 1294-1299} map[Value:static] + | "Stmts": + | *stmt.Class Pos{Line: 76-76 Pos: 1324-1337} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 76-76 Pos: 1339-1341} map[Value:foo] + | "Modifiers": + | *node.Identifier Pos{Line: 76-76 Pos: 1324-1331} map[Value:abstract] + | "Stmts": + | *stmt.Class Pos{Line: 77-77 Pos: 1348-1358} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 77-77 Pos: 1360-1362} map[Value:foo] + | "Modifiers": + | *node.Identifier Pos{Line: 77-77 Pos: 1348-1352} map[Value:final] + | "Extends": + | *name.Name Pos{Line: 77-77 Pos: 1372-1374} + | "Parts": + | *name.NamePart Pos{Line: 77-77 Pos: 1372-1374} map[Value:bar] + | "Stmts": + | *stmt.Class Pos{Line: 78-78 Pos: 1382-1392} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 78-78 Pos: 1394-1396} map[Value:foo] + | "Modifiers": + | *node.Identifier Pos{Line: 78-78 Pos: 1382-1386} map[Value:final] + | "Implements": + | *name.Name Pos{Line: 78-78 Pos: 1409-1411} + | "Parts": + | *name.NamePart Pos{Line: 78-78 Pos: 1409-1411} map[Value:bar] + | "Stmts": + | *stmt.Class Pos{Line: 79-79 Pos: 1419-1429} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 79-79 Pos: 1431-1433} map[Value:foo] + | "Modifiers": + | *node.Identifier Pos{Line: 79-79 Pos: 1419-1423} map[Value:final] + | "Implements": + | *name.Name Pos{Line: 79-79 Pos: 1446-1448} + | "Parts": + | *name.NamePart Pos{Line: 79-79 Pos: 1446-1448} map[Value:bar] + | *name.Name Pos{Line: 79-79 Pos: 1451-1453} + | "Parts": + | *name.NamePart Pos{Line: 79-79 Pos: 1451-1453} map[Value:baz] + | "Stmts": + | *stmt.ConstList Pos{Line: 81-81 Pos: 1462-1483} + | "Consts": + | *stmt.Constant Pos{Line: 81-81 Pos: 1468-1474} map[PhpDocComment:] + | "ConstantName": + | *node.Identifier Pos{Line: 81-81 Pos: 1468-1470} map[Value:FOO] + | "Expr": + | *scalar.Lnumber Pos{Line: 81-81 Pos: 1474-1474} map[Value:1] + | *stmt.Constant Pos{Line: 81-81 Pos: 1477-1483} map[PhpDocComment:] + | "ConstantName": + | *node.Identifier Pos{Line: 81-81 Pos: 1477-1479} map[Value:BAR] + | "Expr": + | *scalar.Lnumber Pos{Line: 81-81 Pos: 1483-1483} map[Value:2] + | *stmt.While Pos{Line: 82-82 Pos: 1488-1510} + | "Cond": + | *scalar.Lnumber Pos{Line: 82-82 Pos: 1495-1495} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 82-82 Pos: 1498-1510} + | "Stmts": + | *stmt.Continue Pos{Line: 82-82 Pos: 1500-1508} + | *stmt.While Pos{Line: 83-83 Pos: 1514-1538} + | "Cond": + | *scalar.Lnumber Pos{Line: 83-83 Pos: 1521-1521} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 83-83 Pos: 1524-1538} + | "Stmts": + | *stmt.Continue Pos{Line: 83-83 Pos: 1526-1536} + | "Expr": + | *scalar.Lnumber Pos{Line: 83-83 Pos: 1535-1535} map[Value:2] + | *stmt.While Pos{Line: 84-84 Pos: 1542-1567} + | "Cond": + | *scalar.Lnumber Pos{Line: 84-84 Pos: 1549-1549} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 84-84 Pos: 1552-1567} + | "Stmts": + | *stmt.Continue Pos{Line: 84-84 Pos: 1554-1565} + | "Expr": + | *scalar.Lnumber Pos{Line: 84-84 Pos: 1563-1563} map[Value:3] + | *stmt.Declare Pos{Line: 85-85 Pos: 1571-1587} + | "Consts": + | *stmt.Constant Pos{Line: 85-85 Pos: 1579-1585} map[PhpDocComment:] + | "ConstantName": + | *node.Identifier Pos{Line: 85-85 Pos: 1579-1583} map[Value:ticks] + | "Expr": + | *scalar.Lnumber Pos{Line: 85-85 Pos: 1585-1585} map[Value:1] + | "Stmt": + | *stmt.Nop Pos{Line: 119-119 Pos: 2449-2450} + | *stmt.Declare Pos{Line: 86-86 Pos: 1591-1609} + | "Consts": + | *stmt.Constant Pos{Line: 86-86 Pos: 1599-1605} map[PhpDocComment:] + | "ConstantName": + | *node.Identifier Pos{Line: 86-86 Pos: 1599-1603} map[Value:ticks] + | "Expr": + | *scalar.Lnumber Pos{Line: 86-86 Pos: 1605-1605} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 86-86 Pos: 1608-1609} + | "Stmts": + | *stmt.Declare Pos{Line: 87-87 Pos: 1613-1641} + | "Consts": + | *stmt.Constant Pos{Line: 87-87 Pos: 1621-1627} map[PhpDocComment:] + | "ConstantName": + | *node.Identifier Pos{Line: 87-87 Pos: 1621-1625} map[Value:ticks] + | "Expr": + | *scalar.Lnumber Pos{Line: 87-87 Pos: 1627-1627} map[Value:1] + | "Stmt": + | *stmt.StmtList Pos{Line: 87-87 Pos: 1629-1641} + | "Stmts": + | *stmt.Do Pos{Line: 88-88 Pos: 1645-1659} + | "Stmt": + | *stmt.StmtList Pos{Line: 88-88 Pos: 1648-1649} + | "Stmts": + | "Cond": + | *scalar.Lnumber Pos{Line: 88-88 Pos: 1657-1657} map[Value:1] + | *stmt.Echo Pos{Line: 89-89 Pos: 1663-1673} + | "Exprs": + | *expr.Variable Pos{Line: 89-89 Pos: 1668-1669} + | "VarName": + | *node.Identifier Pos{Line: 89-89 Pos: 1668-1669} map[Value:$a] + | *scalar.Lnumber Pos{Line: 89-89 Pos: 1672-1672} map[Value:1] + | *stmt.Echo Pos{Line: 90-90 Pos: 1677-1685} + | "Exprs": + | *expr.Variable Pos{Line: 90-90 Pos: 1682-1683} + | "VarName": + | *node.Identifier Pos{Line: 90-90 Pos: 1682-1683} map[Value:$a] + | *stmt.For Pos{Line: 91-91 Pos: 1695-1729} + | "Init": + | *assign_op.Assign Pos{Line: 91-91 Pos: 1699-1704} + | "Variable": + | *expr.Variable Pos{Line: 91-91 Pos: 1699-1700} + | "VarName": + | *node.Identifier Pos{Line: 91-91 Pos: 1699-1700} map[Value:$i] + | "Expression": + | *scalar.Lnumber Pos{Line: 91-91 Pos: 1704-1704} map[Value:0] + | "Cond": + | *binary_op.Smaller Pos{Line: 91-91 Pos: 1707-1713} + | "Left": + | *expr.Variable Pos{Line: 91-91 Pos: 1707-1708} + | "VarName": + | *node.Identifier Pos{Line: 91-91 Pos: 1707-1708} map[Value:$i] + | "Right": + | *scalar.Lnumber Pos{Line: 91-91 Pos: 1712-1713} map[Value:10] + | "Loop": + | *expr.PostInc Pos{Line: 91-91 Pos: 1716-1719} + | "Variable": + | *expr.Variable Pos{Line: 91-91 Pos: 1716-1717} + | "VarName": + | *node.Identifier Pos{Line: 91-91 Pos: 1716-1717} map[Value:$i] + | *expr.PostInc Pos{Line: 91-91 Pos: 1722-1725} + | "Variable": + | *expr.Variable Pos{Line: 91-91 Pos: 1722-1723} + | "VarName": + | *node.Identifier Pos{Line: 91-91 Pos: 1722-1723} map[Value:$i] + | "Stmt": + | *stmt.StmtList Pos{Line: 91-91 Pos: 1728-1729} + | "Stmts": + | *stmt.For Pos{Line: 92-92 Pos: 1733-1774} + | "Init": + | *assign_op.Assign Pos{Line: 92-92 Pos: 1737-1742} + | "Variable": + | *expr.Variable Pos{Line: 92-92 Pos: 1737-1738} + | "VarName": + | *node.Identifier Pos{Line: 92-92 Pos: 1737-1738} map[Value:$i] + | "Expression": + | *scalar.Lnumber Pos{Line: 92-92 Pos: 1742-1742} map[Value:0] + | "Cond": + | *binary_op.Smaller Pos{Line: 92-92 Pos: 1745-1751} + | "Left": + | *expr.Variable Pos{Line: 92-92 Pos: 1745-1746} + | "VarName": + | *node.Identifier Pos{Line: 92-92 Pos: 1745-1746} map[Value:$i] + | "Right": + | *scalar.Lnumber Pos{Line: 92-92 Pos: 1750-1751} map[Value:10] + | "Loop": + | *expr.PostInc Pos{Line: 92-92 Pos: 1754-1757} + | "Variable": + | *expr.Variable Pos{Line: 92-92 Pos: 1754-1755} + | "VarName": + | *node.Identifier Pos{Line: 92-92 Pos: 1754-1755} map[Value:$i] + | *expr.PostInc Pos{Line: 92-92 Pos: 1760-1763} + | "Variable": + | *expr.Variable Pos{Line: 92-92 Pos: 1760-1761} + | "VarName": + | *node.Identifier Pos{Line: 92-92 Pos: 1760-1761} map[Value:$i] + | "Stmt": + | *stmt.StmtList Pos{Line: 92-92 Pos: 1766-1774} + | "Stmts": + | *stmt.Foreach Pos{Line: 93-93 Pos: 1778-1798} map[ByRef:false] + | "Expr": + | *expr.Variable Pos{Line: 93-93 Pos: 1787-1788} + | "VarName": + | *node.Identifier Pos{Line: 93-93 Pos: 1787-1788} map[Value:$a] + | "Variable": + | *expr.Variable Pos{Line: 93-93 Pos: 1793-1794} + | "VarName": + | *node.Identifier Pos{Line: 93-93 Pos: 1793-1794} map[Value:$v] + | "Stmt": + | *stmt.StmtList Pos{Line: 93-93 Pos: 1797-1798} + | "Stmts": + | *stmt.Foreach Pos{Line: 94-94 Pos: 1808-1828} map[ByRef:false] + | "Expr": + | *expr.ShortArray Pos{Line: 94-94 Pos: 1817-1818} + | "Items": + | "Variable": + | *expr.Variable Pos{Line: 94-94 Pos: 1823-1824} + | "VarName": + | *node.Identifier Pos{Line: 94-94 Pos: 1823-1824} map[Value:$v] + | "Stmt": + | *stmt.StmtList Pos{Line: 94-94 Pos: 1827-1828} + | "Stmts": + | *stmt.Foreach Pos{Line: 95-95 Pos: 1832-1863} map[ByRef:false] + | "Expr": + | *expr.Variable Pos{Line: 95-95 Pos: 1841-1842} + | "VarName": + | *node.Identifier Pos{Line: 95-95 Pos: 1841-1842} map[Value:$a] + | "Variable": + | *expr.Variable Pos{Line: 95-95 Pos: 1847-1848} + | "VarName": + | *node.Identifier Pos{Line: 95-95 Pos: 1847-1848} map[Value:$v] + | "Stmt": + | *stmt.StmtList Pos{Line: 95-95 Pos: 1851-1863} + | "Stmts": + | *stmt.Foreach Pos{Line: 96-96 Pos: 1867-1893} map[ByRef:false] + | "Expr": + | *expr.Variable Pos{Line: 96-96 Pos: 1876-1877} + | "VarName": + | *node.Identifier Pos{Line: 96-96 Pos: 1876-1877} map[Value:$a] + | "Key": + | *expr.Variable Pos{Line: 96-96 Pos: 1882-1883} + | "VarName": + | *node.Identifier Pos{Line: 96-96 Pos: 1882-1883} map[Value:$k] + | "Variable": + | *expr.Variable Pos{Line: 96-96 Pos: 1888-1889} + | "VarName": + | *node.Identifier Pos{Line: 96-96 Pos: 1888-1889} map[Value:$v] + | "Stmt": + | *stmt.StmtList Pos{Line: 96-96 Pos: 1892-1893} + | "Stmts": + | *stmt.Foreach Pos{Line: 97-97 Pos: 1897-1923} map[ByRef:false] + | "Expr": + | *expr.ShortArray Pos{Line: 97-97 Pos: 1906-1907} + | "Items": + | "Key": + | *expr.Variable Pos{Line: 97-97 Pos: 1912-1913} + | "VarName": + | *node.Identifier Pos{Line: 97-97 Pos: 1912-1913} map[Value:$k] + | "Variable": + | *expr.Variable Pos{Line: 97-97 Pos: 1918-1919} + | "VarName": + | *node.Identifier Pos{Line: 97-97 Pos: 1918-1919} map[Value:$v] + | "Stmt": + | *stmt.StmtList Pos{Line: 97-97 Pos: 1922-1923} + | "Stmts": + | *stmt.Foreach Pos{Line: 98-98 Pos: 1927-1954} map[ByRef:true] + | "Expr": + | *expr.Variable Pos{Line: 98-98 Pos: 1936-1937} + | "VarName": + | *node.Identifier Pos{Line: 98-98 Pos: 1936-1937} map[Value:$a] + | "Key": + | *expr.Variable Pos{Line: 98-98 Pos: 1942-1943} + | "VarName": + | *node.Identifier Pos{Line: 98-98 Pos: 1942-1943} map[Value:$k] + | "Variable": + | *expr.Variable Pos{Line: 98-98 Pos: 1949-1950} + | "VarName": + | *node.Identifier Pos{Line: 98-98 Pos: 1949-1950} map[Value:$v] + | "Stmt": + | *stmt.StmtList Pos{Line: 98-98 Pos: 1953-1954} + | "Stmts": + | *stmt.Foreach Pos{Line: 99-99 Pos: 1958-1990} map[ByRef:false] + | "Expr": + | *expr.Variable Pos{Line: 99-99 Pos: 1967-1968} + | "VarName": + | *node.Identifier Pos{Line: 99-99 Pos: 1967-1968} map[Value:$a] + | "Key": + | *expr.Variable Pos{Line: 99-99 Pos: 1973-1974} + | "VarName": + | *node.Identifier Pos{Line: 99-99 Pos: 1973-1974} map[Value:$k] + | "Variable": + | *expr.List Pos{Line: 99-99 Pos: 1979-1986} + | "Items": + | *expr.ArrayItem Pos{Line: 99-99 Pos: 1984-1985} map[ByRef:false] + | "Val": + | *expr.Variable Pos{Line: 99-99 Pos: 1984-1985} + | "VarName": + | *node.Identifier Pos{Line: 99-99 Pos: 1984-1985} map[Value:$v] + | "Stmt": + | *stmt.StmtList Pos{Line: 99-99 Pos: 1989-1990} + | "Stmts": + | *stmt.Function Pos{Line: 100-100 Pos: 2000-2016} map[PhpDocComment: ReturnsRef:false] + | "FunctionName": + | *node.Identifier Pos{Line: 100-100 Pos: 2009-2011} map[Value:foo] + | "Stmts": + | *stmt.Function Pos{Line: 101-106 Pos: 2020-2148} map[ReturnsRef:false PhpDocComment:] + | "FunctionName": + | *node.Identifier Pos{Line: 101-101 Pos: 2029-2031} map[Value:foo] + | "Stmts": + | *stmt.HaltCompiler Pos{Line: 113-113 Pos: 2263-2280} + | *stmt.Function Pos{Line: 103-103 Pos: 2074-2090} map[ReturnsRef:false PhpDocComment:] + | "FunctionName": + | *node.Identifier Pos{Line: 103-103 Pos: 2083-2085} map[Value:bar] + | "Stmts": + | *stmt.Class Pos{Line: 104-104 Pos: 2104-2108} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 104-104 Pos: 2110-2112} map[Value:Baz] + | "Stmts": + | *stmt.Return Pos{Line: 105-105 Pos: 2129-2138} + | "Expr": + | *expr.Variable Pos{Line: 105-105 Pos: 2136-2137} + | "VarName": + | *node.Identifier Pos{Line: 105-105 Pos: 2136-2137} map[Value:$a] + | *stmt.Function Pos{Line: 107-107 Pos: 2152-2175} map[ReturnsRef:false PhpDocComment:] + | "FunctionName": + | *node.Identifier Pos{Line: 107-107 Pos: 2161-2163} map[Value:foo] + | "Stmts": + | *stmt.Return Pos{Line: 107-107 Pos: 2168-2174} + | *stmt.Function Pos{Line: 108-108 Pos: 2179-2205} map[ReturnsRef:true PhpDocComment:] + | "FunctionName": + | *node.Identifier Pos{Line: 108-108 Pos: 2189-2191} map[Value:foo] + | "Stmts": + | *stmt.Return Pos{Line: 108-108 Pos: 2196-2204} + | "Expr": + | *scalar.Lnumber Pos{Line: 108-108 Pos: 2203-2203} map[Value:1] + | *stmt.Function Pos{Line: 109-109 Pos: 2209-2226} map[ReturnsRef:true PhpDocComment:] + | "FunctionName": + | *node.Identifier Pos{Line: 109-109 Pos: 2219-2221} map[Value:foo] + | "Stmts": + | *stmt.Global Pos{Line: 110-110 Pos: 2230-2243} + | "Vars": + | *expr.Variable Pos{Line: 110-110 Pos: 2237-2238} + | "VarName": + | *node.Identifier Pos{Line: 110-110 Pos: 2237-2238} map[Value:$a] + | *expr.Variable Pos{Line: 110-110 Pos: 2241-2242} + | "VarName": + | *node.Identifier Pos{Line: 110-110 Pos: 2241-2242} map[Value:$b] + | *stmt.Label Pos{Line: 111-111 Pos: 2247-2248} + | "LabelName": + | *node.Identifier Pos{Line: 111-111 Pos: 2247-2247} map[Value:a] + | *stmt.Goto Pos{Line: 112-112 Pos: 2253-2259} + | "Label": + | *node.Identifier Pos{Line: 112-112 Pos: 2258-2258} map[Value:a] + | *stmt.HaltCompiler Pos{Line: 113-113 Pos: 2263-2280} + | *stmt.If Pos{Line: 114-114 Pos: 2284-2293} + | "Cond": + | *expr.Variable Pos{Line: 114-114 Pos: 2288-2289} + | "VarName": + | *node.Identifier Pos{Line: 114-114 Pos: 2288-2289} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: 114-114 Pos: 2292-2293} + | "Stmts": + | *stmt.If Pos{Line: 115-115 Pos: 2297-2321} + | "Cond": + | *expr.Variable Pos{Line: 115-115 Pos: 2301-2302} + | "VarName": + | *node.Identifier Pos{Line: 115-115 Pos: 2301-2302} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: 115-115 Pos: 2305-2306} + | "Stmts": + | "ElseIf": + | *stmt.ElseIf Pos{Line: 115-115 Pos: 2308-2321} + | "Cond": + | *expr.Variable Pos{Line: 115-115 Pos: 2316-2317} + | "VarName": + | *node.Identifier Pos{Line: 115-115 Pos: 2316-2317} map[Value:$b] + | "Stmt": + | *stmt.StmtList Pos{Line: 115-115 Pos: 2320-2321} + | "Stmts": + | *stmt.If Pos{Line: 116-116 Pos: 2325-2342} + | "Cond": + | *expr.Variable Pos{Line: 116-116 Pos: 2329-2330} + | "VarName": + | *node.Identifier Pos{Line: 116-116 Pos: 2329-2330} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: 116-116 Pos: 2333-2334} + | "Stmts": + | "Else": + | *stmt.Else Pos{Line: 116-116 Pos: 2336-2342} + | "Stmt": + | *stmt.StmtList Pos{Line: 116-116 Pos: 2341-2342} + | "Stmts": + | *stmt.If Pos{Line: 117-117 Pos: 2346-2393} + | "Cond": + | *expr.Variable Pos{Line: 117-117 Pos: 2350-2351} + | "VarName": + | *node.Identifier Pos{Line: 117-117 Pos: 2350-2351} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: 117-117 Pos: 2354-2355} + | "Stmts": + | "ElseIf": + | *stmt.ElseIf Pos{Line: 117-117 Pos: 2357-2370} + | "Cond": + | *expr.Variable Pos{Line: 117-117 Pos: 2365-2366} + | "VarName": + | *node.Identifier Pos{Line: 117-117 Pos: 2365-2366} map[Value:$b] + | "Stmt": + | *stmt.StmtList Pos{Line: 117-117 Pos: 2369-2370} + | "Stmts": + | *stmt.ElseIf Pos{Line: 117-117 Pos: 2372-2385} + | "Cond": + | *expr.Variable Pos{Line: 117-117 Pos: 2380-2381} + | "VarName": + | *node.Identifier Pos{Line: 117-117 Pos: 2380-2381} map[Value:$c] + | "Stmt": + | *stmt.StmtList Pos{Line: 117-117 Pos: 2384-2385} + | "Stmts": + | "Else": + | *stmt.Else Pos{Line: 117-117 Pos: 2387-2393} + | "Stmt": + | *stmt.StmtList Pos{Line: 117-117 Pos: 2392-2393} + | "Stmts": + | *stmt.If Pos{Line: 118-118 Pos: 2397-2445} + | "Cond": + | *expr.Variable Pos{Line: 118-118 Pos: 2401-2402} + | "VarName": + | *node.Identifier Pos{Line: 118-118 Pos: 2401-2402} map[Value:$a] + | "Stmt": + | *stmt.StmtList Pos{Line: 118-118 Pos: 2405-2406} + | "Stmts": + | "ElseIf": + | *stmt.ElseIf Pos{Line: 118-118 Pos: 2408-2421} + | "Cond": + | *expr.Variable Pos{Line: 118-118 Pos: 2416-2417} + | "VarName": + | *node.Identifier Pos{Line: 118-118 Pos: 2416-2417} map[Value:$b] + | "Stmt": + | *stmt.StmtList Pos{Line: 118-118 Pos: 2420-2421} + | "Stmts": + | "Else": + | *stmt.Else Pos{Line: 118-118 Pos: 2423-2445} + | "Stmt": + | *stmt.If Pos{Line: 118-118 Pos: 2428-2445} + | "Cond": + | *expr.Variable Pos{Line: 118-118 Pos: 2432-2433} + | "VarName": + | *node.Identifier Pos{Line: 118-118 Pos: 2432-2433} map[Value:$c] + | "Stmt": + | *stmt.StmtList Pos{Line: 118-118 Pos: 2436-2437} + | "Stmts": + | "Else": + | *stmt.Else Pos{Line: 118-118 Pos: 2439-2445} + | "Stmt": + | *stmt.StmtList Pos{Line: 118-118 Pos: 2444-2445} + | "Stmts": + | *stmt.Nop Pos{Line: 119-119 Pos: 2449-2450} + | *stmt.InlineHtml Pos{Line: 119-119 Pos: 2452-2463} map[Value:
] + | *stmt.Interface Pos{Line: 120-120 Pos: 2469-2484} map[PhpDocComment:] + | "InterfaceName": + | *node.Identifier Pos{Line: 120-120 Pos: 2479-2481} map[Value:Foo] + | "Stmts": + | *stmt.Interface Pos{Line: 121-121 Pos: 2488-2515} map[PhpDocComment:] + | "InterfaceName": + | *node.Identifier Pos{Line: 121-121 Pos: 2498-2500} map[Value:Foo] + | "Extends": + | *name.Name Pos{Line: 121-121 Pos: 2510-2512} + | "Parts": + | *name.NamePart Pos{Line: 121-121 Pos: 2510-2512} map[Value:Bar] + | "Stmts": + | *stmt.Interface Pos{Line: 122-122 Pos: 2519-2551} map[PhpDocComment:] + | "InterfaceName": + | *node.Identifier Pos{Line: 122-122 Pos: 2529-2531} map[Value:Foo] + | "Extends": + | *name.Name Pos{Line: 122-122 Pos: 2541-2543} + | "Parts": + | *name.NamePart Pos{Line: 122-122 Pos: 2541-2543} map[Value:Bar] + | *name.Name Pos{Line: 122-122 Pos: 2546-2548} + | "Parts": + | *name.NamePart Pos{Line: 122-122 Pos: 2546-2548} map[Value:Baz] + | "Stmts": + | *stmt.Namespace Pos{Line: 123-123 Pos: 2555-2568} + | "NamespaceName": + | *name.Name Pos{Line: 123-123 Pos: 2565-2567} + | "Parts": + | *name.NamePart Pos{Line: 123-123 Pos: 2565-2567} map[Value:Foo] + | *stmt.Namespace Pos{Line: 124-124 Pos: 2572-2591} + | "NamespaceName": + | *name.Name Pos{Line: 124-124 Pos: 2582-2588} + | "Parts": + | *name.NamePart Pos{Line: 124-124 Pos: 2582-2584} map[Value:Foo] + | *name.NamePart Pos{Line: 124-124 Pos: 2586-2588} map[Value:bar] + | "Stmts": + | *stmt.Namespace Pos{Line: 125-125 Pos: 2595-2606} + | "Stmts": + | *stmt.Class Pos{Line: 126-126 Pos: 2610-2614} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 126-126 Pos: 2616-2618} map[Value:foo] + | "Stmts": + | *stmt.PropertyList Pos{Line: 126-126 Pos: 2621-2627} + | "Modifiers": + | *node.Identifier Pos{Line: 126-126 Pos: 2621-2623} map[Value:var] + | "Properties": + | *stmt.Property Pos{Line: 126-126 Pos: 2625-2626} map[PhpDocComment:] + | "Variable": + | *expr.Variable Pos{Line: 126-126 Pos: 2625-2626} + | "VarName": + | *node.Identifier Pos{Line: 126-126 Pos: 2625-2626} map[Value:$a] + | *stmt.Class Pos{Line: 127-127 Pos: 2632-2636} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 127-127 Pos: 2638-2640} map[Value:foo] + | "Stmts": + | *stmt.PropertyList Pos{Line: 127-127 Pos: 2643-2667} + | "Modifiers": + | *node.Identifier Pos{Line: 127-127 Pos: 2643-2648} map[Value:public] + | *node.Identifier Pos{Line: 127-127 Pos: 2650-2655} map[Value:static] + | "Properties": + | *stmt.Property Pos{Line: 127-127 Pos: 2657-2658} map[PhpDocComment:] + | "Variable": + | *expr.Variable Pos{Line: 127-127 Pos: 2657-2658} + | "VarName": + | *node.Identifier Pos{Line: 127-127 Pos: 2657-2658} map[Value:$a] + | *stmt.Property Pos{Line: 127-127 Pos: 2661-2666} map[PhpDocComment:] + | "Variable": + | *expr.Variable Pos{Line: 127-127 Pos: 2661-2662} + | "VarName": + | *node.Identifier Pos{Line: 127-127 Pos: 2661-2662} map[Value:$b] + | "Expr": + | *scalar.Lnumber Pos{Line: 127-127 Pos: 2666-2666} map[Value:1] + | *stmt.Static Pos{Line: 128-128 Pos: 2672-2689} + | "Vars": + | *stmt.StaticVar Pos{Line: 128-128 Pos: 2679-2680} + | "Variable": + | *expr.Variable Pos{Line: 128-128 Pos: 2679-2680} + | "VarName": + | *node.Identifier Pos{Line: 128-128 Pos: 2679-2680} map[Value:$a] + | *stmt.StaticVar Pos{Line: 128-128 Pos: 2683-2688} + | "Variable": + | *expr.Variable Pos{Line: 128-128 Pos: 2683-2684} + | "VarName": + | *node.Identifier Pos{Line: 128-128 Pos: 2683-2684} map[Value:$b] + | "Expr": + | *scalar.Lnumber Pos{Line: 128-128 Pos: 2688-2688} map[Value:1] + | *stmt.Switch Pos{Line: 130-134 Pos: 2694-2752} + | "Cond": + | *scalar.Lnumber Pos{Line: 130-130 Pos: 2702-2702} map[Value:1] + | "Cases": + | *stmt.Case Pos{Line: 131--1 Pos: 2710--1} + | "Cond": + | *scalar.Lnumber Pos{Line: 131-131 Pos: 2715-2715} map[Value:1] + | "Stmts": + | *stmt.Default Pos{Line: 132--1 Pos: 2721--1} + | "Stmts": + | *stmt.Case Pos{Line: 133--1 Pos: 2733--1} + | "Cond": + | *scalar.Lnumber Pos{Line: 133-133 Pos: 2738-2738} map[Value:2] + | "Stmts": + | *stmt.Switch Pos{Line: 136-139 Pos: 2759-2810} + | "Cond": + | *scalar.Lnumber Pos{Line: 136-136 Pos: 2767-2767} map[Value:1] + | "Cases": + | *stmt.Case Pos{Line: 137-137 Pos: 2775-2788} + | "Cond": + | *scalar.Lnumber Pos{Line: 137-137 Pos: 2780-2780} map[Value:1] + | "Stmts": + | *stmt.Break Pos{Line: 137-137 Pos: 2783-2788} + | *stmt.Case Pos{Line: 138-138 Pos: 2793-2806} + | "Cond": + | *scalar.Lnumber Pos{Line: 138-138 Pos: 2798-2798} map[Value:2] + | "Stmts": + | *stmt.Break Pos{Line: 138-138 Pos: 2801-2806} + | *stmt.Throw Pos{Line: 140-140 Pos: 2814-2822} + | "Expr": + | *expr.Variable Pos{Line: 140-140 Pos: 2820-2821} + | "VarName": + | *node.Identifier Pos{Line: 140-140 Pos: 2820-2821} map[Value:$e] + | *stmt.Trait Pos{Line: 141-141 Pos: 2826-2830} map[PhpDocComment:] + | "TraitName": + | *node.Identifier Pos{Line: 141-141 Pos: 2832-2834} map[Value:Foo] + | "Stmts": + | *stmt.Class Pos{Line: 142-142 Pos: 2841-2845} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 142-142 Pos: 2847-2849} map[Value:Foo] + | "Stmts": + | *stmt.TraitUse Pos{Line: 142-142 Pos: 2853-2860} + | "Traits": + | *name.Name Pos{Line: 142-142 Pos: 2857-2859} + | "Parts": + | *name.NamePart Pos{Line: 142-142 Pos: 2857-2859} map[Value:Bar] + | *stmt.Class Pos{Line: 143-143 Pos: 2866-2870} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 143-143 Pos: 2872-2874} map[Value:Foo] + | "Stmts": + | *stmt.TraitUse Pos{Line: 143-143 Pos: 2878-2890} + | "Traits": + | *name.Name Pos{Line: 143-143 Pos: 2882-2884} + | "Parts": + | *name.NamePart Pos{Line: 143-143 Pos: 2882-2884} map[Value:Bar] + | *name.Name Pos{Line: 143-143 Pos: 2887-2889} + | "Parts": + | *name.NamePart Pos{Line: 143-143 Pos: 2887-2889} map[Value:Baz] + | *stmt.Class Pos{Line: 144-144 Pos: 2896-2900} map[PhpDocComment:] + | "ClassName": + | *node.Identifier Pos{Line: 144-144 Pos: 2902-2904} map[Value:Foo] + | "Stmts": + | *stmt.TraitUse Pos{Line: 144-144 Pos: 2908-2970} + | "Traits": + | *name.Name Pos{Line: 144-144 Pos: 2912-2914} + | "Parts": + | *name.NamePart Pos{Line: 144-144 Pos: 2912-2914} map[Value:Bar] + | *name.Name Pos{Line: 144-144 Pos: 2917-2919} + | "Parts": + | *name.NamePart Pos{Line: 144-144 Pos: 2917-2919} map[Value:Baz] + | "Adaptations": + | *stmt.TraitUsePrecedence Pos{Line: 144-144 Pos: 2923-2950} + | "Ref": + | *stmt.TraitMethodRef Pos{Line: 144-144 Pos: 2923-2930} + | "Trait": + | *name.Name Pos{Line: 144-144 Pos: 2923-2925} + | "Parts": + | *name.NamePart Pos{Line: 144-144 Pos: 2923-2925} map[Value:Bar] + | "Method": + | *node.Identifier Pos{Line: 144-144 Pos: 2928-2930} map[Value:one] + | "Insteadof": + | *name.Name Pos{Line: 144-144 Pos: 2942-2944} + | "Parts": + | *name.NamePart Pos{Line: 144-144 Pos: 2942-2944} map[Value:Baz] + | *name.Name Pos{Line: 144-144 Pos: 2947-2950} + | "Parts": + | *name.NamePart Pos{Line: 144-144 Pos: 2947-2950} map[Value:Quux] + | *stmt.TraitUseAlias Pos{Line: 144-144 Pos: 2953-2967} + | "Ref": + | *stmt.TraitMethodRef Pos{Line: 144-144 Pos: 2953-2960} + | "Trait": + | *name.Name Pos{Line: 144-144 Pos: 2953-2955} + | "Parts": + | *name.NamePart Pos{Line: 144-144 Pos: 2953-2955} map[Value:Baz] + | "Method": + | *node.Identifier Pos{Line: 144-144 Pos: 2958-2960} map[Value:one] + | "Alias": + | *node.Identifier Pos{Line: 144-144 Pos: 2965-2967} map[Value:two] + | *stmt.Try Pos{Line: 146--1 Pos: 2977--1} + | "Stmts": + | "Catches": + | *stmt.Try Pos{Line: 147-147 Pos: 2986-3015} + | "Stmts": + | "Catches": + | *stmt.Catch Pos{Line: 147-147 Pos: 2993-3015} + | "Types": + | *name.Name Pos{Line: 147-147 Pos: 3000-3008} + | "Parts": + | *name.NamePart Pos{Line: 147-147 Pos: 3000-3008} map[Value:Exception] + | "Variable": + | *expr.Variable Pos{Line: 147-147 Pos: 3010-3011} + | "VarName": + | *node.Identifier Pos{Line: 147-147 Pos: 3010-3011} map[Value:$e] + | "Stmts": + | *stmt.Try Pos{Line: 148-148 Pos: 3019-3079} + | "Stmts": + | "Catches": + | *stmt.Catch Pos{Line: 148-148 Pos: 3026-3048} + | "Types": + | *name.Name Pos{Line: 148-148 Pos: 3033-3041} + | "Parts": + | *name.NamePart Pos{Line: 148-148 Pos: 3033-3041} map[Value:Exception] + | "Variable": + | *expr.Variable Pos{Line: 148-148 Pos: 3043-3044} + | "VarName": + | *node.Identifier Pos{Line: 148-148 Pos: 3043-3044} map[Value:$e] + | "Stmts": + | *stmt.Catch Pos{Line: 148-148 Pos: 3050-3079} + | "Types": + | *name.Name Pos{Line: 148-148 Pos: 3057-3072} + | "Parts": + | *name.NamePart Pos{Line: 148-148 Pos: 3057-3072} map[Value:RuntimeException] + | "Variable": + | *expr.Variable Pos{Line: 148-148 Pos: 3074-3075} + | "VarName": + | *node.Identifier Pos{Line: 148-148 Pos: 3074-3075} map[Value:$e] + | "Stmts": + | *stmt.Try Pos{Line: 149-149 Pos: 3083-3175} + | "Stmts": + | "Catches": + | *stmt.Catch Pos{Line: 149-149 Pos: 3090-3112} + | "Types": + | *name.Name Pos{Line: 149-149 Pos: 3097-3105} + | "Parts": + | *name.NamePart Pos{Line: 149-149 Pos: 3097-3105} map[Value:Exception] + | "Variable": + | *expr.Variable Pos{Line: 149-149 Pos: 3107-3108} + | "VarName": + | *node.Identifier Pos{Line: 149-149 Pos: 3107-3108} map[Value:$e] + | "Stmts": + | *stmt.Catch Pos{Line: 149-149 Pos: 3114-3143} + | "Types": + | *name.Name Pos{Line: 149-149 Pos: 3121-3136} + | "Parts": + | *name.NamePart Pos{Line: 149-149 Pos: 3121-3136} map[Value:RuntimeException] + | "Variable": + | *expr.Variable Pos{Line: 149-149 Pos: 3138-3139} + | "VarName": + | *node.Identifier Pos{Line: 149-149 Pos: 3138-3139} map[Value:$e] + | "Stmts": + | *stmt.Catch Pos{Line: 149-149 Pos: 3145-3175} + | "Types": + | *name.Name Pos{Line: 149-149 Pos: 3152-3168} + | "Parts": + | *name.NamePart Pos{Line: 149-149 Pos: 3152-3168} map[Value:AdditionException] + | "Variable": + | *expr.Variable Pos{Line: 149-149 Pos: 3170-3171} + | "VarName": + | *node.Identifier Pos{Line: 149-149 Pos: 3170-3171} map[Value:$e] + | "Stmts": + | *stmt.Try Pos{Line: 150-150 Pos: 3179-3219} + | "Stmts": + | "Catches": + | *stmt.Catch Pos{Line: 150-150 Pos: 3186-3208} + | "Types": + | *name.Name Pos{Line: 150-150 Pos: 3193-3201} + | "Parts": + | *name.NamePart Pos{Line: 150-150 Pos: 3193-3201} map[Value:Exception] + | "Variable": + | *expr.Variable Pos{Line: 150-150 Pos: 3203-3204} + | "VarName": + | *node.Identifier Pos{Line: 150-150 Pos: 3203-3204} map[Value:$e] + | "Stmts": + | "Finally": + | *stmt.Finally Pos{Line: 150-150 Pos: 3210-3219} + | "Stmts": + | *stmt.Unset Pos{Line: 152-152 Pos: 3224-3237} + | "Vars": + | *expr.Variable Pos{Line: 152-152 Pos: 3230-3231} + | "VarName": + | *node.Identifier Pos{Line: 152-152 Pos: 3230-3231} map[Value:$a] + | *expr.Variable Pos{Line: 152-152 Pos: 3234-3235} + | "VarName": + | *node.Identifier Pos{Line: 152-152 Pos: 3234-3235} map[Value:$b] + | *stmt.UseList Pos{Line: 154-154 Pos: 3242-3249} + | "Uses": + | *stmt.Use Pos{Line: 154-154 Pos: 3246-3248} + | "Use": + | *name.Name Pos{Line: 154-154 Pos: 3246-3248} + | "Parts": + | *name.NamePart Pos{Line: 154-154 Pos: 3246-3248} map[Value:Foo] + | *stmt.UseList Pos{Line: 155-155 Pos: 3253-3261} + | "Uses": + | *stmt.Use Pos{Line: 155-155 Pos: 3258-3260} + | "Use": + | *name.Name Pos{Line: 155-155 Pos: 3258-3260} + | "Parts": + | *name.NamePart Pos{Line: 155-155 Pos: 3258-3260} map[Value:Foo] + | *stmt.UseList Pos{Line: 156-156 Pos: 3265-3280} + | "Uses": + | *stmt.Use Pos{Line: 156-156 Pos: 3270-3279} + | "Use": + | *name.Name Pos{Line: 156-156 Pos: 3270-3272} + | "Parts": + | *name.NamePart Pos{Line: 156-156 Pos: 3270-3272} map[Value:Foo] + | "Alias": + | *node.Identifier Pos{Line: 156-156 Pos: 3277-3279} map[Value:Bar] + | *stmt.UseList Pos{Line: 157-157 Pos: 3284-3296} + | "Uses": + | *stmt.Use Pos{Line: 157-157 Pos: 3288-3290} + | "Use": + | *name.Name Pos{Line: 157-157 Pos: 3288-3290} + | "Parts": + | *name.NamePart Pos{Line: 157-157 Pos: 3288-3290} map[Value:Foo] + | *stmt.Use Pos{Line: 157-157 Pos: 3293-3295} + | "Use": + | *name.Name Pos{Line: 157-157 Pos: 3293-3295} + | "Parts": + | *name.NamePart Pos{Line: 157-157 Pos: 3293-3295} map[Value:Bar] + | *stmt.UseList Pos{Line: 158-158 Pos: 3300-3319} + | "Uses": + | *stmt.Use Pos{Line: 158-158 Pos: 3304-3306} + | "Use": + | *name.Name Pos{Line: 158-158 Pos: 3304-3306} + | "Parts": + | *name.NamePart Pos{Line: 158-158 Pos: 3304-3306} map[Value:Foo] + | *stmt.Use Pos{Line: 158-158 Pos: 3309-3318} + | "Use": + | *name.Name Pos{Line: 158-158 Pos: 3309-3311} + | "Parts": + | *name.NamePart Pos{Line: 158-158 Pos: 3309-3311} map[Value:Bar] + | "Alias": + | *node.Identifier Pos{Line: 158-158 Pos: 3316-3318} map[Value:Baz] + | *stmt.UseList Pos{Line: 159-159 Pos: 3323-3345} + | "UseType": + | *node.Identifier map[Value:function] + | "Uses": + | *stmt.Use Pos{Line: 159-159 Pos: 3336-3338} + | "Use": + | *name.Name Pos{Line: 159-159 Pos: 3336-3338} + | "Parts": + | *name.NamePart Pos{Line: 159-159 Pos: 3336-3338} map[Value:Foo] + | *stmt.Use Pos{Line: 159-159 Pos: 3342-3344} + | "Use": + | *name.Name Pos{Line: 159-159 Pos: 3342-3344} + | "Parts": + | *name.NamePart Pos{Line: 159-159 Pos: 3342-3344} map[Value:Bar] + | *stmt.UseList Pos{Line: 160-160 Pos: 3349-3385} + | "UseType": + | *node.Identifier map[Value:function] + | "Uses": + | *stmt.Use Pos{Line: 160-160 Pos: 3362-3371} + | "Use": + | *name.Name Pos{Line: 160-160 Pos: 3362-3364} + | "Parts": + | *name.NamePart Pos{Line: 160-160 Pos: 3362-3364} map[Value:Foo] + | "Alias": + | *node.Identifier Pos{Line: 160-160 Pos: 3369-3371} map[Value:foo] + | *stmt.Use Pos{Line: 160-160 Pos: 3375-3384} + | "Use": + | *name.Name Pos{Line: 160-160 Pos: 3375-3377} + | "Parts": + | *name.NamePart Pos{Line: 160-160 Pos: 3375-3377} map[Value:Bar] + | "Alias": + | *node.Identifier Pos{Line: 160-160 Pos: 3382-3384} map[Value:bar] + | *stmt.UseList Pos{Line: 161-161 Pos: 3389-3408} + | "UseType": + | *node.Identifier map[Value:const] + | "Uses": + | *stmt.Use Pos{Line: 161-161 Pos: 3399-3401} + | "Use": + | *name.Name Pos{Line: 161-161 Pos: 3399-3401} + | "Parts": + | *name.NamePart Pos{Line: 161-161 Pos: 3399-3401} map[Value:Foo] + | *stmt.Use Pos{Line: 161-161 Pos: 3405-3407} + | "Use": + | *name.Name Pos{Line: 161-161 Pos: 3405-3407} + | "Parts": + | *name.NamePart Pos{Line: 161-161 Pos: 3405-3407} map[Value:Bar] + | *stmt.UseList Pos{Line: 162-162 Pos: 3412-3445} + | "UseType": + | *node.Identifier map[Value:const] + | "Uses": + | *stmt.Use Pos{Line: 162-162 Pos: 3422-3431} + | "Use": + | *name.Name Pos{Line: 162-162 Pos: 3422-3424} + | "Parts": + | *name.NamePart Pos{Line: 162-162 Pos: 3422-3424} map[Value:Foo] + | "Alias": + | *node.Identifier Pos{Line: 162-162 Pos: 3429-3431} map[Value:foo] + | *stmt.Use Pos{Line: 162-162 Pos: 3435-3444} + | "Use": + | *name.Name Pos{Line: 162-162 Pos: 3435-3437} + | "Parts": + | *name.NamePart Pos{Line: 162-162 Pos: 3435-3437} map[Value:Bar] + | "Alias": + | *node.Identifier Pos{Line: 162-162 Pos: 3442-3444} map[Value:bar] + | *stmt.Expression Pos{Line: 164-164 Pos: 3450-3455} + | "Expr": + | *expr.ArrayDimFetch Pos{Line: 164-164 Pos: 3450-3454} + | "Variable": + | *expr.Variable Pos{Line: 164-164 Pos: 3450-3451} + | "VarName": + | *node.Identifier Pos{Line: 164-164 Pos: 3450-3451} map[Value:$a] + | "Dim": + | *scalar.Lnumber Pos{Line: 164-164 Pos: 3453-3453} map[Value:1] + | *stmt.Expression Pos{Line: 165-165 Pos: 3459-3467} + | "Expr": + | *expr.ArrayDimFetch Pos{Line: 165-165 Pos: 3459-3466} + | "Variable": + | *expr.ArrayDimFetch Pos{Line: 165-165 Pos: 3459-3463} + | "Variable": + | *expr.Variable Pos{Line: 165-165 Pos: 3459-3460} + | "VarName": + | *node.Identifier Pos{Line: 165-165 Pos: 3459-3460} map[Value:$a] + | "Dim": + | *scalar.Lnumber Pos{Line: 165-165 Pos: 3462-3462} map[Value:1] + | "Dim": + | *scalar.Lnumber Pos{Line: 165-165 Pos: 3465-3465} map[Value:2] + | *stmt.Expression Pos{Line: 166-166 Pos: 3471-3478} + | "Expr": + | *expr.Array Pos{Line: 166-166 Pos: 3471-3477} + | "Items": + | *stmt.Expression Pos{Line: 167-167 Pos: 3482-3490} + | "Expr": + | *expr.Array Pos{Line: 167-167 Pos: 3482-3489} + | "Items": + | *expr.ArrayItem Pos{Line: 167-167 Pos: 3488-3488} map[ByRef:false] + | "Val": + | *scalar.Lnumber Pos{Line: 167-167 Pos: 3488-3488} map[Value:1] + | *stmt.Expression Pos{Line: 168-168 Pos: 3494-3511} + | "Expr": + | *expr.Array Pos{Line: 168-168 Pos: 3494-3510} + | "Items": + | *expr.ArrayItem Pos{Line: 168-168 Pos: 3500-3503} map[ByRef:false] + | "Key": + | *scalar.Lnumber Pos{Line: 168-168 Pos: 3500-3500} map[Value:1] + | "Val": + | *scalar.Lnumber Pos{Line: 168-168 Pos: 3503-3503} map[Value:1] + | *expr.ArrayItem Pos{Line: 168-168 Pos: 3506-3508} map[ByRef:true] + | "Val": + | *expr.Variable Pos{Line: 168-168 Pos: 3507-3508} + | "VarName": + | *node.Identifier Pos{Line: 168-168 Pos: 3507-3508} map[Value:$b] + | *stmt.Expression Pos{Line: 169-169 Pos: 3515-3518} + | "Expr": + | *expr.BitwiseNot Pos{Line: 169-169 Pos: 3515-3517} + | "Expr": + | *expr.Variable Pos{Line: 169-169 Pos: 3516-3517} + | "VarName": + | *node.Identifier Pos{Line: 169-169 Pos: 3516-3517} map[Value:$a] + | *stmt.Expression Pos{Line: 170-170 Pos: 3522-3525} + | "Expr": + | *expr.BooleanNot Pos{Line: 170-170 Pos: 3522-3524} + | "Expr": + | *expr.Variable Pos{Line: 170-170 Pos: 3523-3524} + | "VarName": + | *node.Identifier Pos{Line: 170-170 Pos: 3523-3524} map[Value:$a] + | *stmt.Expression Pos{Line: 172-172 Pos: 3530-3538} + | "Expr": + | *expr.ClassConstFetch Pos{Line: 172-172 Pos: 3530-3537} + | "Class": + | *name.Name Pos{Line: 172-172 Pos: 3530-3532} + | "Parts": + | *name.NamePart Pos{Line: 172-172 Pos: 3530-3532} map[Value:Foo] + | "ConstantName": + | *node.Identifier Pos{Line: 172-172 Pos: 3535-3537} map[Value:Bar] + | *stmt.Expression Pos{Line: 173-173 Pos: 3542-3551} + | "Expr": + | *expr.Clone Pos{Line: 173-173 Pos: 3542-3549} + | "Expr": + | *expr.Variable Pos{Line: 173-173 Pos: 3548-3549} + | "VarName": + | *node.Identifier Pos{Line: 173-173 Pos: 3548-3549} map[Value:$a] + | *stmt.Expression Pos{Line: 174-174 Pos: 3555-3563} + | "Expr": + | *expr.Clone Pos{Line: 174-174 Pos: 3555-3562} + | "Expr": + | *expr.Variable Pos{Line: 174-174 Pos: 3561-3562} + | "VarName": + | *node.Identifier Pos{Line: 174-174 Pos: 3561-3562} map[Value:$a] + | *stmt.Expression Pos{Line: 175-175 Pos: 3567-3579} + | "Expr": + | *expr.Closure Pos{Line: 175-175 Pos: 3567-3578} map[ReturnsRef:false Static:false PhpDocComment:] + | "Uses": + | "Stmts": + | *stmt.Expression Pos{Line: 176-176 Pos: 3583-3616} + | "Expr": + | *expr.Closure Pos{Line: 176-176 Pos: 3583-3615} map[ReturnsRef:false Static:false PhpDocComment:] + | "Params": + | *node.Parameter Pos{Line: 176-176 Pos: 3592-3593} map[ByRef:false Variadic:false] + | "Variable": + | *expr.Variable Pos{Line: 176-176 Pos: 3592-3593} + | "VarName": + | *node.Identifier Pos{Line: 176-176 Pos: 3592-3593} map[Value:$a] + | *node.Parameter Pos{Line: 176-176 Pos: 3596-3597} map[ByRef:false Variadic:false] + | "Variable": + | *expr.Variable Pos{Line: 176-176 Pos: 3596-3597} + | "VarName": + | *node.Identifier Pos{Line: 176-176 Pos: 3596-3597} map[Value:$b] + | "Uses": + | *expr.ClosureUse Pos{Line: 176-176 Pos: 3605-3606} map[ByRef:false] + | "Variable": + | *expr.Variable Pos{Line: 176-176 Pos: 3605-3606} + | "VarName": + | *node.Identifier Pos{Line: 176-176 Pos: 3605-3606} map[Value:$c] + | *expr.ClosureUse Pos{Line: 176-176 Pos: 3609-3611} map[ByRef:true] + | "Variable": + | *expr.Variable Pos{Line: 176-176 Pos: 3610-3611} + | "VarName": + | *node.Identifier Pos{Line: 176-176 Pos: 3610-3611} map[Value:$d] + | "Stmts": + | *stmt.Expression Pos{Line: 177-177 Pos: 3620-3633} + | "Expr": + | *expr.Closure Pos{Line: 177-177 Pos: 3620-3632} map[ReturnsRef:false Static:false PhpDocComment:] + | "Uses": + | "Stmts": + | *stmt.Expression Pos{Line: 178-178 Pos: 3637-3640} + | "Expr": + | *expr.ConstFetch Pos{Line: 178-178 Pos: 3637-3639} + | "Constant": + | *name.Name Pos{Line: 178-178 Pos: 3637-3639} + | "Parts": + | *name.NamePart Pos{Line: 178-178 Pos: 3637-3639} map[Value:foo] + | *stmt.Expression Pos{Line: 179-179 Pos: 3644-3657} + | "Expr": + | *expr.ConstFetch Pos{Line: 179-179 Pos: 3644-3656} + | "Constant": + | *name.Relative Pos{Line: 179-179 Pos: 3644-3656} + | "Parts": + | *name.NamePart Pos{Line: 179-179 Pos: 3654-3656} map[Value:foo] + | *stmt.Expression Pos{Line: 180-180 Pos: 3661-3665} + | "Expr": + | *expr.ConstFetch Pos{Line: 180-180 Pos: 3661-3664} + | "Constant": + | *name.FullyQualified Pos{Line: 180-180 Pos: 3661-3664} + | "Parts": + | *name.NamePart Pos{Line: 180-180 Pos: 3662-3664} map[Value:foo] + | *stmt.Expression Pos{Line: 182-182 Pos: 3670-3679} + | "Expr": + | *expr.Empty Pos{Line: 182-182 Pos: 3670-3678} + | "Expr": + | *expr.Variable Pos{Line: 182-182 Pos: 3676-3677} + | "VarName": + | *node.Identifier Pos{Line: 182-182 Pos: 3676-3677} map[Value:$a] + | *stmt.Expression Pos{Line: 183-183 Pos: 3683-3686} + | "Expr": + | *expr.ErrorSuppress Pos{Line: 183-183 Pos: 3683-3685} + | "Expr": + | *expr.Variable Pos{Line: 183-183 Pos: 3684-3685} + | "VarName": + | *node.Identifier Pos{Line: 183-183 Pos: 3684-3685} map[Value:$a] + | *stmt.Expression Pos{Line: 184-184 Pos: 3690-3698} + | "Expr": + | *expr.Eval Pos{Line: 184-184 Pos: 3690-3697} + | "Expr": + | *expr.Variable Pos{Line: 184-184 Pos: 3695-3696} + | "VarName": + | *node.Identifier Pos{Line: 184-184 Pos: 3695-3696} map[Value:$a] + | *stmt.Expression Pos{Line: 185-185 Pos: 3702-3706} + | "Expr": + | *expr.Exit Pos{Line: 185--1 Pos: 3702--1} map[IsDie:false] + | *stmt.Expression Pos{Line: 186-186 Pos: 3710-3718} + | "Expr": + | *expr.Exit Pos{Line: 186-186 Pos: 3710-3716} map[IsDie:false] + | "Expr": + | *expr.Variable Pos{Line: 186-186 Pos: 3715-3716} + | "VarName": + | *node.Identifier Pos{Line: 186-186 Pos: 3715-3716} map[Value:$a] + | *stmt.Expression Pos{Line: 187-187 Pos: 3722-3725} + | "Expr": + | *expr.Exit Pos{Line: 187--1 Pos: 3722--1} map[IsDie:true] + | *stmt.Expression Pos{Line: 188-188 Pos: 3729-3736} + | "Expr": + | *expr.Exit Pos{Line: 188-188 Pos: 3729-3734} map[IsDie:true] + | "Expr": + | *expr.Variable Pos{Line: 188-188 Pos: 3733-3734} + | "VarName": + | *node.Identifier Pos{Line: 188-188 Pos: 3733-3734} map[Value:$a] + | *stmt.Expression Pos{Line: 189-189 Pos: 3740-3745} + | "Expr": + | *expr.FunctionCall Pos{Line: 189-189 Pos: 3740-3744} + | "Function": + | *name.Name Pos{Line: 189-189 Pos: 3740-3742} + | "Parts": + | *name.NamePart Pos{Line: 189-189 Pos: 3740-3742} map[Value:foo] + | "Arguments": + | *stmt.Expression Pos{Line: 190-190 Pos: 3749-3764} + | "Expr": + | *expr.FunctionCall Pos{Line: 190-190 Pos: 3749-3763} + | "Function": + | *name.Relative Pos{Line: 190-190 Pos: 3749-3761} + | "Parts": + | *name.NamePart Pos{Line: 190-190 Pos: 3759-3761} map[Value:foo] + | "Arguments": + | *stmt.Expression Pos{Line: 191-191 Pos: 3768-3774} + | "Expr": + | *expr.FunctionCall Pos{Line: 191-191 Pos: 3768-3773} + | "Function": + | *name.FullyQualified Pos{Line: 191-191 Pos: 3768-3771} + | "Parts": + | *name.NamePart Pos{Line: 191-191 Pos: 3769-3771} map[Value:foo] + | "Arguments": + | *stmt.Expression Pos{Line: 192-192 Pos: 3778-3784} + | "Expr": + | *expr.FunctionCall Pos{Line: 192-192 Pos: 3778-3783} + | "Function": + | *expr.Variable Pos{Line: 192-192 Pos: 3778-3781} + | "VarName": + | *node.Identifier Pos{Line: 192-192 Pos: 3778-3781} map[Value:$foo] + | "Arguments": + | *stmt.Expression Pos{Line: 194-194 Pos: 3789-3793} + | "Expr": + | *expr.PostDec Pos{Line: 194-194 Pos: 3789-3792} + | "Variable": + | *expr.Variable Pos{Line: 194-194 Pos: 3789-3790} + | "VarName": + | *node.Identifier Pos{Line: 194-194 Pos: 3789-3790} map[Value:$a] + | *stmt.Expression Pos{Line: 195-195 Pos: 3797-3801} + | "Expr": + | *expr.PostInc Pos{Line: 195-195 Pos: 3797-3800} + | "Variable": + | *expr.Variable Pos{Line: 195-195 Pos: 3797-3798} + | "VarName": + | *node.Identifier Pos{Line: 195-195 Pos: 3797-3798} map[Value:$a] + | *stmt.Expression Pos{Line: 196-196 Pos: 3805-3809} + | "Expr": + | *expr.PreDec Pos{Line: 196-196 Pos: 3805-3808} + | "Variable": + | *expr.Variable Pos{Line: 196-196 Pos: 3807-3808} + | "VarName": + | *node.Identifier Pos{Line: 196-196 Pos: 3807-3808} map[Value:$a] + | *stmt.Expression Pos{Line: 197-197 Pos: 3813-3817} + | "Expr": + | *expr.PreInc Pos{Line: 197-197 Pos: 3813-3816} + | "Variable": + | *expr.Variable Pos{Line: 197-197 Pos: 3815-3816} + | "VarName": + | *node.Identifier Pos{Line: 197-197 Pos: 3815-3816} map[Value:$a] + | *stmt.Expression Pos{Line: 199-199 Pos: 3822-3832} + | "Expr": + | *expr.Include Pos{Line: 199-199 Pos: 3822-3831} + | "Expr": + | *expr.Variable Pos{Line: 199-199 Pos: 3830-3831} + | "VarName": + | *node.Identifier Pos{Line: 199-199 Pos: 3830-3831} map[Value:$a] + | *stmt.Expression Pos{Line: 200-200 Pos: 3836-3851} + | "Expr": + | *expr.IncludeOnce Pos{Line: 200-200 Pos: 3836-3850} + | "Expr": + | *expr.Variable Pos{Line: 200-200 Pos: 3849-3850} + | "VarName": + | *node.Identifier Pos{Line: 200-200 Pos: 3849-3850} map[Value:$a] + | *stmt.Expression Pos{Line: 201-201 Pos: 3855-3865} + | "Expr": + | *expr.Require Pos{Line: 201-201 Pos: 3855-3864} + | "Expr": + | *expr.Variable Pos{Line: 201-201 Pos: 3863-3864} + | "VarName": + | *node.Identifier Pos{Line: 201-201 Pos: 3863-3864} map[Value:$a] + | *stmt.Expression Pos{Line: 202-202 Pos: 3869-3884} + | "Expr": + | *expr.RequireOnce Pos{Line: 202-202 Pos: 3869-3883} + | "Expr": + | *expr.Variable Pos{Line: 202-202 Pos: 3882-3883} + | "VarName": + | *node.Identifier Pos{Line: 202-202 Pos: 3882-3883} map[Value:$a] + | *stmt.Expression Pos{Line: 204-204 Pos: 3889-3906} + | "Expr": + | *expr.InstanceOf Pos{Line: 204-204 Pos: 3889-3905} + | "Expr": + | *expr.Variable Pos{Line: 204-204 Pos: 3889-3890} + | "VarName": + | *node.Identifier Pos{Line: 204-204 Pos: 3889-3890} map[Value:$a] + | "Class": + | *name.Name Pos{Line: 204-204 Pos: 3903-3905} + | "Parts": + | *name.NamePart Pos{Line: 204-204 Pos: 3903-3905} map[Value:Foo] + | *stmt.Expression Pos{Line: 205-205 Pos: 3910-3937} + | "Expr": + | *expr.InstanceOf Pos{Line: 205-205 Pos: 3910-3936} + | "Expr": + | *expr.Variable Pos{Line: 205-205 Pos: 3910-3911} + | "VarName": + | *node.Identifier Pos{Line: 205-205 Pos: 3910-3911} map[Value:$a] + | "Class": + | *name.Relative Pos{Line: 205-205 Pos: 3924-3936} + | "Parts": + | *name.NamePart Pos{Line: 205-205 Pos: 3934-3936} map[Value:Foo] + | *stmt.Expression Pos{Line: 206-206 Pos: 3941-3959} + | "Expr": + | *expr.InstanceOf Pos{Line: 206-206 Pos: 3941-3958} + | "Expr": + | *expr.Variable Pos{Line: 206-206 Pos: 3941-3942} + | "VarName": + | *node.Identifier Pos{Line: 206-206 Pos: 3941-3942} map[Value:$a] + | "Class": + | *name.FullyQualified Pos{Line: 206-206 Pos: 3955-3958} + | "Parts": + | *name.NamePart Pos{Line: 206-206 Pos: 3956-3958} map[Value:Foo] + | *stmt.Expression Pos{Line: 208-208 Pos: 3964-3977} + | "Expr": + | *expr.Isset Pos{Line: 208-208 Pos: 3964-3976} + | "Variables": + | *expr.Variable Pos{Line: 208-208 Pos: 3970-3971} + | "VarName": + | *node.Identifier Pos{Line: 208-208 Pos: 3970-3971} map[Value:$a] + | *expr.Variable Pos{Line: 208-208 Pos: 3974-3975} + | "VarName": + | *node.Identifier Pos{Line: 208-208 Pos: 3974-3975} map[Value:$b] + | *stmt.Expression Pos{Line: 209-209 Pos: 3981-3994} + | "Expr": + | *assign_op.Assign Pos{Line: 209-209 Pos: 3981-3993} + | "Variable": + | *expr.List Pos{Line: 209-209 Pos: 3981-3988} + | "Items": + | *expr.ArrayItem Pos{Line: 209-209 Pos: 3986-3987} map[ByRef:false] + | "Val": + | *expr.Variable Pos{Line: 209-209 Pos: 3986-3987} + | "VarName": + | *node.Identifier Pos{Line: 209-209 Pos: 3986-3987} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 209-209 Pos: 3992-3993} + | "VarName": + | *node.Identifier Pos{Line: 209-209 Pos: 3992-3993} map[Value:$b] + | *stmt.Expression Pos{Line: 210-210 Pos: 3998-4013} + | "Expr": + | *assign_op.Assign Pos{Line: 210-210 Pos: 3998-4012} + | "Variable": + | *expr.List Pos{Line: 210-210 Pos: 3998-4007} + | "Items": + | *expr.ArrayItem Pos{Line: 210-210 Pos: 4003-4006} map[ByRef:false] + | "Val": + | *expr.ArrayDimFetch Pos{Line: 210-210 Pos: 4003-4006} + | "Variable": + | *expr.Variable Pos{Line: 210-210 Pos: 4003-4004} + | "VarName": + | *node.Identifier Pos{Line: 210-210 Pos: 4003-4004} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 210-210 Pos: 4011-4012} + | "VarName": + | *node.Identifier Pos{Line: 210-210 Pos: 4011-4012} map[Value:$b] + | *stmt.Expression Pos{Line: 211-211 Pos: 4017-4036} + | "Expr": + | *assign_op.Assign Pos{Line: 211-211 Pos: 4017-4035} + | "Variable": + | *expr.List Pos{Line: 211-211 Pos: 4017-4030} + | "Items": + | *expr.ArrayItem Pos{Line: 211-211 Pos: 4022-4029} map[ByRef:false] + | "Val": + | *expr.List Pos{Line: 211-211 Pos: 4022-4029} + | "Items": + | *expr.ArrayItem Pos{Line: 211-211 Pos: 4027-4028} map[ByRef:false] + | "Val": + | *expr.Variable Pos{Line: 211-211 Pos: 4027-4028} + | "VarName": + | *node.Identifier Pos{Line: 211-211 Pos: 4027-4028} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 211-211 Pos: 4034-4035} + | "VarName": + | *node.Identifier Pos{Line: 211-211 Pos: 4034-4035} map[Value:$b] + | *stmt.Expression Pos{Line: -1-213 Pos: -1-4050} + | "Expr": + | *expr.MethodCall Pos{Line: -1-213 Pos: -1-4049} + | "Variable": + | *expr.Variable Pos{Line: 213-213 Pos: 4041-4049} + | "VarName": + | *node.Identifier Pos{Line: 213-213 Pos: 4041-4042} map[Value:$a] + | "Method": + | *node.Identifier Pos{Line: 213-213 Pos: 4045-4047} map[Value:foo] + | "Arguments": + | *stmt.Expression Pos{Line: 214-214 Pos: 4054-4063} + | "Expr": + | *expr.New Pos{Line: 214-214 Pos: 4054-4062} + | "Class": + | *name.Name Pos{Line: 214-214 Pos: 4058-4060} + | "Parts": + | *name.NamePart Pos{Line: 214-214 Pos: 4058-4060} map[Value:Foo] + | "Arguments": + | *stmt.Expression Pos{Line: 215-215 Pos: 4067-4086} + | "Expr": + | *expr.New Pos{Line: 215-215 Pos: 4067-4085} + | "Class": + | *name.Relative Pos{Line: 215-215 Pos: 4071-4083} + | "Parts": + | *name.NamePart Pos{Line: 215-215 Pos: 4081-4083} map[Value:Foo] + | "Arguments": + | *stmt.Expression Pos{Line: 216-216 Pos: 4090-4100} + | "Expr": + | *expr.New Pos{Line: 216-216 Pos: 4090-4099} + | "Class": + | *name.FullyQualified Pos{Line: 216-216 Pos: 4094-4097} + | "Parts": + | *name.NamePart Pos{Line: 216-216 Pos: 4095-4097} map[Value:Foo] + | "Arguments": + | *stmt.Expression Pos{Line: 217-217 Pos: 4104-4113} + | "Expr": + | *expr.Print Pos{Line: 217-217 Pos: 4104-4111} + | "Expr": + | *expr.Variable Pos{Line: 217-217 Pos: 4110-4111} + | "VarName": + | *node.Identifier Pos{Line: 217-217 Pos: 4110-4111} map[Value:$a] + | *stmt.Expression Pos{Line: 218-218 Pos: 4121-4124} + | "Expr": + | *expr.PropertyFetch Pos{Line: 218-218 Pos: 4121-4123} + | "Variable": + | *expr.Variable Pos{Line: 218-218 Pos: 4117-4123} + | "VarName": + | *node.Identifier Pos{Line: 218-218 Pos: 4117-4118} map[Value:$a] + | "Property": + | *node.Identifier Pos{Line: 218-218 Pos: 4121-4123} map[Value:foo] + | *stmt.Expression Pos{Line: 219-219 Pos: 4127-4135} + | "Expr": + | *expr.ShellExec Pos{Line: 219-219 Pos: 4127-4134} + | "Parts": + | *scalar.EncapsedStringPart Pos{Line: 219-219 Pos: 4128-4131} map[Value:cmd ] + | *expr.Variable Pos{Line: 219-219 Pos: 4132-4133} + | "VarName": + | *node.Identifier Pos{Line: 219-219 Pos: 4132-4133} map[Value:$a] + | *stmt.Expression Pos{Line: 220-220 Pos: 4139-4141} + | "Expr": + | *expr.ShortArray Pos{Line: 220-220 Pos: 4139-4140} + | "Items": + | *stmt.Expression Pos{Line: 221-221 Pos: 4145-4148} + | "Expr": + | *expr.ShortArray Pos{Line: 221-221 Pos: 4145-4147} + | "Items": + | *expr.ArrayItem Pos{Line: 221-221 Pos: 4146-4146} map[ByRef:false] + | "Val": + | *scalar.Lnumber Pos{Line: 221-221 Pos: 4146-4146} map[Value:1] + | *stmt.Expression Pos{Line: 222-222 Pos: 4152-4164} + | "Expr": + | *expr.ShortArray Pos{Line: 222-222 Pos: 4152-4163} + | "Items": + | *expr.ArrayItem Pos{Line: 222-222 Pos: 4153-4156} map[ByRef:false] + | "Key": + | *scalar.Lnumber Pos{Line: 222-222 Pos: 4153-4153} map[Value:1] + | "Val": + | *scalar.Lnumber Pos{Line: 222-222 Pos: 4156-4156} map[Value:1] + | *expr.ArrayItem Pos{Line: 222-222 Pos: 4159-4161} map[ByRef:true] + | "Val": + | *expr.Variable Pos{Line: 222-222 Pos: 4160-4161} + | "VarName": + | *node.Identifier Pos{Line: 222-222 Pos: 4160-4161} map[Value:$b] + | *stmt.Expression Pos{Line: 224-224 Pos: 4169-4179} + | "Expr": + | *expr.StaticCall Pos{Line: 224-224 Pos: 4169-4178} + | "Class": + | *name.Name Pos{Line: 224-224 Pos: 4169-4171} + | "Parts": + | *name.NamePart Pos{Line: 224-224 Pos: 4169-4171} map[Value:Foo] + | "Call": + | *node.Identifier Pos{Line: 224-224 Pos: 4174-4176} map[Value:bar] + | "Arguments": + | *stmt.Expression Pos{Line: 225-225 Pos: 4183-4203} + | "Expr": + | *expr.StaticCall Pos{Line: 225-225 Pos: 4183-4202} + | "Class": + | *name.Relative Pos{Line: 225-225 Pos: 4183-4195} + | "Parts": + | *name.NamePart Pos{Line: 225-225 Pos: 4193-4195} map[Value:Foo] + | "Call": + | *node.Identifier Pos{Line: 225-225 Pos: 4198-4200} map[Value:bar] + | "Arguments": + | *stmt.Expression Pos{Line: 226-226 Pos: 4207-4218} + | "Expr": + | *expr.StaticCall Pos{Line: 226-226 Pos: 4207-4217} + | "Class": + | *name.FullyQualified Pos{Line: 226-226 Pos: 4207-4210} + | "Parts": + | *name.NamePart Pos{Line: 226-226 Pos: 4208-4210} map[Value:Foo] + | "Call": + | *node.Identifier Pos{Line: 226-226 Pos: 4213-4215} map[Value:bar] + | "Arguments": + | *stmt.Expression Pos{Line: 227-227 Pos: 4222-4231} + | "Expr": + | *expr.StaticPropertyFetch Pos{Line: 227-227 Pos: 4222-4230} + | "Class": + | *name.Name Pos{Line: 227-227 Pos: 4222-4224} + | "Parts": + | *name.NamePart Pos{Line: 227-227 Pos: 4222-4224} map[Value:Foo] + | "Property": + | *expr.Variable Pos{Line: 227-227 Pos: 4227-4230} + | "VarName": + | *node.Identifier Pos{Line: 227-227 Pos: 4227-4230} map[Value:$bar] + | *stmt.Expression Pos{Line: 228-228 Pos: 4235-4254} + | "Expr": + | *expr.StaticPropertyFetch Pos{Line: 228-228 Pos: 4235-4253} + | "Class": + | *name.Relative Pos{Line: 228-228 Pos: 4235-4247} + | "Parts": + | *name.NamePart Pos{Line: 228-228 Pos: 4245-4247} map[Value:Foo] + | "Property": + | *expr.Variable Pos{Line: 228-228 Pos: 4250-4253} + | "VarName": + | *node.Identifier Pos{Line: 228-228 Pos: 4250-4253} map[Value:$bar] + | *stmt.Expression Pos{Line: 229-229 Pos: 4258-4268} + | "Expr": + | *expr.StaticPropertyFetch Pos{Line: 229-229 Pos: 4258-4267} + | "Class": + | *name.FullyQualified Pos{Line: 229-229 Pos: 4258-4261} + | "Parts": + | *name.NamePart Pos{Line: 229-229 Pos: 4259-4261} map[Value:Foo] + | "Property": + | *expr.Variable Pos{Line: 229-229 Pos: 4264-4267} + | "VarName": + | *node.Identifier Pos{Line: 229-229 Pos: 4264-4267} map[Value:$bar] + | *stmt.Expression Pos{Line: 230-230 Pos: 4272-4284} + | "Expr": + | *expr.Ternary Pos{Line: 230-230 Pos: 4272-4283} + | "Condition": + | *expr.Variable Pos{Line: 230-230 Pos: 4272-4273} + | "VarName": + | *node.Identifier Pos{Line: 230-230 Pos: 4272-4273} map[Value:$a] + | "IfTrue": + | *expr.Variable Pos{Line: 230-230 Pos: 4277-4278} + | "VarName": + | *node.Identifier Pos{Line: 230-230 Pos: 4277-4278} map[Value:$b] + | "IfFalse": + | *expr.Variable Pos{Line: 230-230 Pos: 4282-4283} + | "VarName": + | *node.Identifier Pos{Line: 230-230 Pos: 4282-4283} map[Value:$c] + | *stmt.Expression Pos{Line: 231-231 Pos: 4288-4297} + | "Expr": + | *expr.Ternary Pos{Line: 231-231 Pos: 4288-4296} + | "Condition": + | *expr.Variable Pos{Line: 231-231 Pos: 4288-4289} + | "VarName": + | *node.Identifier Pos{Line: 231-231 Pos: 4288-4289} map[Value:$a] + | "IfFalse": + | *expr.Variable Pos{Line: 231-231 Pos: 4295-4296} + | "VarName": + | *node.Identifier Pos{Line: 231-231 Pos: 4295-4296} map[Value:$c] + | *stmt.Expression Pos{Line: 232-232 Pos: 4301-4323} + | "Expr": + | *expr.Ternary Pos{Line: 232-232 Pos: 4301-4322} + | "Condition": + | *expr.Variable Pos{Line: 232-232 Pos: 4301-4302} + | "VarName": + | *node.Identifier Pos{Line: 232-232 Pos: 4301-4302} map[Value:$a] + | "IfTrue": + | *expr.Ternary Pos{Line: 232-232 Pos: 4306-4317} + | "Condition": + | *expr.Variable Pos{Line: 232-232 Pos: 4306-4307} + | "VarName": + | *node.Identifier Pos{Line: 232-232 Pos: 4306-4307} map[Value:$b] + | "IfTrue": + | *expr.Variable Pos{Line: 232-232 Pos: 4311-4312} + | "VarName": + | *node.Identifier Pos{Line: 232-232 Pos: 4311-4312} map[Value:$c] + | "IfFalse": + | *expr.Variable Pos{Line: 232-232 Pos: 4316-4317} + | "VarName": + | *node.Identifier Pos{Line: 232-232 Pos: 4316-4317} map[Value:$d] + | "IfFalse": + | *expr.Variable Pos{Line: 232-232 Pos: 4321-4322} + | "VarName": + | *node.Identifier Pos{Line: 232-232 Pos: 4321-4322} map[Value:$e] + | *stmt.Expression Pos{Line: 233-233 Pos: 4327-4349} + | "Expr": + | *expr.Ternary Pos{Line: 233-233 Pos: 4327-4348} + | "Condition": + | *expr.Ternary Pos{Line: 233-233 Pos: 4327-4338} + | "Condition": + | *expr.Variable Pos{Line: 233-233 Pos: 4327-4328} + | "VarName": + | *node.Identifier Pos{Line: 233-233 Pos: 4327-4328} map[Value:$a] + | "IfTrue": + | *expr.Variable Pos{Line: 233-233 Pos: 4332-4333} + | "VarName": + | *node.Identifier Pos{Line: 233-233 Pos: 4332-4333} map[Value:$b] + | "IfFalse": + | *expr.Variable Pos{Line: 233-233 Pos: 4337-4338} + | "VarName": + | *node.Identifier Pos{Line: 233-233 Pos: 4337-4338} map[Value:$c] + | "IfTrue": + | *expr.Variable Pos{Line: 233-233 Pos: 4342-4343} + | "VarName": + | *node.Identifier Pos{Line: 233-233 Pos: 4342-4343} map[Value:$d] + | "IfFalse": + | *expr.Variable Pos{Line: 233-233 Pos: 4347-4348} + | "VarName": + | *node.Identifier Pos{Line: 233-233 Pos: 4347-4348} map[Value:$e] + | *stmt.Expression Pos{Line: 234-234 Pos: 4353-4356} + | "Expr": + | *expr.UnaryMinus Pos{Line: 234-234 Pos: 4353-4355} + | "Expr": + | *expr.Variable Pos{Line: 234-234 Pos: 4354-4355} + | "VarName": + | *node.Identifier Pos{Line: 234-234 Pos: 4354-4355} map[Value:$a] + | *stmt.Expression Pos{Line: 235-235 Pos: 4360-4363} + | "Expr": + | *expr.UnaryPlus Pos{Line: 235-235 Pos: 4360-4362} + | "Expr": + | *expr.Variable Pos{Line: 235-235 Pos: 4361-4362} + | "VarName": + | *node.Identifier Pos{Line: 235-235 Pos: 4361-4362} map[Value:$a] + | *stmt.Expression Pos{Line: 236-236 Pos: 4367-4370} + | "Expr": + | *expr.Variable Pos{Line: 236-236 Pos: 4367-4369} + | "VarName": + | *expr.Variable Pos{Line: 236-236 Pos: 4368-4369} + | "VarName": + | *node.Identifier Pos{Line: 236-236 Pos: 4368-4369} map[Value:$a] + | *stmt.Expression Pos{Line: 237-237 Pos: 4374-4379} + | "Expr": + | *expr.Yield Pos{Line: 237-237 Pos: 4374-4378} + | *stmt.Expression Pos{Line: 238-238 Pos: 4383-4390} + | "Expr": + | *expr.Yield Pos{Line: 238-238 Pos: 4383-4390} + | "Value": + | *expr.Variable Pos{Line: 238-238 Pos: 4389-4390} + | "VarName": + | *node.Identifier Pos{Line: 238-238 Pos: 4389-4390} map[Value:$a] + | *stmt.Expression Pos{Line: 239-239 Pos: 4395-4408} + | "Expr": + | *expr.Yield Pos{Line: 239-239 Pos: 4395-4408} + | "Key": + | *expr.Variable Pos{Line: 239-239 Pos: 4401-4402} + | "VarName": + | *node.Identifier Pos{Line: 239-239 Pos: 4401-4402} map[Value:$a] + | "Value": + | *expr.Variable Pos{Line: 239-239 Pos: 4407-4408} + | "VarName": + | *node.Identifier Pos{Line: 239-239 Pos: 4407-4408} map[Value:$b] + | *stmt.Expression Pos{Line: 241-241 Pos: 4416-4425} + | "Expr": + | *cast.CastArray Pos{Line: 241-241 Pos: 4416-4424} + | "Expr": + | *expr.Variable Pos{Line: 241-241 Pos: 4423-4424} + | "VarName": + | *node.Identifier Pos{Line: 241-241 Pos: 4423-4424} map[Value:$a] + | *stmt.Expression Pos{Line: 242-242 Pos: 4429-4440} + | "Expr": + | *cast.CastBool Pos{Line: 242-242 Pos: 4429-4439} + | "Expr": + | *expr.Variable Pos{Line: 242-242 Pos: 4438-4439} + | "VarName": + | *node.Identifier Pos{Line: 242-242 Pos: 4438-4439} map[Value:$a] + | *stmt.Expression Pos{Line: 243-243 Pos: 4444-4452} + | "Expr": + | *cast.CastBool Pos{Line: 243-243 Pos: 4444-4451} + | "Expr": + | *expr.Variable Pos{Line: 243-243 Pos: 4450-4451} + | "VarName": + | *node.Identifier Pos{Line: 243-243 Pos: 4450-4451} map[Value:$a] + | *stmt.Expression Pos{Line: 244-244 Pos: 4456-4466} + | "Expr": + | *cast.CastDouble Pos{Line: 244-244 Pos: 4456-4465} + | "Expr": + | *expr.Variable Pos{Line: 244-244 Pos: 4464-4465} + | "VarName": + | *node.Identifier Pos{Line: 244-244 Pos: 4464-4465} map[Value:$a] + | *stmt.Expression Pos{Line: 245-245 Pos: 4470-4479} + | "Expr": + | *cast.CastDouble Pos{Line: 245-245 Pos: 4470-4478} + | "Expr": + | *expr.Variable Pos{Line: 245-245 Pos: 4477-4478} + | "VarName": + | *node.Identifier Pos{Line: 245-245 Pos: 4477-4478} map[Value:$a] + | *stmt.Expression Pos{Line: 246-246 Pos: 4483-4494} + | "Expr": + | *cast.CastInt Pos{Line: 246-246 Pos: 4483-4493} + | "Expr": + | *expr.Variable Pos{Line: 246-246 Pos: 4492-4493} + | "VarName": + | *node.Identifier Pos{Line: 246-246 Pos: 4492-4493} map[Value:$a] + | *stmt.Expression Pos{Line: 247-247 Pos: 4498-4505} + | "Expr": + | *cast.CastInt Pos{Line: 247-247 Pos: 4498-4504} + | "Expr": + | *expr.Variable Pos{Line: 247-247 Pos: 4503-4504} + | "VarName": + | *node.Identifier Pos{Line: 247-247 Pos: 4503-4504} map[Value:$a] + | *stmt.Expression Pos{Line: 248-248 Pos: 4509-4519} + | "Expr": + | *cast.CastObject Pos{Line: 248-248 Pos: 4509-4518} + | "Expr": + | *expr.Variable Pos{Line: 248-248 Pos: 4517-4518} + | "VarName": + | *node.Identifier Pos{Line: 248-248 Pos: 4517-4518} map[Value:$a] + | *stmt.Expression Pos{Line: 249-249 Pos: 4523-4533} + | "Expr": + | *cast.CastString Pos{Line: 249-249 Pos: 4523-4532} + | "Expr": + | *expr.Variable Pos{Line: 249-249 Pos: 4531-4532} + | "VarName": + | *node.Identifier Pos{Line: 249-249 Pos: 4531-4532} map[Value:$a] + | *stmt.Expression Pos{Line: 250-250 Pos: 4537-4546} + | "Expr": + | *cast.CastUnset Pos{Line: 250-250 Pos: 4537-4545} + | "Expr": + | *expr.Variable Pos{Line: 250-250 Pos: 4544-4545} + | "VarName": + | *node.Identifier Pos{Line: 250-250 Pos: 4544-4545} map[Value:$a] + | *stmt.Expression Pos{Line: 252-252 Pos: 4551-4558} + | "Expr": + | *binary_op.BitwiseAnd Pos{Line: 252-252 Pos: 4551-4557} + | "Left": + | *expr.Variable Pos{Line: 252-252 Pos: 4551-4552} + | "VarName": + | *node.Identifier Pos{Line: 252-252 Pos: 4551-4552} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 252-252 Pos: 4556-4557} + | "VarName": + | *node.Identifier Pos{Line: 252-252 Pos: 4556-4557} map[Value:$b] + | *stmt.Expression Pos{Line: 253-253 Pos: 4562-4569} + | "Expr": + | *binary_op.BitwiseOr Pos{Line: 253-253 Pos: 4562-4568} + | "Left": + | *expr.Variable Pos{Line: 253-253 Pos: 4562-4563} + | "VarName": + | *node.Identifier Pos{Line: 253-253 Pos: 4562-4563} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 253-253 Pos: 4567-4568} + | "VarName": + | *node.Identifier Pos{Line: 253-253 Pos: 4567-4568} map[Value:$b] + | *stmt.Expression Pos{Line: 254-254 Pos: 4573-4580} + | "Expr": + | *binary_op.BitwiseXor Pos{Line: 254-254 Pos: 4573-4579} + | "Left": + | *expr.Variable Pos{Line: 254-254 Pos: 4573-4574} + | "VarName": + | *node.Identifier Pos{Line: 254-254 Pos: 4573-4574} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 254-254 Pos: 4578-4579} + | "VarName": + | *node.Identifier Pos{Line: 254-254 Pos: 4578-4579} map[Value:$b] + | *stmt.Expression Pos{Line: 255-255 Pos: 4584-4592} + | "Expr": + | *binary_op.BooleanAnd Pos{Line: 255-255 Pos: 4584-4591} + | "Left": + | *expr.Variable Pos{Line: 255-255 Pos: 4584-4585} + | "VarName": + | *node.Identifier Pos{Line: 255-255 Pos: 4584-4585} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 255-255 Pos: 4590-4591} + | "VarName": + | *node.Identifier Pos{Line: 255-255 Pos: 4590-4591} map[Value:$b] + | *stmt.Expression Pos{Line: 256-256 Pos: 4596-4604} + | "Expr": + | *binary_op.BooleanOr Pos{Line: 256-256 Pos: 4596-4603} + | "Left": + | *expr.Variable Pos{Line: 256-256 Pos: 4596-4597} + | "VarName": + | *node.Identifier Pos{Line: 256-256 Pos: 4596-4597} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 256-256 Pos: 4602-4603} + | "VarName": + | *node.Identifier Pos{Line: 256-256 Pos: 4602-4603} map[Value:$b] + | *stmt.Expression Pos{Line: 257-257 Pos: 4608-4615} + | "Expr": + | *binary_op.Concat Pos{Line: 257-257 Pos: 4608-4614} + | "Left": + | *expr.Variable Pos{Line: 257-257 Pos: 4608-4609} + | "VarName": + | *node.Identifier Pos{Line: 257-257 Pos: 4608-4609} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 257-257 Pos: 4613-4614} + | "VarName": + | *node.Identifier Pos{Line: 257-257 Pos: 4613-4614} map[Value:$b] + | *stmt.Expression Pos{Line: 258-258 Pos: 4619-4626} + | "Expr": + | *binary_op.Div Pos{Line: 258-258 Pos: 4619-4625} + | "Left": + | *expr.Variable Pos{Line: 258-258 Pos: 4619-4620} + | "VarName": + | *node.Identifier Pos{Line: 258-258 Pos: 4619-4620} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 258-258 Pos: 4624-4625} + | "VarName": + | *node.Identifier Pos{Line: 258-258 Pos: 4624-4625} map[Value:$b] + | *stmt.Expression Pos{Line: 259-259 Pos: 4630-4638} + | "Expr": + | *binary_op.Equal Pos{Line: 259-259 Pos: 4630-4637} + | "Left": + | *expr.Variable Pos{Line: 259-259 Pos: 4630-4631} + | "VarName": + | *node.Identifier Pos{Line: 259-259 Pos: 4630-4631} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 259-259 Pos: 4636-4637} + | "VarName": + | *node.Identifier Pos{Line: 259-259 Pos: 4636-4637} map[Value:$b] + | *stmt.Expression Pos{Line: 260-260 Pos: 4642-4650} + | "Expr": + | *binary_op.GreaterOrEqual Pos{Line: 260-260 Pos: 4642-4649} + | "Left": + | *expr.Variable Pos{Line: 260-260 Pos: 4642-4643} + | "VarName": + | *node.Identifier Pos{Line: 260-260 Pos: 4642-4643} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 260-260 Pos: 4648-4649} + | "VarName": + | *node.Identifier Pos{Line: 260-260 Pos: 4648-4649} map[Value:$b] + | *stmt.Expression Pos{Line: 261-261 Pos: 4654-4661} + | "Expr": + | *binary_op.Greater Pos{Line: 261-261 Pos: 4654-4660} + | "Left": + | *expr.Variable Pos{Line: 261-261 Pos: 4654-4655} + | "VarName": + | *node.Identifier Pos{Line: 261-261 Pos: 4654-4655} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 261-261 Pos: 4659-4660} + | "VarName": + | *node.Identifier Pos{Line: 261-261 Pos: 4659-4660} map[Value:$b] + | *stmt.Expression Pos{Line: 262-262 Pos: 4665-4674} + | "Expr": + | *binary_op.Identical Pos{Line: 262-262 Pos: 4665-4673} + | "Left": + | *expr.Variable Pos{Line: 262-262 Pos: 4665-4666} + | "VarName": + | *node.Identifier Pos{Line: 262-262 Pos: 4665-4666} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 262-262 Pos: 4672-4673} + | "VarName": + | *node.Identifier Pos{Line: 262-262 Pos: 4672-4673} map[Value:$b] + | *stmt.Expression Pos{Line: 263-263 Pos: 4678-4687} + | "Expr": + | *binary_op.LogicalAnd Pos{Line: 263-263 Pos: 4678-4686} + | "Left": + | *expr.Variable Pos{Line: 263-263 Pos: 4678-4679} + | "VarName": + | *node.Identifier Pos{Line: 263-263 Pos: 4678-4679} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 263-263 Pos: 4685-4686} + | "VarName": + | *node.Identifier Pos{Line: 263-263 Pos: 4685-4686} map[Value:$b] + | *stmt.Expression Pos{Line: 264-264 Pos: 4691-4699} + | "Expr": + | *binary_op.LogicalOr Pos{Line: 264-264 Pos: 4691-4698} + | "Left": + | *expr.Variable Pos{Line: 264-264 Pos: 4691-4692} + | "VarName": + | *node.Identifier Pos{Line: 264-264 Pos: 4691-4692} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 264-264 Pos: 4697-4698} + | "VarName": + | *node.Identifier Pos{Line: 264-264 Pos: 4697-4698} map[Value:$b] + | *stmt.Expression Pos{Line: 265-265 Pos: 4703-4712} + | "Expr": + | *binary_op.LogicalXor Pos{Line: 265-265 Pos: 4703-4711} + | "Left": + | *expr.Variable Pos{Line: 265-265 Pos: 4703-4704} + | "VarName": + | *node.Identifier Pos{Line: 265-265 Pos: 4703-4704} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 265-265 Pos: 4710-4711} + | "VarName": + | *node.Identifier Pos{Line: 265-265 Pos: 4710-4711} map[Value:$b] + | *stmt.Expression Pos{Line: 266-266 Pos: 4716-4723} + | "Expr": + | *binary_op.Minus Pos{Line: 266-266 Pos: 4716-4722} + | "Left": + | *expr.Variable Pos{Line: 266-266 Pos: 4716-4717} + | "VarName": + | *node.Identifier Pos{Line: 266-266 Pos: 4716-4717} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 266-266 Pos: 4721-4722} + | "VarName": + | *node.Identifier Pos{Line: 266-266 Pos: 4721-4722} map[Value:$b] + | *stmt.Expression Pos{Line: 267-267 Pos: 4727-4734} + | "Expr": + | *binary_op.Mod Pos{Line: 267-267 Pos: 4727-4733} + | "Left": + | *expr.Variable Pos{Line: 267-267 Pos: 4727-4728} + | "VarName": + | *node.Identifier Pos{Line: 267-267 Pos: 4727-4728} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 267-267 Pos: 4732-4733} + | "VarName": + | *node.Identifier Pos{Line: 267-267 Pos: 4732-4733} map[Value:$b] + | *stmt.Expression Pos{Line: 268-268 Pos: 4738-4745} + | "Expr": + | *binary_op.Mul Pos{Line: 268-268 Pos: 4738-4744} + | "Left": + | *expr.Variable Pos{Line: 268-268 Pos: 4738-4739} + | "VarName": + | *node.Identifier Pos{Line: 268-268 Pos: 4738-4739} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 268-268 Pos: 4743-4744} + | "VarName": + | *node.Identifier Pos{Line: 268-268 Pos: 4743-4744} map[Value:$b] + | *stmt.Expression Pos{Line: 269-269 Pos: 4749-4757} + | "Expr": + | *binary_op.NotEqual Pos{Line: 269-269 Pos: 4749-4756} + | "Left": + | *expr.Variable Pos{Line: 269-269 Pos: 4749-4750} + | "VarName": + | *node.Identifier Pos{Line: 269-269 Pos: 4749-4750} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 269-269 Pos: 4755-4756} + | "VarName": + | *node.Identifier Pos{Line: 269-269 Pos: 4755-4756} map[Value:$b] + | *stmt.Expression Pos{Line: 270-270 Pos: 4761-4770} + | "Expr": + | *binary_op.NotIdentical Pos{Line: 270-270 Pos: 4761-4769} + | "Left": + | *expr.Variable Pos{Line: 270-270 Pos: 4761-4762} + | "VarName": + | *node.Identifier Pos{Line: 270-270 Pos: 4761-4762} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 270-270 Pos: 4768-4769} + | "VarName": + | *node.Identifier Pos{Line: 270-270 Pos: 4768-4769} map[Value:$b] + | *stmt.Expression Pos{Line: 271-271 Pos: 4774-4781} + | "Expr": + | *binary_op.Plus Pos{Line: 271-271 Pos: 4774-4780} + | "Left": + | *expr.Variable Pos{Line: 271-271 Pos: 4774-4775} + | "VarName": + | *node.Identifier Pos{Line: 271-271 Pos: 4774-4775} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 271-271 Pos: 4779-4780} + | "VarName": + | *node.Identifier Pos{Line: 271-271 Pos: 4779-4780} map[Value:$b] + | *stmt.Expression Pos{Line: 272-272 Pos: 4785-4793} + | "Expr": + | *binary_op.Pow Pos{Line: 272-272 Pos: 4785-4792} + | "Left": + | *expr.Variable Pos{Line: 272-272 Pos: 4785-4786} + | "VarName": + | *node.Identifier Pos{Line: 272-272 Pos: 4785-4786} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 272-272 Pos: 4791-4792} + | "VarName": + | *node.Identifier Pos{Line: 272-272 Pos: 4791-4792} map[Value:$b] + | *stmt.Expression Pos{Line: 273-273 Pos: 4797-4805} + | "Expr": + | *binary_op.ShiftLeft Pos{Line: 273-273 Pos: 4797-4804} + | "Left": + | *expr.Variable Pos{Line: 273-273 Pos: 4797-4798} + | "VarName": + | *node.Identifier Pos{Line: 273-273 Pos: 4797-4798} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 273-273 Pos: 4803-4804} + | "VarName": + | *node.Identifier Pos{Line: 273-273 Pos: 4803-4804} map[Value:$b] + | *stmt.Expression Pos{Line: 274-274 Pos: 4809-4817} + | "Expr": + | *binary_op.ShiftRight Pos{Line: 274-274 Pos: 4809-4816} + | "Left": + | *expr.Variable Pos{Line: 274-274 Pos: 4809-4810} + | "VarName": + | *node.Identifier Pos{Line: 274-274 Pos: 4809-4810} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 274-274 Pos: 4815-4816} + | "VarName": + | *node.Identifier Pos{Line: 274-274 Pos: 4815-4816} map[Value:$b] + | *stmt.Expression Pos{Line: 275-275 Pos: 4821-4829} + | "Expr": + | *binary_op.SmallerOrEqual Pos{Line: 275-275 Pos: 4821-4828} + | "Left": + | *expr.Variable Pos{Line: 275-275 Pos: 4821-4822} + | "VarName": + | *node.Identifier Pos{Line: 275-275 Pos: 4821-4822} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 275-275 Pos: 4827-4828} + | "VarName": + | *node.Identifier Pos{Line: 275-275 Pos: 4827-4828} map[Value:$b] + | *stmt.Expression Pos{Line: 276-276 Pos: 4833-4840} + | "Expr": + | *binary_op.Smaller Pos{Line: 276-276 Pos: 4833-4839} + | "Left": + | *expr.Variable Pos{Line: 276-276 Pos: 4833-4834} + | "VarName": + | *node.Identifier Pos{Line: 276-276 Pos: 4833-4834} map[Value:$a] + | "Right": + | *expr.Variable Pos{Line: 276-276 Pos: 4838-4839} + | "VarName": + | *node.Identifier Pos{Line: 276-276 Pos: 4838-4839} map[Value:$b] + | *stmt.Expression Pos{Line: 278-278 Pos: 4845-4853} + | "Expr": + | *assign_op.AssignRef Pos{Line: 278-278 Pos: 4845-4852} + | "Variable": + | *expr.Variable Pos{Line: 278-278 Pos: 4845-4846} + | "VarName": + | *node.Identifier Pos{Line: 278-278 Pos: 4845-4846} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 278-278 Pos: 4851-4852} + | "VarName": + | *node.Identifier Pos{Line: 278-278 Pos: 4851-4852} map[Value:$b] + | *stmt.Expression Pos{Line: 279-279 Pos: 4857-4864} + | "Expr": + | *assign_op.Assign Pos{Line: 279-279 Pos: 4857-4863} + | "Variable": + | *expr.Variable Pos{Line: 279-279 Pos: 4857-4858} + | "VarName": + | *node.Identifier Pos{Line: 279-279 Pos: 4857-4858} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 279-279 Pos: 4862-4863} + | "VarName": + | *node.Identifier Pos{Line: 279-279 Pos: 4862-4863} map[Value:$b] + | *stmt.Expression Pos{Line: 280-280 Pos: 4868-4876} + | "Expr": + | *assign_op.BitwiseAnd Pos{Line: 280-280 Pos: 4868-4875} + | "Variable": + | *expr.Variable Pos{Line: 280-280 Pos: 4868-4869} + | "VarName": + | *node.Identifier Pos{Line: 280-280 Pos: 4868-4869} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 280-280 Pos: 4874-4875} + | "VarName": + | *node.Identifier Pos{Line: 280-280 Pos: 4874-4875} map[Value:$b] + | *stmt.Expression Pos{Line: 281-281 Pos: 4880-4888} + | "Expr": + | *assign_op.BitwiseOr Pos{Line: 281-281 Pos: 4880-4887} + | "Variable": + | *expr.Variable Pos{Line: 281-281 Pos: 4880-4881} + | "VarName": + | *node.Identifier Pos{Line: 281-281 Pos: 4880-4881} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 281-281 Pos: 4886-4887} + | "VarName": + | *node.Identifier Pos{Line: 281-281 Pos: 4886-4887} map[Value:$b] + | *stmt.Expression Pos{Line: 282-282 Pos: 4892-4900} + | "Expr": + | *assign_op.BitwiseXor Pos{Line: 282-282 Pos: 4892-4899} + | "Variable": + | *expr.Variable Pos{Line: 282-282 Pos: 4892-4893} + | "VarName": + | *node.Identifier Pos{Line: 282-282 Pos: 4892-4893} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 282-282 Pos: 4898-4899} + | "VarName": + | *node.Identifier Pos{Line: 282-282 Pos: 4898-4899} map[Value:$b] + | *stmt.Expression Pos{Line: 283-283 Pos: 4904-4912} + | "Expr": + | *assign_op.Concat Pos{Line: 283-283 Pos: 4904-4911} + | "Variable": + | *expr.Variable Pos{Line: 283-283 Pos: 4904-4905} + | "VarName": + | *node.Identifier Pos{Line: 283-283 Pos: 4904-4905} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 283-283 Pos: 4910-4911} + | "VarName": + | *node.Identifier Pos{Line: 283-283 Pos: 4910-4911} map[Value:$b] + | *stmt.Expression Pos{Line: 284-284 Pos: 4916-4924} + | "Expr": + | *assign_op.Div Pos{Line: 284-284 Pos: 4916-4923} + | "Variable": + | *expr.Variable Pos{Line: 284-284 Pos: 4916-4917} + | "VarName": + | *node.Identifier Pos{Line: 284-284 Pos: 4916-4917} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 284-284 Pos: 4922-4923} + | "VarName": + | *node.Identifier Pos{Line: 284-284 Pos: 4922-4923} map[Value:$b] + | *stmt.Expression Pos{Line: 285-285 Pos: 4928-4936} + | "Expr": + | *assign_op.Minus Pos{Line: 285-285 Pos: 4928-4935} + | "Variable": + | *expr.Variable Pos{Line: 285-285 Pos: 4928-4929} + | "VarName": + | *node.Identifier Pos{Line: 285-285 Pos: 4928-4929} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 285-285 Pos: 4934-4935} + | "VarName": + | *node.Identifier Pos{Line: 285-285 Pos: 4934-4935} map[Value:$b] + | *stmt.Expression Pos{Line: 286-286 Pos: 4940-4948} + | "Expr": + | *assign_op.Mod Pos{Line: 286-286 Pos: 4940-4947} + | "Variable": + | *expr.Variable Pos{Line: 286-286 Pos: 4940-4941} + | "VarName": + | *node.Identifier Pos{Line: 286-286 Pos: 4940-4941} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 286-286 Pos: 4946-4947} + | "VarName": + | *node.Identifier Pos{Line: 286-286 Pos: 4946-4947} map[Value:$b] + | *stmt.Expression Pos{Line: 287-287 Pos: 4952-4960} + | "Expr": + | *assign_op.Mul Pos{Line: 287-287 Pos: 4952-4959} + | "Variable": + | *expr.Variable Pos{Line: 287-287 Pos: 4952-4953} + | "VarName": + | *node.Identifier Pos{Line: 287-287 Pos: 4952-4953} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 287-287 Pos: 4958-4959} + | "VarName": + | *node.Identifier Pos{Line: 287-287 Pos: 4958-4959} map[Value:$b] + | *stmt.Expression Pos{Line: 288-288 Pos: 4964-4972} + | "Expr": + | *assign_op.Plus Pos{Line: 288-288 Pos: 4964-4971} + | "Variable": + | *expr.Variable Pos{Line: 288-288 Pos: 4964-4965} + | "VarName": + | *node.Identifier Pos{Line: 288-288 Pos: 4964-4965} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 288-288 Pos: 4970-4971} + | "VarName": + | *node.Identifier Pos{Line: 288-288 Pos: 4970-4971} map[Value:$b] + | *stmt.Expression Pos{Line: 289-289 Pos: 4976-4985} + | "Expr": + | *assign_op.Pow Pos{Line: 289-289 Pos: 4976-4984} + | "Variable": + | *expr.Variable Pos{Line: 289-289 Pos: 4976-4977} + | "VarName": + | *node.Identifier Pos{Line: 289-289 Pos: 4976-4977} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 289-289 Pos: 4983-4984} + | "VarName": + | *node.Identifier Pos{Line: 289-289 Pos: 4983-4984} map[Value:$b] + | *stmt.Expression Pos{Line: 290-290 Pos: 4989-4998} + | "Expr": + | *assign_op.ShiftLeft Pos{Line: 290-290 Pos: 4989-4997} + | "Variable": + | *expr.Variable Pos{Line: 290-290 Pos: 4989-4990} + | "VarName": + | *node.Identifier Pos{Line: 290-290 Pos: 4989-4990} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 290-290 Pos: 4996-4997} + | "VarName": + | *node.Identifier Pos{Line: 290-290 Pos: 4996-4997} map[Value:$b] + | *stmt.Expression Pos{Line: 291-291 Pos: 5002-5011} + | "Expr": + | *assign_op.ShiftRight Pos{Line: 291-291 Pos: 5002-5010} + | "Variable": + | *expr.Variable Pos{Line: 291-291 Pos: 5002-5003} + | "VarName": + | *node.Identifier Pos{Line: 291-291 Pos: 5002-5003} map[Value:$a] + | "Expression": + | *expr.Variable Pos{Line: 291-291 Pos: 5009-5010} + | "VarName": + | *node.Identifier Pos{Line: 291-291 Pos: 5009-5010} map[Value:$b] diff --git a/node/stmt/t_for_test.go b/node/stmt/t_for_test.go index 5b8b220..2107a52 100644 --- a/node/stmt/t_for_test.go +++ b/node/stmt/t_for_test.go @@ -54,3 +54,41 @@ func TestFor(t *testing.T) { actual, _, _ = php5.Parse(bytes.NewBufferString(src), "test.php") assertEqual(t, expected, actual) } + +func TestAltFor(t *testing.T) { + src := ` $v) {}` + + expected := &stmt.StmtList{ + Stmts: []node.Node{ + &stmt.Foreach{ + Expr: &expr.ShortArray{Items: []node.Node{}}, + Key: &expr.Variable{VarName: &node.Identifier{Value: "$k"}}, + Variable: &expr.Variable{VarName: &node.Identifier{Value: "$v"}}, + Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + }, + }, + } + + actual, _, _ := php7.Parse(bytes.NewBufferString(src), "test.php") + assertEqual(t, expected, actual) + + actual, _, _ = php5.Parse(bytes.NewBufferString(src), "test.php") + assertEqual(t, expected, actual) +} + func TestForeachWithRef(t *testing.T) { src := ` &$v) {}` diff --git a/node/stmt/t_function_test.go b/node/stmt/t_function_test.go index 3b59ef6..5c61d77 100644 --- a/node/stmt/t_function_test.go +++ b/node/stmt/t_function_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/node/expr" "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/php7" @@ -56,6 +57,31 @@ func TestFunctionReturn(t *testing.T) { assertEqual(t, expected, actual) } +func TestFunctionReturnVar(t *testing.T) { + src := ` static_class_constant compound_variable reference_variable class_name variable_class_name %type dim_offset expr expr_without_variable r_variable w_variable rw_variable variable base_variable_with_function_calls %type base_variable array_function_dereference function_call inner_statement statement unticked_statement -%type inner_statement statement global_var static_scalar scalar class_constant static_class_name_scalar class_name_scalar +%type statement global_var static_scalar scalar class_constant static_class_name_scalar class_name_scalar %type encaps_var encaps_var encaps_var_offset general_constant isset_variable internal_functions_in_yacc assignment_list_element %type variable_name variable_without_objects dynamic_class_name_reference new_expr class_name_reference static_member %type function_call fully_qualified_class_name combined_scalar combined_scalar_offset general_constant parenthesis_expr @@ -239,8 +239,8 @@ start: ; top_statement_list: - top_statement_list top_statement { $$ = append($1, $2) } - | /* empty */ { $$ = []node.Node{} } + top_statement_list top_statement { fmt.Println("1"); $$ = append($1, $2) } + | /* empty */ { fmt.Println("2"); $$ = []node.Node{} } ; namespace_name: @@ -248,28 +248,28 @@ namespace_name: { namePart := name.NewNamePart($1.Value) positions.AddPosition(namePart, positionBuilder.NewTokenPosition($1)) - $$ = []node.Node{namePart} + fmt.Println("3"); $$ = []node.Node{namePart} comments.AddComments(namePart, $1.Comments()) } | namespace_name T_NS_SEPARATOR T_STRING { namePart := name.NewNamePart($3.Value) positions.AddPosition(namePart, positionBuilder.NewTokenPosition($3)) - $$ = append($1, namePart) + fmt.Println("4"); $$ = append($1, namePart) comments.AddComments(namePart, $3.Comments()) } ; top_statement: statement - { $$ = $1 } + { fmt.Println("5"); $$ = $1 } | function_declaration_statement - { $$ = $1 } + { fmt.Println("6"); $$ = $1 } | class_declaration_statement - { $$ = $1 } + { fmt.Println("7"); $$ = $1 } | T_HALT_COMPILER '(' ')' ';' { - $$ = stmt.NewHaltCompiler() + fmt.Println("8"); $$ = stmt.NewHaltCompiler() positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -277,7 +277,7 @@ top_statement: { name := name.NewName($2) positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) - $$ = stmt.NewNamespace(name, nil) + fmt.Println("9"); $$ = stmt.NewNamespace(name, nil) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -287,7 +287,7 @@ top_statement: { name := name.NewName($2) positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) - $$ = stmt.NewNamespace(name, $4) + fmt.Println("10"); $$ = stmt.NewNamespace(name, $4) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -295,13 +295,13 @@ top_statement: } | T_NAMESPACE '{' top_statement_list '}' { - $$ = stmt.NewNamespace(nil, $3) + fmt.Println("11"); $$ = stmt.NewNamespace(nil, $3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | T_USE use_declarations ';' { - $$ = stmt.NewUseList(nil, $2) + fmt.Println("12"); $$ = stmt.NewUseList(nil, $2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } @@ -311,7 +311,7 @@ top_statement: positions.AddPosition($$, positionBuilder.NewTokenPosition($2)) comments.AddComments($$, $2.Comments()) - $$ = stmt.NewUseList(useType, $3) + fmt.Println("13"); $$ = stmt.NewUseList(useType, $3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -321,19 +321,19 @@ top_statement: positions.AddPosition($$, positionBuilder.NewTokenPosition($2)) comments.AddComments($$, $2.Comments()) - $$ = stmt.NewUseList(useType, $3) + fmt.Println("14"); $$ = stmt.NewUseList(useType, $3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | constant_declaration ';' - { $$ = $1 } + { fmt.Println("15"); $$ = $1 } ; use_declarations: use_declarations ',' use_declaration - { $$ = append($1, $3) } + { fmt.Println("16"); $$ = append($1, $3) } | use_declaration - { $$ = []node.Node{$1} } + { fmt.Println("17"); $$ = []node.Node{$1} } ; use_declaration: @@ -341,7 +341,7 @@ use_declaration: { name := name.NewName($1) positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) - $$ = stmt.NewUse(nil, name, nil) + fmt.Println("18"); $$ = stmt.NewUse(nil, name, nil) positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) comments.AddComments(name, ListGetFirstNodeComments($1)) @@ -353,7 +353,7 @@ use_declaration: positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) alias := node.NewIdentifier($3.Value) positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) - $$ = stmt.NewUse(nil, name, alias) + fmt.Println("19"); $$ = stmt.NewUse(nil, name, alias) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) comments.AddComments(name, ListGetFirstNodeComments($1)) @@ -364,7 +364,7 @@ use_declaration: { name := name.NewName($2) positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) - $$ = stmt.NewUse(nil, name, nil) + fmt.Println("20"); $$ = stmt.NewUse(nil, name, nil) positions.AddPosition($$, positionBuilder.NewNodeListPosition($2)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -376,7 +376,7 @@ use_declaration: positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) alias := node.NewIdentifier($4.Value) positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) - $$ = stmt.NewUse(nil, name, alias) + fmt.Println("21"); $$ = stmt.NewUse(nil, name, alias) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($2, $4)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -387,9 +387,9 @@ use_declaration: use_function_declarations: use_function_declarations ',' use_function_declaration - { $$ = append($1, $3) } + { fmt.Println("22"); $$ = append($1, $3) } | use_function_declaration - { $$ = []node.Node{$1} } + { fmt.Println("23"); $$ = []node.Node{$1} } ; use_function_declaration: @@ -397,7 +397,7 @@ use_function_declaration: { name := name.NewName($1) positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) - $$ = stmt.NewUse(nil, name, nil) + fmt.Println("24"); $$ = stmt.NewUse(nil, name, nil) positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) comments.AddComments(name, ListGetFirstNodeComments($1)) @@ -409,7 +409,7 @@ use_function_declaration: positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) alias := node.NewIdentifier($3.Value) positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) - $$ = stmt.NewUse(nil, name, alias) + fmt.Println("25"); $$ = stmt.NewUse(nil, name, alias) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) comments.AddComments(name, ListGetFirstNodeComments($1)) @@ -420,7 +420,7 @@ use_function_declaration: { name := name.NewName($2) positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) - $$ = stmt.NewUse(nil, name, nil) + fmt.Println("26"); $$ = stmt.NewUse(nil, name, nil) positions.AddPosition($$, positionBuilder.NewNodeListPosition($2)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -432,7 +432,7 @@ use_function_declaration: positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) alias := node.NewIdentifier($4.Value) positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) - $$ = stmt.NewUse(nil, name, alias) + fmt.Println("27"); $$ = stmt.NewUse(nil, name, alias) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($2, $4)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -443,9 +443,9 @@ use_function_declaration: use_const_declarations: use_const_declarations ',' use_const_declaration - { $$ = append($1, $3) } + { fmt.Println("28"); $$ = append($1, $3) } | use_const_declaration - { $$ = []node.Node{$1} } + { fmt.Println("29"); $$ = []node.Node{$1} } ; use_const_declaration: @@ -453,7 +453,7 @@ use_const_declaration: { name := name.NewName($1) positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) - $$ = stmt.NewUse(nil, name, nil) + fmt.Println("30"); $$ = stmt.NewUse(nil, name, nil) positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) comments.AddComments(name, ListGetFirstNodeComments($1)) @@ -465,7 +465,7 @@ use_const_declaration: positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) alias := node.NewIdentifier($3.Value) positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) - $$ = stmt.NewUse(nil, name, alias) + fmt.Println("31"); $$ = stmt.NewUse(nil, name, alias) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) comments.AddComments(name, ListGetFirstNodeComments($1)) @@ -476,7 +476,7 @@ use_const_declaration: { name := name.NewName($2) positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) - $$ = stmt.NewUse(nil, name, nil) + fmt.Println("32"); $$ = stmt.NewUse(nil, name, nil) positions.AddPosition($$, positionBuilder.NewNodeListPosition($2)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -488,7 +488,7 @@ use_const_declaration: positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) alias := node.NewIdentifier($4.Value) positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) - $$ = stmt.NewUse(nil, name, alias) + fmt.Println("33"); $$ = stmt.NewUse(nil, name, alias) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($2, $4)) comments.AddComments(name, ListGetFirstNodeComments($2)) @@ -511,7 +511,7 @@ constant_declaration: constList := $1.(*stmt.ConstList) constList.Consts = append(constList.Consts, constant) - $$ = $1 + fmt.Println("34"); $$ = $1 positions.AddPosition($$, positionBuilder.NewNodeNodeListPosition($1, constList.Consts)) } | T_CONST T_STRING '=' static_scalar @@ -526,7 +526,7 @@ constant_declaration: constList := []node.Node{constant} - $$ = stmt.NewConstList(constList) + fmt.Println("35"); $$ = stmt.NewConstList(constList) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, constList)) comments.AddComments($$, $1.Comments()) } @@ -534,22 +534,22 @@ constant_declaration: inner_statement_list: inner_statement_list inner_statement - { $$ = append($1, $2) } + { fmt.Println("36"); $$ = append($1, $2) } | /* empty */ - { $$ = []node.Node{} } + { fmt.Println("37"); $$ = []node.Node{} } ; inner_statement: statement - { $$ = $1 } + { fmt.Println("38"); $$ = $1 } | function_declaration_statement - { $$ = $1 } + { fmt.Println("39"); $$ = $1 } | class_declaration_statement - { $$ = $1 } + { fmt.Println("40"); $$ = $1 } | T_HALT_COMPILER '(' ')' ';' { - $$ = stmt.NewHaltCompiler() + fmt.Println("41"); $$ = stmt.NewHaltCompiler() positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -558,12 +558,12 @@ inner_statement: statement: unticked_statement - { $$ = $1 } + { fmt.Println("42"); $$ = $1 } | T_STRING ':' { label := node.NewIdentifier($1.Value) positions.AddPosition(label, positionBuilder.NewTokenPosition($1)) - $$ = stmt.NewLabel(label) + fmt.Println("43"); $$ = stmt.NewLabel(label) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments(label, $1.Comments()) @@ -574,13 +574,13 @@ statement: unticked_statement: '{' inner_statement_list '}' { - $$ = stmt.NewStmtList($2) + fmt.Println("44"); $$ = stmt.NewStmtList($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_IF parenthesis_expr statement elseif_list else_single { - $$ = stmt.NewIf($2, $3, $4, $5) + fmt.Println("45"); $$ = stmt.NewIf($2, $3, $4, $5) if $5 != nil { positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5)) @@ -597,120 +597,120 @@ unticked_statement: stmts := stmt.NewStmtList($4) positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($4)) - $$ = stmt.NewAltIf($2, stmts, $5, $6) + fmt.Println("46"); $$ = stmt.NewAltIf($2, stmts, $5, $6) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $8)) comments.AddComments($$, $1.Comments()) } | T_WHILE parenthesis_expr while_statement { - $$ = stmt.NewWhile($2, $3) + fmt.Println("47"); $$ = stmt.NewWhile($2, $3) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_DO statement T_WHILE parenthesis_expr ';' { - $$ = stmt.NewDo($2, $4) + fmt.Println("48"); $$ = stmt.NewDo($2, $4) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) comments.AddComments($$, $1.Comments()) } | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement { - $$ = stmt.NewFor($3, $5, $7, $9) + fmt.Println("49"); $$ = stmt.NewFor($3, $5, $7, $9) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $9)) comments.AddComments($$, $1.Comments()) } | T_SWITCH parenthesis_expr switch_case_list { - $$ = stmt.NewSwitch($2, $3.nodes) + fmt.Println("50"); $$ = stmt.NewSwitch($2, $3.nodes) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) comments.AddComments($$, $1.Comments()) } | T_BREAK ';' { - $$ = stmt.NewBreak(nil) + fmt.Println("51"); $$ = stmt.NewBreak(nil) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_BREAK expr ';' { - $$ = stmt.NewBreak($2) + fmt.Println("52"); $$ = stmt.NewBreak($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_CONTINUE ';' { - $$ = stmt.NewContinue(nil) + fmt.Println("53"); $$ = stmt.NewContinue(nil) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_CONTINUE expr ';' { - $$ = stmt.NewContinue($2) + fmt.Println("54"); $$ = stmt.NewContinue($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_RETURN ';' { - $$ = stmt.NewReturn(nil) + fmt.Println("55"); $$ = stmt.NewReturn(nil) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_RETURN expr_without_variable ';' { - $$ = stmt.NewReturn($2) + fmt.Println("56"); $$ = stmt.NewReturn($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_RETURN variable ';' { - $$ = stmt.NewReturn($2) + fmt.Println("57"); $$ = stmt.NewReturn($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | yield_expr ';' - { $$ = $1 } + { fmt.Println("58"); $$ = $1 } | T_GLOBAL global_var_list ';' { - $$ = stmt.NewGlobal($2) + fmt.Println("59"); $$ = stmt.NewGlobal($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_STATIC static_var_list ';' { - $$ = stmt.NewStatic($2) + fmt.Println("60"); $$ = stmt.NewStatic($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_ECHO echo_expr_list ';' { - $$ = stmt.NewEcho($2) + fmt.Println("61"); $$ = stmt.NewEcho($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_INLINE_HTML { - $$ = stmt.NewInlineHtml($1.Value) + fmt.Println("62"); $$ = stmt.NewInlineHtml($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | expr ';' { - $$ = stmt.NewExpression($1) + fmt.Println("63"); $$ = stmt.NewExpression($1) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) comments.AddComments($$, comments[$1]) } | T_UNSET '(' unset_variables ')' ';' { - $$ = stmt.NewUnset($3) + fmt.Println("64"); $$ = stmt.NewUnset($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) comments.AddComments($$, $1.Comments()) } | T_FOREACH '(' variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { if $6.node == nil { - $$ = stmt.NewForeach($3, nil, $5.node, $8, $5.byRef) + fmt.Println("65"); $$ = stmt.NewForeach($3, nil, $5.node, $8, $5.byRef) } else { - $$ = stmt.NewForeach($3, $5.node, $6.node, $8, $6.byRef) + fmt.Println("66"); $$ = stmt.NewForeach($3, $5.node, $6.node, $8, $6.byRef) } positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $8)) comments.AddComments($$, $1.Comments()) @@ -718,28 +718,28 @@ unticked_statement: | T_FOREACH '(' expr_without_variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { if $6.node == nil { - $$ = stmt.NewForeach($3, nil, $5.node, $8, $5.byRef) + fmt.Println("67"); $$ = stmt.NewForeach($3, nil, $5.node, $8, $5.byRef) } else { - $$ = stmt.NewForeach($3, $5.node, $6.node, $8, $6.byRef) + fmt.Println("68"); $$ = stmt.NewForeach($3, $5.node, $6.node, $8, $6.byRef) } positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $8)) comments.AddComments($$, $1.Comments()) } | T_DECLARE '(' declare_list ')' declare_statement { - $$ = stmt.NewDeclare($3, $5) + fmt.Println("69"); $$ = stmt.NewDeclare($3, $5) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5)) comments.AddComments($$, $1.Comments()) } | ';' { - $$ = stmt.NewNop() + fmt.Println("70"); $$ = stmt.NewNop() positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { - $$ = stmt.NewTry($3, $5, $6) + fmt.Println("71"); $$ = stmt.NewTry($3, $5, $6) if $6 == nil { positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $5)) @@ -751,7 +751,7 @@ unticked_statement: } | T_THROW expr ';' { - $$ = stmt.NewThrow($2) + fmt.Println("72"); $$ = stmt.NewThrow($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } @@ -759,7 +759,7 @@ unticked_statement: { label := node.NewIdentifier($2.Value) positions.AddPosition(label, positionBuilder.NewTokenPosition($2)) - $$ = stmt.NewGoto(label) + fmt.Println("73"); $$ = stmt.NewGoto(label) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments(label, $2.Comments()) @@ -769,7 +769,7 @@ unticked_statement: catch_statement: /* empty */ - { $$ = []node.Node{} } + { fmt.Println("74"); $$ = []node.Node{} } | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { identifier := node.NewIdentifier($4.Value) @@ -784,15 +784,15 @@ catch_statement: positions.AddPosition(catch, positionBuilder.NewTokensPosition($1, $8)) comments.AddComments(catch, $1.Comments()) - $$ = append([]node.Node{catch}, $9...) + fmt.Println("75"); $$ = append([]node.Node{catch}, $9...) } finally_statement: /* empty */ - { $$ = nil } + { fmt.Println("76"); $$ = nil } | T_FINALLY '{' inner_statement_list '}' { - $$ = stmt.NewFinally($3) + fmt.Println("77"); $$ = stmt.NewFinally($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -800,16 +800,16 @@ finally_statement: additional_catches: non_empty_additional_catches - { $$ = $1 } + { fmt.Println("78"); $$ = $1 } | /* empty */ - { $$ = []node.Node{} } + { fmt.Println("79"); $$ = []node.Node{} } ; non_empty_additional_catches: additional_catch - { $$ = []node.Node{$1} } + { fmt.Println("80"); $$ = []node.Node{$1} } | non_empty_additional_catches additional_catch - { $$ = append($1, $2) } + { fmt.Println("81"); $$ = append($1, $2) } ; additional_catch: @@ -823,7 +823,7 @@ additional_catch: positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) comments.AddComments(variable, $4.Comments()) - $$ = stmt.NewCatch([]node.Node{$3}, variable, $7) + fmt.Println("82"); $$ = stmt.NewCatch([]node.Node{$3}, variable, $7) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $8)) comments.AddComments($$, $1.Comments()) } @@ -831,38 +831,38 @@ additional_catch: unset_variables: unset_variable - { $$ = []node.Node{$1} } + { fmt.Println("83"); $$ = []node.Node{$1} } | unset_variables ',' unset_variable - { $$ = append($1, $3) } + { fmt.Println("84"); $$ = append($1, $3) } ; unset_variable: variable - { $$ = $1 } + { fmt.Println("85"); $$ = $1 } ; function_declaration_statement: unticked_function_declaration_statement - { $$ = $1 } + { fmt.Println("86"); $$ = $1 } ; class_declaration_statement: unticked_class_declaration_statement - { $$ = $1 } + { fmt.Println("87"); $$ = $1 } ; is_reference: /* empty */ - { $$ = boolWithToken{false, nil} } + { fmt.Println("88"); $$ = boolWithToken{false, nil} } | '&' - { $$ = boolWithToken{true, &$1} } + { fmt.Println("89"); $$ = boolWithToken{true, &$1} } ; is_variadic: /* empty */ - { $$ = boolWithToken{false, nil} } + { fmt.Println("90"); $$ = boolWithToken{false, nil} } | T_ELLIPSIS - { $$ = boolWithToken{true, &$1} } + { fmt.Println("91"); $$ = boolWithToken{true, &$1} } ; unticked_function_declaration_statement: @@ -872,7 +872,7 @@ unticked_function_declaration_statement: positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) comments.AddComments(name, $3.Comments()) - $$ = stmt.NewFunction(name, $2.value, $5, nil, $8, "") + fmt.Println("92"); $$ = stmt.NewFunction(name, $2.value, $5, nil, $8, "") positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $9)) comments.AddComments($$, $1.Comments()) } @@ -898,7 +898,7 @@ unticked_class_declaration_statement: n.Stmts = $6 } - $$ = $1 + fmt.Println("93"); $$ = $1 } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { @@ -906,7 +906,7 @@ unticked_class_declaration_statement: positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) comments.AddComments(name, $2.Comments()) - $$ = stmt.NewInterface(name, $3, $5, "") + fmt.Println("94"); $$ = stmt.NewInterface(name, $3, $5, "") positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $6)) comments.AddComments($$, $1.Comments()) } @@ -916,7 +916,7 @@ unticked_class_declaration_statement: class_entry_type: T_CLASS { - $$ = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") + fmt.Println("95"); $$ = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } @@ -926,13 +926,13 @@ class_entry_type: positions.AddPosition(classModifier, positionBuilder.NewTokenPosition($1)) comments.AddComments(classModifier, $1.Comments()) - $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") + fmt.Println("96"); $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_TRAIT { - $$ = stmt.NewTrait(nil, nil, "") + fmt.Println("97"); $$ = stmt.NewTrait(nil, nil, "") positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } @@ -942,7 +942,7 @@ class_entry_type: positions.AddPosition(classModifier, positionBuilder.NewTokenPosition($1)) comments.AddComments(classModifier, $1.Comments()) - $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") + fmt.Println("98"); $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -950,64 +950,64 @@ class_entry_type: extends_from: /* empty */ - { $$ = nil } + { fmt.Println("99"); $$ = nil } | T_EXTENDS fully_qualified_class_name - { $$ = $2 } + { fmt.Println("100"); $$ = $2 } ; interface_entry: T_INTERFACE - { $$ = $1 } + { fmt.Println("101"); $$ = $1 } ; interface_extends_list: /* empty */ - { $$ = nil } + { fmt.Println("102"); $$ = nil } | T_EXTENDS interface_list - { $$ = $2 } + { fmt.Println("103"); $$ = $2 } ; implements_list: /* empty */ - { $$ = nil } + { fmt.Println("104"); $$ = nil } | T_IMPLEMENTS interface_list - { $$ = $2 } + { fmt.Println("105"); $$ = $2 } ; interface_list: fully_qualified_class_name - { $$ = []node.Node{$1} } + { fmt.Println("106"); $$ = []node.Node{$1} } | interface_list ',' fully_qualified_class_name - { $$ = append($1, $3) } + { fmt.Println("107"); $$ = append($1, $3) } ; foreach_optional_arg: /* empty */ - { $$ = foreachVariable{nil, false} } + { fmt.Println("108"); $$ = foreachVariable{nil, false} } | T_DOUBLE_ARROW foreach_variable - { $$ = $2 } + { fmt.Println("109"); $$ = $2 } ; foreach_variable: variable - { $$ = foreachVariable{$1, false} } + { fmt.Println("110"); $$ = foreachVariable{$1, false} } | '&' variable - { $$ = foreachVariable{$2, true} } + { fmt.Println("111"); $$ = foreachVariable{$2, true} } | T_LIST '(' assignment_list ')' { list := expr.NewList($3) positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $4)) - $$ = foreachVariable{list, false} + fmt.Println("112"); $$ = foreachVariable{list, false} comments.AddComments(list, $1.Comments()) } ; for_statement: statement - { $$ = $1; } + { fmt.Println("113"); $$ = $1; } | ':' inner_statement_list T_ENDFOR ';' { - $$ = stmt.NewStmtList($2) + fmt.Println("114"); $$ = stmt.NewStmtList($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -1016,10 +1016,10 @@ for_statement: foreach_statement: statement - { $$ = $1; } + { fmt.Println("115"); $$ = $1; } | ':' inner_statement_list T_ENDFOREACH ';' { - $$ = stmt.NewStmtList($2) + fmt.Println("116"); $$ = stmt.NewStmtList($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -1028,10 +1028,10 @@ foreach_statement: declare_statement: statement - { $$ = $1; } + { fmt.Println("117"); $$ = $1; } | ':' inner_statement_list T_ENDDECLARE ';' { - $$ = stmt.NewStmtList($2) + fmt.Println("118"); $$ = stmt.NewStmtList($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -1049,7 +1049,7 @@ declare_list: positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($1, $3)) comments.AddComments(constant, $1.Comments()) - $$ = []node.Node{constant} + fmt.Println("119"); $$ = []node.Node{constant} } | declare_list ',' T_STRING '=' static_scalar { @@ -1061,38 +1061,38 @@ declare_list: positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($3, $5)) comments.AddComments(constant, $3.Comments()) - $$ = append($1, constant) + fmt.Println("120"); $$ = append($1, constant) } ; switch_case_list: '{' case_list '}' - { $$ = &nodesWithEndToken{$2, $3} } + { fmt.Println("121"); $$ = &nodesWithEndToken{$2, $3} } | '{' ';' case_list '}' - { $$ = &nodesWithEndToken{$3, $4} } + { fmt.Println("122"); $$ = &nodesWithEndToken{$3, $4} } | ':' case_list T_ENDSWITCH ';' - { $$ = &nodesWithEndToken{$2, $4} } + { fmt.Println("123"); $$ = &nodesWithEndToken{$2, $4} } | ':' ';' case_list T_ENDSWITCH ';' - { $$ = &nodesWithEndToken{$3, $5} } + { fmt.Println("124"); $$ = &nodesWithEndToken{$3, $5} } ; case_list: /* empty */ - { $$ = []node.Node{} } + { fmt.Println("125"); $$ = []node.Node{} } | case_list T_CASE expr case_separator inner_statement_list { _case := stmt.NewCase($3, $5) positions.AddPosition(_case, positionBuilder.NewTokenNodeListPosition($2, $5)) - $$ = append($1, _case) + fmt.Println("126"); $$ = append($1, _case) comments.AddComments(_case, $2.Comments()) } | case_list T_DEFAULT case_separator inner_statement_list { _default := stmt.NewDefault($4) positions.AddPosition(_default, positionBuilder.NewTokenNodeListPosition($2, $4)) - $$ = append($1, _default) + fmt.Println("127"); $$ = append($1, _default) comments.AddComments(_default, $2.Comments()) } ; @@ -1106,10 +1106,10 @@ case_separator: while_statement: statement - { $$ = $1 } + { fmt.Println("128"); $$ = $1 } | ':' inner_statement_list T_ENDWHILE ';' { - $$ = stmt.NewStmtList($2) + fmt.Println("129"); $$ = stmt.NewStmtList($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) } ; @@ -1118,21 +1118,21 @@ while_statement: elseif_list: /* empty */ - { $$ = nil } + { fmt.Println("130"); $$ = nil } | elseif_list T_ELSEIF parenthesis_expr statement { _elseIf := stmt.NewElseIf($3, $4) positions.AddPosition(_elseIf, positionBuilder.NewTokenNodePosition($2, $4)) comments.AddComments(_elseIf, $2.Comments()) - $$ = append($1, _elseIf) + fmt.Println("131"); $$ = append($1, _elseIf) } ; new_elseif_list: /* empty */ - { $$ = nil } + { fmt.Println("132"); $$ = nil } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { stmts := stmt.NewStmtList($5) @@ -1142,17 +1142,17 @@ new_elseif_list: positions.AddPosition(_elseIf, positionBuilder.NewTokenNodeListPosition($2, $5)) comments.AddComments(_elseIf, $2.Comments()) - $$ = append($1, _elseIf) + fmt.Println("133"); $$ = append($1, _elseIf) } ; else_single: /* empty */ - { $$ = nil } + { fmt.Println("134"); $$ = nil } | T_ELSE statement { - $$ = stmt.NewElse($2) + fmt.Println("135"); $$ = stmt.NewElse($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -1161,13 +1161,13 @@ else_single: new_else_single: /* empty */ - { $$ = nil } + { fmt.Println("136"); $$ = nil } | T_ELSE ':' inner_statement_list { stmts := stmt.NewStmtList($3) positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($3)) - $$ = stmt.NewAltElse(stmts) + fmt.Println("137"); $$ = stmt.NewAltElse(stmts) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) comments.AddComments($$, $1.Comments()) } @@ -1176,16 +1176,16 @@ new_else_single: parameter_list: non_empty_parameter_list - { $$ = $1; } + { fmt.Println("138"); $$ = $1; } | /* empty */ - { $$ = nil } + { fmt.Println("139"); $$ = nil } ; non_empty_parameter_list: parameter - { $$ = []node.Node{$1} } + { fmt.Println("140"); $$ = []node.Node{$1} } | non_empty_parameter_list ',' parameter - { $$ = append($1, $3) } + { fmt.Println("141"); $$ = append($1, $3) } ; parameter: @@ -1199,7 +1199,7 @@ parameter: positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) comments.AddComments($$, $4.Comments()) - $$ = node.NewParameter($1, variable, nil, $2.value, $3.value) + fmt.Println("142"); $$ = node.NewParameter($1, variable, nil, $2.value, $3.value) if $1 != nil { positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) @@ -1225,7 +1225,7 @@ parameter: positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) comments.AddComments(variable, $4.Comments()) - $$ = node.NewParameter($1, variable, $6, $2.value, $3.value) + fmt.Println("143"); $$ = node.NewParameter($1, variable, $6, $2.value, $3.value) if $1 != nil { positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $6)) @@ -1246,69 +1246,69 @@ parameter: optional_class_type: /* empty */ - { $$ = nil } + { fmt.Println("144"); $$ = nil } | T_ARRAY { - $$ = node.NewIdentifier($1.Value) + fmt.Println("145"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_CALLABLE { - $$ = node.NewIdentifier($1.Value) + fmt.Println("146"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | fully_qualified_class_name - { $$ = $1 } + { fmt.Println("147"); $$ = $1 } ; function_call_parameter_list: '(' ')' - { $$ = &nodesWithEndToken{[]node.Node{}, $2} } + { fmt.Println("148"); $$ = &nodesWithEndToken{[]node.Node{}, $2} } | '(' non_empty_function_call_parameter_list ')' - { $$ = &nodesWithEndToken{$2, $3} } + { fmt.Println("149"); $$ = &nodesWithEndToken{$2, $3} } | '(' yield_expr ')' { arg := node.NewArgument($2, false, false) positions.AddPosition(arg, positionBuilder.NewNodePosition($2)) comments.AddComments(arg, comments[$2]) - $$ = &nodesWithEndToken{[]node.Node{arg}, $3} + fmt.Println("150"); $$ = &nodesWithEndToken{[]node.Node{arg}, $3} } ; non_empty_function_call_parameter_list: function_call_parameter - { $$ = []node.Node{$1} } + { fmt.Println("151"); $$ = []node.Node{$1} } | non_empty_function_call_parameter_list ',' function_call_parameter - { $$ = append($1, $3) } + { fmt.Println("152"); $$ = append($1, $3) } ; function_call_parameter: expr_without_variable { - $$ = node.NewArgument($1, false, false) + fmt.Println("153"); $$ = node.NewArgument($1, false, false) positions.AddPosition($$, positionBuilder.NewNodePosition($1)) comments.AddComments($$, comments[$1]) } | variable { - $$ = node.NewArgument($1, false, false) + fmt.Println("154"); $$ = node.NewArgument($1, false, false) positions.AddPosition($$, positionBuilder.NewNodePosition($1)) comments.AddComments($$, comments[$1]) } | '&' w_variable { - $$ = node.NewArgument($2, false, true) + fmt.Println("155"); $$ = node.NewArgument($2, false, true) positions.AddPosition($$, positionBuilder.NewNodePosition($2)) comments.AddComments($$, $1.Comments()) } | T_ELLIPSIS expr { - $$ = node.NewArgument($2, true, false) + fmt.Println("156"); $$ = node.NewArgument($2, true, false) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -1316,9 +1316,9 @@ function_call_parameter: global_var_list: global_var_list ',' global_var - { $$ = append($1, $3) } + { fmt.Println("157"); $$ = append($1, $3) } | global_var - { $$ = []node.Node{$1} } + { fmt.Println("158"); $$ = []node.Node{$1} } ; @@ -1327,7 +1327,7 @@ global_var: { name := node.NewIdentifier($1.Value) positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) - $$ = expr.NewVariable(name) + fmt.Println("159"); $$ = expr.NewVariable(name) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments(name, $1.Comments()) @@ -1335,13 +1335,13 @@ global_var: } | '$' r_variable { - $$ = expr.NewVariable($2) + fmt.Println("160"); $$ = expr.NewVariable($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '$' '{' expr '}' { - $$ = expr.NewVariable($3) + fmt.Println("161"); $$ = expr.NewVariable($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -1360,7 +1360,7 @@ static_var_list: staticVar := stmt.NewStaticVar(variable, nil) positions.AddPosition(staticVar, positionBuilder.NewTokenPosition($3)) - $$ = append($1, staticVar) + fmt.Println("162"); $$ = append($1, staticVar) comments.AddComments(identifier, $3.Comments()) comments.AddComments(variable, $3.Comments()) @@ -1377,7 +1377,7 @@ static_var_list: staticVar := stmt.NewStaticVar(variable, $5) positions.AddPosition(staticVar, positionBuilder.NewTokenNodePosition($3, $5)) - $$ = append($1, staticVar) + fmt.Println("163"); $$ = append($1, staticVar) comments.AddComments(identifier, $3.Comments()) comments.AddComments(variable, $3.Comments()) @@ -1394,7 +1394,7 @@ static_var_list: staticVar := stmt.NewStaticVar(variable, nil) positions.AddPosition(staticVar, positionBuilder.NewTokenPosition($1)) - $$ = []node.Node{staticVar} + fmt.Println("164"); $$ = []node.Node{staticVar} comments.AddComments(identifier, $1.Comments()) comments.AddComments(variable, $1.Comments()) @@ -1411,7 +1411,7 @@ static_var_list: staticVar := stmt.NewStaticVar(variable, $3) positions.AddPosition(staticVar, positionBuilder.NewTokenNodePosition($1, $3)) - $$ = []node.Node{staticVar} + fmt.Println("165"); $$ = []node.Node{staticVar} comments.AddComments(identifier, $1.Comments()) comments.AddComments(variable, $1.Comments()) @@ -1423,30 +1423,30 @@ static_var_list: class_statement_list: class_statement_list class_statement - { $$ = append($1, $2) } + { fmt.Println("166"); $$ = append($1, $2) } | /* empty */ - { $$ = []node.Node{} } + { fmt.Println("167"); $$ = []node.Node{} } ; class_statement: variable_modifiers class_variable_declaration ';' { - $$ = stmt.NewPropertyList($1, $2) + fmt.Println("168"); $$ = stmt.NewPropertyList($1, $2) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) comments.AddComments($$, ListGetFirstNodeComments($1)) } | class_constant_declaration ';' - { $$ = $1 } + { fmt.Println("169"); $$ = $1 } | trait_use_statement - { $$ = $1 } + { fmt.Println("170"); $$ = $1 } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { name := node.NewIdentifier($4.Value) positions.AddPosition(name, positionBuilder.NewTokenPosition($4)) comments.AddComments(name, $4.Comments()) - $$ = stmt.NewClassMethod(name, $1, $3.value, $6, nil, $8.nodes, "") + fmt.Println("171"); $$ = stmt.NewClassMethod(name, $1, $3.value, $6, nil, $8.nodes, "") positions.AddPosition($$, positionBuilder.NewOptionalListTokensPosition($1, $2, $8.endToken)) comments.AddComments($$, ListGetFirstNodeComments($1)) } @@ -1455,7 +1455,7 @@ class_statement: trait_use_statement: T_USE trait_list trait_adaptations { - $$ = stmt.NewTraitUse($2, $3.nodes) + fmt.Println("172"); $$ = stmt.NewTraitUse($2, $3.nodes) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) comments.AddComments($$, $1.Comments()) } @@ -1463,43 +1463,43 @@ trait_use_statement: trait_list: fully_qualified_class_name - { $$ = []node.Node{$1} } + { fmt.Println("173"); $$ = []node.Node{$1} } | trait_list ',' fully_qualified_class_name - { $$ = append($1, $3) } + { fmt.Println("174"); $$ = append($1, $3) } ; trait_adaptations: ';' - { $$ = &nodesWithEndToken{nil, $1} } + { fmt.Println("175"); $$ = &nodesWithEndToken{nil, $1} } | '{' trait_adaptation_list '}' - { $$ = &nodesWithEndToken{$2, $3} } + { fmt.Println("176"); $$ = &nodesWithEndToken{$2, $3} } ; trait_adaptation_list: /* empty */ - { $$ = nil } + { fmt.Println("177"); $$ = nil } | non_empty_trait_adaptation_list - { $$ = $1 } + { fmt.Println("178"); $$ = $1 } ; non_empty_trait_adaptation_list: trait_adaptation_statement - { $$ = []node.Node{$1} } + { fmt.Println("179"); $$ = []node.Node{$1} } | non_empty_trait_adaptation_list trait_adaptation_statement - { $$ = append($1, $2) } + { fmt.Println("180"); $$ = append($1, $2) } ; trait_adaptation_statement: trait_precedence ';' - { $$ = $1 } + { fmt.Println("181"); $$ = $1 } | trait_alias ';' - { $$ = $1 } + { fmt.Println("182"); $$ = $1 } ; trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { - $$ = stmt.NewTraitUsePrecedence($1, $3) + fmt.Println("183"); $$ = stmt.NewTraitUsePrecedence($1, $3) positions.AddPosition($$, positionBuilder.NewNodeNodeListPosition($1, $3)) comments.AddComments($$, comments[$1]) } @@ -1507,9 +1507,9 @@ trait_precedence: trait_reference_list: fully_qualified_class_name - { $$ = []node.Node{$1} } + { fmt.Println("184"); $$ = []node.Node{$1} } | trait_reference_list ',' fully_qualified_class_name - { $$ = append($1, $3) } + { fmt.Println("185"); $$ = append($1, $3) } ; trait_method_reference: @@ -1519,12 +1519,12 @@ trait_method_reference: positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) comments.AddComments(name, $1.Comments()) - $$ = stmt.NewTraitMethodRef(nil, name) + fmt.Println("186"); $$ = stmt.NewTraitMethodRef(nil, name) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | trait_method_reference_fully_qualified - { $$ = $1 } + { fmt.Println("187"); $$ = $1 } ; trait_method_reference_fully_qualified: @@ -1534,7 +1534,7 @@ trait_method_reference_fully_qualified: positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) comments.AddComments(target, $3.Comments()) - $$ = stmt.NewTraitMethodRef($1, target) + fmt.Println("188"); $$ = stmt.NewTraitMethodRef($1, target) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) comments.AddComments($$, comments[$1]) } @@ -1545,7 +1545,7 @@ trait_alias: { alias := node.NewIdentifier($4.Value) positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) - $$ = stmt.NewTraitUseAlias($1, $3, alias) + fmt.Println("189"); $$ = stmt.NewTraitUseAlias($1, $3, alias) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments(alias, $4.Comments()) @@ -1553,7 +1553,7 @@ trait_alias: } | trait_method_reference T_AS member_modifier { - $$ = stmt.NewTraitUseAlias($1, $3, nil) + fmt.Println("190"); $$ = stmt.NewTraitUseAlias($1, $3, nil) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } @@ -1561,79 +1561,79 @@ trait_alias: trait_modifiers: /* empty */ - { $$ = nil } + { fmt.Println("191"); $$ = nil } | member_modifier - { $$ = $1 } + { fmt.Println("192"); $$ = $1 } ; method_body: ';' /* abstract method */ - { $$ = &nodesWithEndToken{nil, $1} } + { fmt.Println("193"); $$ = &nodesWithEndToken{nil, $1} } | '{' inner_statement_list '}' - { $$ = &nodesWithEndToken{$2, $3} } + { fmt.Println("194"); $$ = &nodesWithEndToken{$2, $3} } ; variable_modifiers: non_empty_member_modifiers - { $$ = $1; } + { fmt.Println("195"); $$ = $1; } | T_VAR { modifier := node.NewIdentifier($1.Value) positions.AddPosition(modifier, positionBuilder.NewTokenPosition($1)) comments.AddComments(modifier, $1.Comments()) - $$ = []node.Node{modifier} + fmt.Println("196"); $$ = []node.Node{modifier} } ; method_modifiers: /* empty */ - { $$ = nil } + { fmt.Println("197"); $$ = nil } | non_empty_member_modifiers - { $$ = $1 } + { fmt.Println("198"); $$ = $1 } ; non_empty_member_modifiers: member_modifier - { $$ = []node.Node{$1} } + { fmt.Println("199"); $$ = []node.Node{$1} } | non_empty_member_modifiers member_modifier - { $$ = append($1, $2) } + { fmt.Println("200"); $$ = append($1, $2) } ; member_modifier: T_PUBLIC { - $$ = node.NewIdentifier($1.Value) + fmt.Println("201"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_PROTECTED { - $$ = node.NewIdentifier($1.Value) + fmt.Println("202"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_PRIVATE { - $$ = node.NewIdentifier($1.Value) + fmt.Println("203"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_STATIC { - $$ = node.NewIdentifier($1.Value) + fmt.Println("204"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_ABSTRACT { - $$ = node.NewIdentifier($1.Value) + fmt.Println("205"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_FINAL { - $$ = node.NewIdentifier($1.Value) + fmt.Println("206"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } @@ -1654,7 +1654,7 @@ class_variable_declaration: positions.AddPosition(property, positionBuilder.NewTokenPosition($3)) comments.AddComments(property, $3.Comments()) - $$ = append($1, property) + fmt.Println("207"); $$ = append($1, property) } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { @@ -1670,7 +1670,7 @@ class_variable_declaration: positions.AddPosition(property, positionBuilder.NewTokenNodePosition($3, $5)) comments.AddComments(property, $3.Comments()) - $$ = append($1, property) + fmt.Println("208"); $$ = append($1, property) } | T_VARIABLE { @@ -1686,7 +1686,7 @@ class_variable_declaration: positions.AddPosition(property, positionBuilder.NewTokenPosition($1)) comments.AddComments(property, $1.Comments()) - $$ = []node.Node{property} + fmt.Println("209"); $$ = []node.Node{property} } | T_VARIABLE '=' static_scalar { @@ -1702,7 +1702,7 @@ class_variable_declaration: positions.AddPosition(property, positionBuilder.NewTokenNodePosition($1, $3)) comments.AddComments(property, $1.Comments()) - $$ = []node.Node{property} + fmt.Println("210"); $$ = []node.Node{property} } ; @@ -1720,7 +1720,7 @@ class_constant_declaration: $1.(*stmt.ClassConstList).Consts = append($1.(*stmt.ClassConstList).Consts, constant) positions.AddPosition($1, positionBuilder.NewNodesPosition($1, $5)) - $$ = $1 + fmt.Println("211"); $$ = $1 } | T_CONST T_STRING '=' static_scalar { @@ -1732,7 +1732,7 @@ class_constant_declaration: positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($2, $4)) comments.AddComments(constant, $2.Comments()) - $$ = stmt.NewClassConstList(nil, []node.Node{constant}) + fmt.Println("212"); $$ = stmt.NewClassConstList(nil, []node.Node{constant}) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -1740,31 +1740,31 @@ class_constant_declaration: echo_expr_list: echo_expr_list ',' expr - { $$ = append($1, $3) } + { fmt.Println("213"); $$ = append($1, $3) } | expr - { $$ = []node.Node{$1} } + { fmt.Println("214"); $$ = []node.Node{$1} } ; for_expr: /* empty */ - { $$ = nil } + { fmt.Println("215"); $$ = nil } | non_empty_for_expr - { $$ = $1 } + { fmt.Println("216"); $$ = $1 } ; non_empty_for_expr: non_empty_for_expr ',' expr - { $$ = append($1, $3) } + { fmt.Println("217"); $$ = append($1, $3) } | expr - { $$ = []node.Node{$1} } + { fmt.Println("218"); $$ = []node.Node{$1} } ; chaining_method_or_property: chaining_method_or_property variable_property - { $$ = append($1, $2...) } + { fmt.Println("219"); $$ = append($1, $2...) } | variable_property - { $$ = $1 } + { fmt.Println("220"); $$ = $1 } ; chaining_dereference: @@ -1773,41 +1773,41 @@ chaining_dereference: fetch := expr.NewArrayDimFetch(nil, $3) positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) - $$ = append($1, fetch) + fmt.Println("221"); $$ = append($1, fetch) } | '[' dim_offset ']' { fetch := expr.NewArrayDimFetch(nil, $2) positions.AddPosition(fetch, positionBuilder.NewNodePosition($2)) - $$ = []node.Node{fetch} + fmt.Println("222"); $$ = []node.Node{fetch} } ; chaining_instance_call: chaining_dereference chaining_method_or_property - { $$ = append($1, $2...) } + { fmt.Println("223"); $$ = append($1, $2...) } | chaining_dereference - { $$ = $1 } + { fmt.Println("224"); $$ = $1 } | chaining_method_or_property - { $$ = $1 } + { fmt.Println("225"); $$ = $1 } ; instance_call: /* empty */ - { $$ = nil } + { fmt.Println("226"); $$ = nil } | chaining_instance_call - { $$ = $1 } + { fmt.Println("227"); $$ = $1 } ; new_expr: T_NEW class_name_reference ctor_arguments { if $3 != nil { - $$ = expr.NewNew($2, $3.nodes) + fmt.Println("228"); $$ = expr.NewNew($2, $3.nodes) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) } else { - $$ = expr.NewNew($2, nil) + fmt.Println("229"); $$ = expr.NewNew($2, nil) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) } @@ -1820,7 +1820,7 @@ expr_without_variable: { list := expr.NewList($3) positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $4)) - $$ = assign_op.NewAssign(list, $6) + fmt.Println("230"); $$ = assign_op.NewAssign(list, $6) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $6)) comments.AddComments(list, $1.Comments()) @@ -1828,13 +1828,13 @@ expr_without_variable: } | variable '=' expr { - $$ = assign_op.NewAssign($1, $3) + fmt.Println("231"); $$ = assign_op.NewAssign($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable '=' '&' variable { - $$ = assign_op.NewAssignRef($1, $4) + fmt.Println("232"); $$ = assign_op.NewAssignRef($1, $4) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) comments.AddComments($$, comments[$1]) } @@ -1849,299 +1849,299 @@ expr_without_variable: } comments.AddComments(_new, comments[$1]) - $$ = assign_op.NewAssignRef($1, _new) + fmt.Println("233"); $$ = assign_op.NewAssignRef($1, _new) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, _new)) comments.AddComments($$, comments[$1]) } | T_CLONE expr { - $$ = expr.NewClone($2) + fmt.Println("234"); $$ = expr.NewClone($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | variable T_PLUS_EQUAL expr { - $$ = assign_op.NewPlus($1, $3) + fmt.Println("235"); $$ = assign_op.NewPlus($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_MINUS_EQUAL expr { - $$ = assign_op.NewMinus($1, $3) + fmt.Println("236"); $$ = assign_op.NewMinus($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_MUL_EQUAL expr { - $$ = assign_op.NewMul($1, $3) + fmt.Println("237"); $$ = assign_op.NewMul($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_POW_EQUAL expr { - $$ = assign_op.NewPow($1, $3) + fmt.Println("238"); $$ = assign_op.NewPow($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_DIV_EQUAL expr { - $$ = assign_op.NewDiv($1, $3) + fmt.Println("239"); $$ = assign_op.NewDiv($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_CONCAT_EQUAL expr { - $$ = assign_op.NewConcat($1, $3) + fmt.Println("240"); $$ = assign_op.NewConcat($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_MOD_EQUAL expr { - $$ = assign_op.NewMod($1, $3) + fmt.Println("241"); $$ = assign_op.NewMod($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_AND_EQUAL expr { - $$ = assign_op.NewBitwiseAnd($1, $3) + fmt.Println("242"); $$ = assign_op.NewBitwiseAnd($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_OR_EQUAL expr { - $$ = assign_op.NewBitwiseOr($1, $3) + fmt.Println("243"); $$ = assign_op.NewBitwiseOr($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_XOR_EQUAL expr { - $$ = assign_op.NewBitwiseXor($1, $3) + fmt.Println("244"); $$ = assign_op.NewBitwiseXor($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_SL_EQUAL expr { - $$ = assign_op.NewShiftLeft($1, $3) + fmt.Println("245"); $$ = assign_op.NewShiftLeft($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable T_SR_EQUAL expr { - $$ = assign_op.NewShiftRight($1, $3) + fmt.Println("246"); $$ = assign_op.NewShiftRight($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | rw_variable T_INC { - $$ = expr.NewPostInc($1) + fmt.Println("247"); $$ = expr.NewPostInc($1) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) comments.AddComments($$, comments[$1]) } | T_INC rw_variable { - $$ = expr.NewPreInc($2) + fmt.Println("248"); $$ = expr.NewPreInc($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | rw_variable T_DEC { - $$ = expr.NewPostDec($1) + fmt.Println("249"); $$ = expr.NewPostDec($1) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) comments.AddComments($$, comments[$1]) } | T_DEC rw_variable { - $$ = expr.NewPreDec($2) + fmt.Println("250"); $$ = expr.NewPreDec($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | expr T_BOOLEAN_OR expr { - $$ = binary_op.NewBooleanOr($1, $3) + fmt.Println("251"); $$ = binary_op.NewBooleanOr($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_BOOLEAN_AND expr { - $$ = binary_op.NewBooleanAnd($1, $3) + fmt.Println("252"); $$ = binary_op.NewBooleanAnd($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_LOGICAL_OR expr { - $$ = binary_op.NewLogicalOr($1, $3) + fmt.Println("253"); $$ = binary_op.NewLogicalOr($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_LOGICAL_AND expr { - $$ = binary_op.NewLogicalAnd($1, $3) + fmt.Println("254"); $$ = binary_op.NewLogicalAnd($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_LOGICAL_XOR expr { - $$ = binary_op.NewLogicalXor($1, $3) + fmt.Println("255"); $$ = binary_op.NewLogicalXor($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '|' expr { - $$ = binary_op.NewBitwiseOr($1, $3) + fmt.Println("256"); $$ = binary_op.NewBitwiseOr($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '&' expr { - $$ = binary_op.NewBitwiseAnd($1, $3) + fmt.Println("257"); $$ = binary_op.NewBitwiseAnd($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '^' expr { - $$ = binary_op.NewBitwiseXor($1, $3) + fmt.Println("258"); $$ = binary_op.NewBitwiseXor($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '.' expr { - $$ = binary_op.NewConcat($1, $3) + fmt.Println("259"); $$ = binary_op.NewConcat($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '+' expr { - $$ = binary_op.NewPlus($1, $3) + fmt.Println("260"); $$ = binary_op.NewPlus($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '-' expr { - $$ = binary_op.NewMinus($1, $3) + fmt.Println("261"); $$ = binary_op.NewMinus($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '*' expr { - $$ = binary_op.NewMul($1, $3) + fmt.Println("262"); $$ = binary_op.NewMul($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_POW expr { - $$ = binary_op.NewPow($1, $3) + fmt.Println("263"); $$ = binary_op.NewPow($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '/' expr { - $$ = binary_op.NewDiv($1, $3) + fmt.Println("264"); $$ = binary_op.NewDiv($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '%' expr { - $$ = binary_op.NewMod($1, $3) + fmt.Println("265"); $$ = binary_op.NewMod($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_SL expr { - $$ = binary_op.NewShiftLeft($1, $3) + fmt.Println("266"); $$ = binary_op.NewShiftLeft($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_SR expr { - $$ = binary_op.NewShiftRight($1, $3) + fmt.Println("267"); $$ = binary_op.NewShiftRight($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | '+' expr %prec T_INC { - $$ = expr.NewUnaryPlus($2) + fmt.Println("268"); $$ = expr.NewUnaryPlus($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '-' expr %prec T_INC { - $$ = expr.NewUnaryMinus($2) + fmt.Println("269"); $$ = expr.NewUnaryMinus($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '!' expr { - $$ = expr.NewBooleanNot($2) + fmt.Println("270"); $$ = expr.NewBooleanNot($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '~' expr { - $$ = expr.NewBitwiseNot($2) + fmt.Println("271"); $$ = expr.NewBitwiseNot($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | expr T_IS_IDENTICAL expr { - $$ = binary_op.NewIdentical($1, $3) + fmt.Println("272"); $$ = binary_op.NewIdentical($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_IS_NOT_IDENTICAL expr { - $$ = binary_op.NewNotIdentical($1, $3) + fmt.Println("273"); $$ = binary_op.NewNotIdentical($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_IS_EQUAL expr { - $$ = binary_op.NewEqual($1, $3) + fmt.Println("274"); $$ = binary_op.NewEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_IS_NOT_EQUAL expr { - $$ = binary_op.NewNotEqual($1, $3) + fmt.Println("275"); $$ = binary_op.NewNotEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '<' expr { - $$ = binary_op.NewSmaller($1, $3) + fmt.Println("276"); $$ = binary_op.NewSmaller($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_IS_SMALLER_OR_EQUAL expr { - $$ = binary_op.NewSmallerOrEqual($1, $3) + fmt.Println("277"); $$ = binary_op.NewSmallerOrEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr '>' expr { - $$ = binary_op.NewGreater($1, $3) + fmt.Println("278"); $$ = binary_op.NewGreater($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_IS_GREATER_OR_EQUAL expr { - $$ = binary_op.NewGreaterOrEqual($1, $3) + fmt.Println("279"); $$ = binary_op.NewGreaterOrEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | expr T_INSTANCEOF class_name_reference { - $$ = expr.NewInstanceOf($1, $3) + fmt.Println("280"); $$ = expr.NewInstanceOf($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | parenthesis_expr - { $$ = $1 } + { fmt.Println("281"); $$ = $1 } | new_expr - { $$ = $1 } + { fmt.Println("282"); $$ = $1 } | '(' new_expr ')' instance_call { - $$ = $2 + fmt.Println("283"); $$ = $2 for _, n := range($4) { switch nn := n.(type) { @@ -2149,124 +2149,124 @@ expr_without_variable: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, $1.Comments()) - $$ = nn + fmt.Println("284"); $$ = nn case *expr.PropertyFetch: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, $1.Comments()) - $$ = nn + fmt.Println("285"); $$ = nn case *expr.MethodCall: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, $1.Comments()) - $$ = nn + fmt.Println("286"); $$ = nn } } } | expr '?' expr ':' expr { - $$ = expr.NewTernary($1, $3, $5) + fmt.Println("287"); $$ = expr.NewTernary($1, $3, $5) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $5)) comments.AddComments($$, comments[$1]) } | expr '?' ':' expr { - $$ = expr.NewTernary($1, nil, $4) + fmt.Println("288"); $$ = expr.NewTernary($1, nil, $4) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) comments.AddComments($$, comments[$1]) } | internal_functions_in_yacc - { $$ = $1 } + { fmt.Println("289"); $$ = $1 } | T_INT_CAST expr { - $$ = cast.NewCastInt($2) + fmt.Println("290"); $$ = cast.NewCastInt($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_DOUBLE_CAST expr { - $$ = cast.NewCastDouble($2) + fmt.Println("291"); $$ = cast.NewCastDouble($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_STRING_CAST expr { - $$ = cast.NewCastString($2) + fmt.Println("292"); $$ = cast.NewCastString($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_ARRAY_CAST expr { - $$ = cast.NewCastArray($2) + fmt.Println("293"); $$ = cast.NewCastArray($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_OBJECT_CAST expr { - $$ = cast.NewCastObject($2) + fmt.Println("294"); $$ = cast.NewCastObject($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_BOOL_CAST expr { - $$ = cast.NewCastBool($2) + fmt.Println("295"); $$ = cast.NewCastBool($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_UNSET_CAST expr { - $$ = cast.NewCastUnset($2) + fmt.Println("296"); $$ = cast.NewCastUnset($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_EXIT exit_expr { - $$ = expr.NewExit($2, strings.EqualFold($1.Value, "die")) + fmt.Println("297"); $$ = expr.NewExit($2, strings.EqualFold($1.Value, "die")) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '@' expr { - $$ = expr.NewErrorSuppress($2) + fmt.Println("298"); $$ = expr.NewErrorSuppress($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | scalar - { $$ = $1 } + { fmt.Println("299"); $$ = $1 } | combined_scalar_offset - { $$ = $1 } + { fmt.Println("300"); $$ = $1 } | combined_scalar - { $$ = $1 } + { fmt.Println("301"); $$ = $1 } | '`' backticks_expr '`' { - $$ = expr.NewShellExec($2) + fmt.Println("302"); $$ = expr.NewShellExec($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_PRINT expr { - $$ = expr.NewPrint($2) + fmt.Println("303"); $$ = expr.NewPrint($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_YIELD { - $$ = expr.NewYield(nil, nil) + fmt.Println("304"); $$ = expr.NewYield(nil, nil) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = expr.NewClosure($4, $6, nil, $8, false, $2.value, "") + fmt.Println("305"); $$ = expr.NewClosure($4, $6, nil, $8, false, $2.value, "") positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $9)) comments.AddComments($$, $1.Comments()) } | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = expr.NewClosure($5, $7, nil, $9, true, $3.value, "") + fmt.Println("306"); $$ = expr.NewClosure($5, $7, nil, $9, true, $3.value, "") positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $10)) comments.AddComments($$, $1.Comments()) @@ -2280,7 +2280,7 @@ yield_expr: positions.AddPosition(yield, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments(yield, $1.Comments()) - $$ = stmt.NewExpression(yield) + fmt.Println("307"); $$ = stmt.NewExpression(yield) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -2290,7 +2290,7 @@ yield_expr: positions.AddPosition(yield, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments(yield, $1.Comments()) - $$ = stmt.NewExpression(yield) + fmt.Println("308"); $$ = stmt.NewExpression(yield) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -2300,7 +2300,7 @@ yield_expr: positions.AddPosition(yield, positionBuilder.NewTokenNodePosition($1, $4)) comments.AddComments(yield, $1.Comments()) - $$ = stmt.NewExpression(yield) + fmt.Println("309"); $$ = stmt.NewExpression(yield) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -2310,7 +2310,7 @@ yield_expr: positions.AddPosition(yield, positionBuilder.NewTokenNodePosition($1, $4)) comments.AddComments(yield, $1.Comments()) - $$ = stmt.NewExpression(yield) + fmt.Println("310"); $$ = stmt.NewExpression(yield) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -2319,13 +2319,13 @@ yield_expr: combined_scalar_offset: combined_scalar '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("311"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } | combined_scalar_offset '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("312"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } @@ -2335,13 +2335,13 @@ combined_scalar_offset: positions.AddPosition(str, positionBuilder.NewTokenPosition($1)) comments.AddComments(str, $1.Comments()) - $$ = expr.NewArrayDimFetch(str, $3) + fmt.Println("313"); $$ = expr.NewArrayDimFetch(str, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(str, $4)) comments.AddComments($$, comments[str]) } | general_constant '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("314"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } @@ -2350,13 +2350,13 @@ combined_scalar_offset: combined_scalar: T_ARRAY '(' array_pair_list ')' { - $$ = expr.NewArray($3) + fmt.Println("315"); $$ = expr.NewArray($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | '[' array_pair_list ']' { - $$ = expr.NewShortArray($2) + fmt.Println("316"); $$ = expr.NewShortArray($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } @@ -2364,14 +2364,14 @@ combined_scalar: function: T_FUNCTION - { $$ = $1 } + { fmt.Println("317"); $$ = $1 } ; lexical_vars: /* empty */ - { $$ = []node.Node{} } + { fmt.Println("318"); $$ = []node.Node{} } | T_USE '(' lexical_var_list ')' - { $$ = $3; } + { fmt.Println("319"); $$ = $3; } ; lexical_var_list: @@ -2389,7 +2389,7 @@ lexical_var_list: positions.AddPosition(use, positionBuilder.NewTokenPosition($3)) comments.AddComments(use, $3.Comments()) - $$ = append($1, use) + fmt.Println("320"); $$ = append($1, use) } | lexical_var_list ',' '&' T_VARIABLE { @@ -2405,7 +2405,7 @@ lexical_var_list: positions.AddPosition(use, positionBuilder.NewTokensPosition($3, $4)) comments.AddComments(use, $3.Comments()) - $$ = append($1, use) + fmt.Println("321"); $$ = append($1, use) } | T_VARIABLE { @@ -2421,7 +2421,7 @@ lexical_var_list: positions.AddPosition(use, positionBuilder.NewTokenPosition($1)) comments.AddComments(use, $1.Comments()) - $$ = []node.Node{use} + fmt.Println("322"); $$ = []node.Node{use} } | '&' T_VARIABLE { @@ -2437,7 +2437,7 @@ lexical_var_list: positions.AddPosition(use, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments(use, $1.Comments()) - $$ = []node.Node{use} + fmt.Println("323"); $$ = []node.Node{use} } ; @@ -2448,7 +2448,7 @@ function_call: positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) comments.AddComments(name, ListGetFirstNodeComments($1)) - $$ = expr.NewFunctionCall(name, $2.nodes) + fmt.Println("324"); $$ = expr.NewFunctionCall(name, $2.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(name, $2.endToken)) comments.AddComments($$, comments[name]) } @@ -2458,7 +2458,7 @@ function_call: positions.AddPosition(funcName, positionBuilder.NewTokenNodeListPosition($1, $3)) comments.AddComments(funcName, $1.Comments()) - $$ = expr.NewFunctionCall(funcName, $4.nodes) + fmt.Println("325"); $$ = expr.NewFunctionCall(funcName, $4.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(funcName, $4.endToken)) comments.AddComments($$, comments[funcName]) } @@ -2468,37 +2468,37 @@ function_call: positions.AddPosition(funcName, positionBuilder.NewTokenNodeListPosition($1, $2)) comments.AddComments(funcName, $1.Comments()) - $$ = expr.NewFunctionCall(funcName, $3.nodes) + fmt.Println("326"); $$ = expr.NewFunctionCall(funcName, $3.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(funcName, $3.endToken)) comments.AddComments($$, comments[funcName]) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.nodes) + fmt.Println("327"); $$ = expr.NewStaticCall($1, $3, $4.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) comments.AddComments($$, comments[$1]) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.nodes) + fmt.Println("328"); $$ = expr.NewStaticCall($1, $3, $4.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) comments.AddComments($$, comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.nodes) + fmt.Println("329"); $$ = expr.NewStaticCall($1, $3, $4.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) comments.AddComments($$, comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.nodes) + fmt.Println("330"); $$ = expr.NewStaticCall($1, $3, $4.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) comments.AddComments($$, comments[$1]) } | variable_without_objects function_call_parameter_list { - $$ = expr.NewFunctionCall($1, $2.nodes) + fmt.Println("331"); $$ = expr.NewFunctionCall($1, $2.nodes) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2.endToken)) comments.AddComments($$, comments[$1]) } @@ -2507,25 +2507,25 @@ function_call: class_name: T_STATIC { - $$ = node.NewIdentifier($1.Value) + fmt.Println("332"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | namespace_name { - $$ = name.NewName($1) + fmt.Println("333"); $$ = name.NewName($1) positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) comments.AddComments($$, ListGetFirstNodeComments($1)) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - $$ = name.NewRelative($3) + fmt.Println("334"); $$ = name.NewRelative($3) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_NS_SEPARATOR namespace_name { - $$ = name.NewFullyQualified($2) + fmt.Println("335"); $$ = name.NewFullyQualified($2) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -2534,19 +2534,19 @@ class_name: fully_qualified_class_name: namespace_name { - $$ = name.NewName($1) + fmt.Println("336"); $$ = name.NewName($1) positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) comments.AddComments($$, ListGetFirstNodeComments($1)) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - $$ = name.NewRelative($3) + fmt.Println("337"); $$ = name.NewRelative($3) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_NS_SEPARATOR namespace_name { - $$ = name.NewFullyQualified($2) + fmt.Println("338"); $$ = name.NewFullyQualified($2) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -2554,15 +2554,15 @@ fully_qualified_class_name: class_name_reference: class_name - { $$ = $1 } + { fmt.Println("339"); $$ = $1 } | dynamic_class_name_reference - { $$ = $1 } + { fmt.Println("340"); $$ = $1 } ; dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR object_property dynamic_class_name_variable_properties { - $$ = $1 + fmt.Println("341"); $$ = $1 for _, n := range($3) { switch nn := n.(type) { @@ -2570,19 +2570,19 @@ dynamic_class_name_reference: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("342"); $$ = nn case *expr.PropertyFetch: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("343"); $$ = nn case *expr.MethodCall: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("344"); $$ = nn } } @@ -2592,135 +2592,135 @@ dynamic_class_name_reference: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("345"); $$ = nn case *expr.PropertyFetch: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("346"); $$ = nn case *expr.MethodCall: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("347"); $$ = nn } } } | base_variable - { $$ = $1 } + { fmt.Println("348"); $$ = $1 } ; dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property - { $$ = append($1, $2...) } + { fmt.Println("349"); $$ = append($1, $2...) } | /* empty */ - { $$ = []node.Node{} } + { fmt.Println("350"); $$ = []node.Node{} } ; dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property - { $$ = $2 } + { fmt.Println("351"); $$ = $2 } ; exit_expr: /* empty */ - { $$ = nil } + { fmt.Println("352"); $$ = nil } | '(' ')' - { $$ = nil } + { fmt.Println("353"); $$ = nil } | parenthesis_expr - { $$ = $1 } + { fmt.Println("354"); $$ = $1 } ; backticks_expr: /* empty */ - { $$ = []node.Node{} } + { fmt.Println("355"); $$ = []node.Node{} } | T_ENCAPSED_AND_WHITESPACE - { $$ = []node.Node{scalar.NewEncapsedStringPart($1.Value)} } + { fmt.Println("356"); $$ = []node.Node{scalar.NewEncapsedStringPart($1.Value)} } | encaps_list - { $$ = $1; } + { fmt.Println("357"); $$ = $1; } ; ctor_arguments: /* empty */ - { $$ = nil } + { fmt.Println("358"); $$ = nil } | function_call_parameter_list - { $$ = $1 } + { fmt.Println("359"); $$ = $1 } ; common_scalar: T_LNUMBER { - $$ = scalar.NewLnumber($1.Value) + fmt.Println("360"); $$ = scalar.NewLnumber($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_DNUMBER { - $$ = scalar.NewDnumber($1.Value) + fmt.Println("361"); $$ = scalar.NewDnumber($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_CONSTANT_ENCAPSED_STRING { - $$ = scalar.NewString($1.Value) + fmt.Println("362"); $$ = scalar.NewString($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_LINE { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("363"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_FILE { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("364"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_DIR { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("365"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_TRAIT_C { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("366"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_METHOD_C { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("367"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_FUNC_C { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("368"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_NS_C { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("369"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { - $$ = scalar.NewString($2.Value) + fmt.Println("370"); $$ = scalar.NewString($2.Value) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3))/* TODO: mark as Heredoc*/ comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC T_END_HEREDOC { - $$ = scalar.NewEncapsed(nil) + fmt.Println("371"); $$ = scalar.NewEncapsed(nil) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -2731,7 +2731,7 @@ static_class_constant: { target := node.NewIdentifier($3.Value) positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) - $$ = expr.NewClassConstFetch($1, target) + fmt.Println("372"); $$ = expr.NewClassConstFetch($1, target) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) comments.AddComments(target, $3.Comments()) @@ -2741,21 +2741,21 @@ static_class_constant: static_scalar: static_scalar_value - { $$ = $1 } + { fmt.Println("373"); $$ = $1 } ; static_scalar_value: common_scalar - { $$ = $1 } + { fmt.Println("374"); $$ = $1 } | static_class_name_scalar - { $$ = $1 } + { fmt.Println("375"); $$ = $1 } | namespace_name { name := name.NewName($1) positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) comments.AddComments(name, ListGetFirstNodeComments($1)) - $$ = expr.NewConstFetch(name) + fmt.Println("376"); $$ = expr.NewConstFetch(name) positions.AddPosition($$, positionBuilder.NewNodePosition(name)) comments.AddComments($$, comments[name]) } @@ -2765,7 +2765,7 @@ static_scalar_value: positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $3)) comments.AddComments(name, $1.Comments()) - $$ = expr.NewConstFetch(name) + fmt.Println("377"); $$ = expr.NewConstFetch(name) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) comments.AddComments($$, comments[name]) } @@ -2775,241 +2775,241 @@ static_scalar_value: positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $2)) comments.AddComments(name, $1.Comments()) - $$ = expr.NewConstFetch(name) + fmt.Println("378"); $$ = expr.NewConstFetch(name) positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2)) comments.AddComments($$, comments[name]) } | T_ARRAY '(' static_array_pair_list ')' { - $$ = expr.NewArray($3) + fmt.Println("379"); $$ = expr.NewArray($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | '[' static_array_pair_list ']' { - $$ = expr.NewShortArray($2) + fmt.Println("380"); $$ = expr.NewShortArray($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | static_class_constant - { $$ = $1 } + { fmt.Println("381"); $$ = $1 } | T_CLASS_C { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("382"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | static_operation - { $$ = $1 } + { fmt.Println("383"); $$ = $1 } ; static_operation: static_scalar_value '[' static_scalar_value ']' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("384"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } | static_scalar_value '+' static_scalar_value { - $$ = binary_op.NewPlus($1, $3) + fmt.Println("385"); $$ = binary_op.NewPlus($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '-' static_scalar_value { - $$ = binary_op.NewMinus($1, $3) + fmt.Println("386"); $$ = binary_op.NewMinus($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '*' static_scalar_value { - $$ = binary_op.NewMul($1, $3) + fmt.Println("387"); $$ = binary_op.NewMul($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_POW static_scalar_value { - $$ = binary_op.NewPow($1, $3) + fmt.Println("388"); $$ = binary_op.NewPow($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '/' static_scalar_value { - $$ = binary_op.NewDiv($1, $3) + fmt.Println("389"); $$ = binary_op.NewDiv($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '%' static_scalar_value { - $$ = binary_op.NewMod($1, $3) + fmt.Println("390"); $$ = binary_op.NewMod($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | '!' static_scalar_value { - $$ = expr.NewBooleanNot($2) + fmt.Println("391"); $$ = expr.NewBooleanNot($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '~' static_scalar_value { - $$ = expr.NewBitwiseNot($2) + fmt.Println("392"); $$ = expr.NewBitwiseNot($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | static_scalar_value '|' static_scalar_value { - $$ = binary_op.NewBitwiseOr($1, $3) + fmt.Println("393"); $$ = binary_op.NewBitwiseOr($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '&' static_scalar_value { - $$ = binary_op.NewBitwiseAnd($1, $3) + fmt.Println("394"); $$ = binary_op.NewBitwiseAnd($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '^' static_scalar_value { - $$ = binary_op.NewBitwiseXor($1, $3) + fmt.Println("395"); $$ = binary_op.NewBitwiseXor($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_SL static_scalar_value { - $$ = binary_op.NewShiftLeft($1, $3) + fmt.Println("396"); $$ = binary_op.NewShiftLeft($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_SR static_scalar_value { - $$ = binary_op.NewShiftRight($1, $3) + fmt.Println("397"); $$ = binary_op.NewShiftRight($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '.' static_scalar_value { - $$ = binary_op.NewConcat($1, $3) + fmt.Println("398"); $$ = binary_op.NewConcat($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_LOGICAL_XOR static_scalar_value { - $$ = binary_op.NewLogicalXor($1, $3) + fmt.Println("399"); $$ = binary_op.NewLogicalXor($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_LOGICAL_AND static_scalar_value { - $$ = binary_op.NewLogicalAnd($1, $3) + fmt.Println("400"); $$ = binary_op.NewLogicalAnd($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_LOGICAL_OR static_scalar_value { - $$ = binary_op.NewLogicalOr($1, $3) + fmt.Println("401"); $$ = binary_op.NewLogicalOr($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_BOOLEAN_AND static_scalar_value { - $$ = binary_op.NewBooleanAnd($1, $3) + fmt.Println("402"); $$ = binary_op.NewBooleanAnd($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_BOOLEAN_OR static_scalar_value { - $$ = binary_op.NewBooleanOr($1, $3) + fmt.Println("403"); $$ = binary_op.NewBooleanOr($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_IS_IDENTICAL static_scalar_value { - $$ = binary_op.NewIdentical($1, $3) + fmt.Println("404"); $$ = binary_op.NewIdentical($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { - $$ = binary_op.NewNotIdentical($1, $3) + fmt.Println("405"); $$ = binary_op.NewNotIdentical($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_IS_EQUAL static_scalar_value { - $$ = binary_op.NewEqual($1, $3) + fmt.Println("406"); $$ = binary_op.NewEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { - $$ = binary_op.NewNotEqual($1, $3) + fmt.Println("407"); $$ = binary_op.NewNotEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '<' static_scalar_value { - $$ = binary_op.NewSmaller($1, $3) + fmt.Println("408"); $$ = binary_op.NewSmaller($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '>' static_scalar_value { - $$ = binary_op.NewGreater($1, $3) + fmt.Println("409"); $$ = binary_op.NewGreater($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { - $$ = binary_op.NewSmallerOrEqual($1, $3) + fmt.Println("410"); $$ = binary_op.NewSmallerOrEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { - $$ = binary_op.NewGreaterOrEqual($1, $3) + fmt.Println("411"); $$ = binary_op.NewGreaterOrEqual($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | static_scalar_value '?' ':' static_scalar_value { - $$ = expr.NewTernary($1, nil, $4) + fmt.Println("412"); $$ = expr.NewTernary($1, nil, $4) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) comments.AddComments($$, comments[$1]) } | static_scalar_value '?' static_scalar_value ':' static_scalar_value { - $$ = expr.NewTernary($1, $3, $5) + fmt.Println("413"); $$ = expr.NewTernary($1, $3, $5) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $5)) comments.AddComments($$, comments[$1]) } | '+' static_scalar_value { - $$ = expr.NewUnaryPlus($2) + fmt.Println("414"); $$ = expr.NewUnaryPlus($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '-' static_scalar_value { - $$ = expr.NewUnaryMinus($2) + fmt.Println("415"); $$ = expr.NewUnaryMinus($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | '(' static_scalar_value ')' - { $$ = $2 } + { fmt.Println("416"); $$ = $2 } ; general_constant: class_constant - { $$ = $1 } + { fmt.Println("417"); $$ = $1 } | namespace_name { name := name.NewName($1) positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) comments.AddComments(name, ListGetFirstNodeComments($1)) - $$ = expr.NewConstFetch(name) + fmt.Println("418"); $$ = expr.NewConstFetch(name) positions.AddPosition($$, positionBuilder.NewNodePosition(name)) comments.AddComments($$, comments[name]) } @@ -3019,7 +3019,7 @@ general_constant: positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $3)) comments.AddComments(name, $1.Comments()) - $$ = expr.NewConstFetch(name) + fmt.Println("419"); $$ = expr.NewConstFetch(name) positions.AddPosition($$, positionBuilder.NewNodePosition(name)) comments.AddComments($$, comments[name]) } @@ -3029,7 +3029,7 @@ general_constant: positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $2)) comments.AddComments(name, $1.Comments()) - $$ = expr.NewConstFetch(name) + fmt.Println("420"); $$ = expr.NewConstFetch(name) positions.AddPosition($$, positionBuilder.NewNodePosition(name)) comments.AddComments($$, comments[name]) } @@ -3040,33 +3040,33 @@ scalar: { name := node.NewIdentifier($1.Value) positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) - $$ = expr.NewVariable(name) + fmt.Println("421"); $$ = expr.NewVariable(name) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments(name, $1.Comments()) comments.AddComments($$, $1.Comments()) } | general_constant - { $$ = $1 } + { fmt.Println("422"); $$ = $1 } | class_name_scalar - { $$ = $1 } + { fmt.Println("423"); $$ = $1 } | common_scalar - { $$ = $1 } + { fmt.Println("424"); $$ = $1 } | '"' encaps_list '"' { - $$ = scalar.NewEncapsed($2) + fmt.Println("425"); $$ = scalar.NewEncapsed($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC encaps_list T_END_HEREDOC { - $$ = scalar.NewEncapsed($2) + fmt.Println("426"); $$ = scalar.NewEncapsed($2) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } | T_CLASS_C { - $$ = scalar.NewMagicConstant($1.Value) + fmt.Println("427"); $$ = scalar.NewMagicConstant($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } @@ -3074,9 +3074,9 @@ scalar: static_array_pair_list: /* empty */ - { $$ = nil } + { fmt.Println("428"); $$ = nil } | non_empty_static_array_pair_list possible_comma - { $$ = $1 } + { fmt.Println("429"); $$ = $1 } ; possible_comma: @@ -3091,7 +3091,7 @@ non_empty_static_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($3, $5)) comments.AddComments(arrayItem, comments[$3]) - $$ = append($1, arrayItem) + fmt.Println("430"); $$ = append($1, arrayItem) } | non_empty_static_array_pair_list ',' static_scalar_value { @@ -3099,7 +3099,7 @@ non_empty_static_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($3)) comments.AddComments(arrayItem, comments[$3]) - $$ = append($1, arrayItem) + fmt.Println("431"); $$ = append($1, arrayItem) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { @@ -3107,7 +3107,7 @@ non_empty_static_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments(arrayItem, comments[$1]) - $$ = []node.Node{arrayItem} + fmt.Println("432"); $$ = []node.Node{arrayItem} } | static_scalar_value { @@ -3115,45 +3115,45 @@ non_empty_static_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($1)) comments.AddComments(arrayItem, comments[$1]) - $$ = []node.Node{arrayItem} + fmt.Println("433"); $$ = []node.Node{arrayItem} } ; expr: r_variable - { $$ = $1 } + { fmt.Println("434"); $$ = $1 } | expr_without_variable - { $$ = $1 } + { fmt.Println("435"); $$ = $1 } ; parenthesis_expr: '(' expr ')' - { $$ = $2 } + { fmt.Println("436"); $$ = $2 } | '(' yield_expr ')' - { $$ = $2 } + { fmt.Println("437"); $$ = $2 } ; r_variable: variable - { $$ = $1 } + { fmt.Println("438"); $$ = $1 } ; w_variable: variable - { $$ = $1 } + { fmt.Println("439"); $$ = $1 } ; rw_variable: variable - { $$ = $1 } + { fmt.Println("440"); $$ = $1 } ; variable: base_variable_with_function_calls T_OBJECT_OPERATOR object_property method_or_not variable_properties { - $$ = $1 + fmt.Println("441"); $$ = $1 if $4 != nil { $4[0].(*expr.MethodCall).Method = $3[len($3)-1].(*expr.PropertyFetch).Property @@ -3166,19 +3166,19 @@ variable: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("442"); $$ = nn case *expr.PropertyFetch: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("443"); $$ = nn case *expr.MethodCall: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("444"); $$ = nn } } @@ -3188,31 +3188,31 @@ variable: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("445"); $$ = nn case *expr.PropertyFetch: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("446"); $$ = nn case *expr.MethodCall: nn.Variable = $$ positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) comments.AddComments(nn, comments[$1]) - $$ = nn + fmt.Println("447"); $$ = nn } } } | base_variable_with_function_calls - { $$ = $1 } + { fmt.Println("448"); $$ = $1 } ; variable_properties: variable_properties variable_property - { $$ = append($1, $2...) } + { fmt.Println("449"); $$ = append($1, $2...) } | /* empty */ - { $$ = []node.Node{} } + { fmt.Println("450"); $$ = []node.Node{} } ; @@ -3224,7 +3224,7 @@ variable_property: $2 = append($2[:len($2)-1], $3...) } - $$ = $2 + fmt.Println("451"); $$ = $2 } ; @@ -3234,37 +3234,37 @@ array_method_dereference: fetch := expr.NewArrayDimFetch(nil, $3) positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) - $$ = append($1, fetch) + fmt.Println("452"); $$ = append($1, fetch) } | method '[' dim_offset ']' { fetch := expr.NewArrayDimFetch(nil, $3) positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) - $$ = []node.Node{$1, fetch} + fmt.Println("453"); $$ = []node.Node{$1, fetch} } ; method: function_call_parameter_list { - $$ = expr.NewMethodCall(nil, nil, $1.nodes) + fmt.Println("454"); $$ = expr.NewMethodCall(nil, nil, $1.nodes) positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1.nodes, $1.endToken)) } ; method_or_not: method - { $$ = []node.Node{$1} } + { fmt.Println("455"); $$ = []node.Node{$1} } | array_method_dereference - { $$ = $1 } + { fmt.Println("456"); $$ = $1 } | /* empty */ - { $$ = nil } + { fmt.Println("457"); $$ = nil } ; variable_without_objects: reference_variable - { $$ = $1 } + { fmt.Println("458"); $$ = $1 } | simple_indirect_reference reference_variable { $1.last.SetVarName($2) @@ -3273,20 +3273,20 @@ variable_without_objects: positions[n] = positionBuilder.NewNodesPosition(n, $2) } - $$ = $1.all[0] + fmt.Println("459"); $$ = $1.all[0] } ; static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { - $$ = expr.NewStaticPropertyFetch($1, $3) + fmt.Println("460"); $$ = expr.NewStaticPropertyFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { - $$ = expr.NewStaticPropertyFetch($1, $3) + fmt.Println("461"); $$ = expr.NewStaticPropertyFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments($$, comments[$1]) } @@ -3295,34 +3295,34 @@ static_member: variable_class_name: reference_variable - { $$ = $1 } + { fmt.Println("462"); $$ = $1 } ; array_function_dereference: array_function_dereference '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("463"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } | function_call '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("464"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } ; base_variable_with_function_calls: - base_variable { $$ = $1 } - | array_function_dereference { $$ = $1 } - | function_call { $$ = $1 } + base_variable { fmt.Println("465"); $$ = $1 } + | array_function_dereference { fmt.Println("466"); $$ = $1 } + | function_call { fmt.Println("467"); $$ = $1 } ; base_variable: reference_variable - { $$ = $1 } + { fmt.Println("468"); $$ = $1 } | simple_indirect_reference reference_variable { $1.last.SetVarName($2) @@ -3331,27 +3331,27 @@ base_variable: positions[n] = positionBuilder.NewNodesPosition(n, $2) } - $$ = $1.all[0] + fmt.Println("469"); $$ = $1.all[0] } | static_member - { $$ = $1 } + { fmt.Println("470"); $$ = $1 } ; reference_variable: reference_variable '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("471"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } | reference_variable '{' expr '}' { - $$ = expr.NewArrayDimFetch($1, $3) + fmt.Println("472"); $$ = expr.NewArrayDimFetch($1, $3) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) comments.AddComments($$, comments[$1]) } | compound_variable - { $$ = $1 } + { fmt.Println("473"); $$ = $1 } ; @@ -3360,7 +3360,7 @@ compound_variable: { name := node.NewIdentifier($1.Value) positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) - $$ = expr.NewVariable(name) + fmt.Println("474"); $$ = expr.NewVariable(name) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments(name, $1.Comments()) @@ -3368,7 +3368,7 @@ compound_variable: } | '$' '{' expr '}' { - $$ = expr.NewVariable($3) + fmt.Println("475"); $$ = expr.NewVariable($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } @@ -3376,21 +3376,21 @@ compound_variable: dim_offset: /* empty */ - { $$ = nil } + { fmt.Println("476"); $$ = nil } | expr - { $$ = $1 } + { fmt.Println("477"); $$ = $1 } ; object_property: object_dim_list - { $$ = $1 } + { fmt.Println("478"); $$ = $1 } | variable_without_objects { fetch := expr.NewPropertyFetch(nil, $1) positions.AddPosition(fetch, positionBuilder.NewNodePosition($1)) - $$ = []node.Node{fetch} + fmt.Println("479"); $$ = []node.Node{fetch} } ; @@ -3400,33 +3400,33 @@ object_dim_list: fetch := expr.NewArrayDimFetch(nil, $3) positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) - $$ = append($1, fetch) + fmt.Println("480"); $$ = append($1, fetch) } | object_dim_list '{' expr '}' { fetch := expr.NewArrayDimFetch(nil, $3) positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) - $$ = append($1, fetch) + fmt.Println("481"); $$ = append($1, fetch) } | variable_name { fetch := expr.NewPropertyFetch(nil, $1) positions.AddPosition(fetch, positionBuilder.NewNodePosition($1)) - $$ = []node.Node{fetch} + fmt.Println("482"); $$ = []node.Node{fetch} } ; variable_name: T_STRING { - $$ = node.NewIdentifier($1.Value) + fmt.Println("483"); $$ = node.NewIdentifier($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } | '{' expr '}' - { $$ = $2 } + { fmt.Println("484"); $$ = $2 } ; simple_indirect_reference: @@ -3436,7 +3436,7 @@ simple_indirect_reference: positions.AddPosition(n, positionBuilder.NewTokenPosition($1)) comments.AddComments(n, $1.Comments()) - $$ = simpleIndirectReference{[]*expr.Variable{n}, n} + fmt.Println("485"); $$ = simpleIndirectReference{[]*expr.Variable{n}, n} } | simple_indirect_reference '$' { @@ -3448,22 +3448,22 @@ simple_indirect_reference: $1.all = append($1.all, n) $1.last = n - $$ = $1 + fmt.Println("486"); $$ = $1 } ; assignment_list: assignment_list ',' assignment_list_element - { $$ = append($1, $3) } + { fmt.Println("487"); $$ = append($1, $3) } | assignment_list_element - { $$ = []node.Node{$1} } + { fmt.Println("488"); $$ = []node.Node{$1} } ; assignment_list_element: variable { - $$ = expr.NewArrayItem(nil, $1, false) + fmt.Println("489"); $$ = expr.NewArrayItem(nil, $1, false) positions.AddPosition($$, positionBuilder.NewNodePosition($1)) comments.AddComments($$, comments[$1]) } @@ -3473,20 +3473,20 @@ assignment_list_element: positions.AddPosition(item, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments(item, $1.Comments()) - $$ = expr.NewArrayItem(nil, item, false) + fmt.Println("490"); $$ = expr.NewArrayItem(nil, item, false) positions.AddPosition($$, positionBuilder.NewNodePosition(item)) comments.AddComments($$, comments[item]) } | /* empty */ - { $$ = nil } + { fmt.Println("491"); $$ = nil } ; array_pair_list: /* empty */ - { $$ = []node.Node{} } + { fmt.Println("492"); $$ = []node.Node{} } | non_empty_array_pair_list possible_comma - { $$ = $1 } + { fmt.Println("493"); $$ = $1 } ; non_empty_array_pair_list: @@ -3496,7 +3496,7 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($3, $5)) comments.AddComments(arrayItem, comments[$3]) - $$ = append($1, arrayItem) + fmt.Println("494"); $$ = append($1, arrayItem) } | non_empty_array_pair_list ',' expr { @@ -3504,7 +3504,7 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($3)) comments.AddComments(arrayItem, comments[$3]) - $$ = append($1, arrayItem) + fmt.Println("495"); $$ = append($1, arrayItem) } | expr T_DOUBLE_ARROW expr { @@ -3512,7 +3512,7 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($1, $3)) comments.AddComments(arrayItem, comments[$1]) - $$ = []node.Node{arrayItem} + fmt.Println("496"); $$ = []node.Node{arrayItem} } | expr { @@ -3520,7 +3520,7 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($1)) comments.AddComments(arrayItem, comments[$1]) - $$ = []node.Node{arrayItem} + fmt.Println("497"); $$ = []node.Node{arrayItem} } | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { @@ -3528,7 +3528,7 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($3, $6)) comments.AddComments(arrayItem, comments[$3]) - $$ = append($1, arrayItem) + fmt.Println("498"); $$ = append($1, arrayItem) } | non_empty_array_pair_list ',' '&' w_variable { @@ -3536,7 +3536,7 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewTokenNodePosition($3, $4)) comments.AddComments(arrayItem, $3.Comments()) - $$ = append($1, arrayItem) + fmt.Println("499"); $$ = append($1, arrayItem) } | expr T_DOUBLE_ARROW '&' w_variable { @@ -3544,7 +3544,7 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($1, $4)) comments.AddComments(arrayItem, comments[$1]) - $$ = []node.Node{arrayItem} + fmt.Println("500"); $$ = []node.Node{arrayItem} } | '&' w_variable { @@ -3552,27 +3552,27 @@ non_empty_array_pair_list: positions.AddPosition(arrayItem, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments(arrayItem, $1.Comments()) - $$ = []node.Node{arrayItem} + fmt.Println("501"); $$ = []node.Node{arrayItem} } ; encaps_list: encaps_list encaps_var - { $$ = append($1, $2) } + { fmt.Println("502"); $$ = append($1, $2) } | encaps_list T_ENCAPSED_AND_WHITESPACE { encapsed := scalar.NewEncapsedStringPart($2.Value) positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($2)) - $$ = append($1, encapsed) + fmt.Println("503"); $$ = append($1, encapsed) comments.AddComments(encapsed, $2.Comments()) } | encaps_var - { $$ = []node.Node{$1} } + { fmt.Println("504"); $$ = []node.Node{$1} } | T_ENCAPSED_AND_WHITESPACE encaps_var { encapsed := scalar.NewEncapsedStringPart($1.Value) positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($1)) - $$ = []node.Node{encapsed, $2} + fmt.Println("505"); $$ = []node.Node{encapsed, $2} comments.AddComments(encapsed, $1.Comments()) } ; @@ -3582,7 +3582,7 @@ encaps_var: { name := node.NewIdentifier($1.Value) positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) - $$ = expr.NewVariable(name) + fmt.Println("506"); $$ = expr.NewVariable(name) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments(name, $1.Comments()) @@ -3594,7 +3594,7 @@ encaps_var: positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) - $$ = expr.NewArrayDimFetch(variable, $3) + fmt.Println("507"); $$ = expr.NewArrayDimFetch(variable, $3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments(identifier, $1.Comments()) @@ -3609,7 +3609,7 @@ encaps_var: positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) fetch := node.NewIdentifier($3.Value) positions.AddPosition(fetch, positionBuilder.NewTokenPosition($3)) - $$ = expr.NewPropertyFetch(variable, fetch) + fmt.Println("508"); $$ = expr.NewPropertyFetch(variable, fetch) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments(identifier, $1.Comments()) @@ -3619,7 +3619,7 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - $$ = $2 + fmt.Println("509"); $$ = $2 positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) comments.AddComments($$, $1.Comments()) } @@ -3629,7 +3629,7 @@ encaps_var: positions.AddPosition(identifier, positionBuilder.NewTokenPosition($2)) variable := expr.NewVariable(identifier) positions.AddPosition(variable, positionBuilder.NewTokenPosition($2)) - $$ = expr.NewArrayDimFetch(variable, $4) + fmt.Println("510"); $$ = expr.NewArrayDimFetch(variable, $4) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $6)) @@ -3638,13 +3638,13 @@ encaps_var: comments.AddComments($$, $1.Comments()) } | T_CURLY_OPEN variable '}' - { $$ = $2; } + { fmt.Println("511"); $$ = $2; } ; encaps_var_offset: T_STRING { - $$ = scalar.NewString($1.Value) + fmt.Println("512"); $$ = scalar.NewString($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments($$, $1.Comments()) } @@ -3652,10 +3652,10 @@ encaps_var_offset: { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi($1.Value); err == nil { - $$ = scalar.NewLnumber($1.Value) + fmt.Println("513"); $$ = scalar.NewLnumber($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) } else { - $$ = scalar.NewString($1.Value) + fmt.Println("514"); $$ = scalar.NewString($1.Value) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) } comments.AddComments($$, $1.Comments()) @@ -3664,7 +3664,7 @@ encaps_var_offset: { identifier := node.NewIdentifier($1.Value) positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) - $$ = expr.NewVariable(identifier) + fmt.Println("515"); $$ = expr.NewVariable(identifier) positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) comments.AddComments(identifier, $1.Comments()) @@ -3675,49 +3675,49 @@ encaps_var_offset: internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { - $$ = expr.NewIsset($3) + fmt.Println("516"); $$ = expr.NewIsset($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | T_EMPTY '(' variable ')' { - $$ = expr.NewEmpty($3) + fmt.Println("517"); $$ = expr.NewEmpty($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | T_EMPTY '(' expr_without_variable ')' { - $$ = expr.NewEmpty($3) + fmt.Println("518"); $$ = expr.NewEmpty($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | T_INCLUDE expr { - $$ = expr.NewInclude($2) + fmt.Println("519"); $$ = expr.NewInclude($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_INCLUDE_ONCE expr { - $$ = expr.NewIncludeOnce($2) + fmt.Println("520"); $$ = expr.NewIncludeOnce($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_EVAL '(' expr ')' { - $$ = expr.NewEval($3) + fmt.Println("521"); $$ = expr.NewEval($3) positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) comments.AddComments($$, $1.Comments()) } | T_REQUIRE expr { - $$ = expr.NewRequire($2) + fmt.Println("522"); $$ = expr.NewRequire($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } | T_REQUIRE_ONCE expr { - $$ = expr.NewRequireOnce($2) + fmt.Println("523"); $$ = expr.NewRequireOnce($2) positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) comments.AddComments($$, $1.Comments()) } @@ -3725,16 +3725,16 @@ internal_functions_in_yacc: isset_variables: isset_variable - { $$ = []node.Node{$1} } + { fmt.Println("524"); $$ = []node.Node{$1} } | isset_variables ',' isset_variable - { $$ = append($1, $3) } + { fmt.Println("525"); $$ = append($1, $3) } ; isset_variable: variable - { $$ = $1 } + { fmt.Println("526"); $$ = $1 } | expr_without_variable - { $$ = $1 } + { fmt.Println("527"); $$ = $1 } ; class_constant: @@ -3742,7 +3742,7 @@ class_constant: { target := node.NewIdentifier($3.Value) positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) - $$ = expr.NewClassConstFetch($1, target) + fmt.Println("528"); $$ = expr.NewClassConstFetch($1, target) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) comments.AddComments(target, $3.Comments()) @@ -3752,7 +3752,7 @@ class_constant: { target := node.NewIdentifier($3.Value) positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) - $$ = expr.NewClassConstFetch($1, target) + fmt.Println("529"); $$ = expr.NewClassConstFetch($1, target) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) comments.AddComments(target, $3.Comments()) @@ -3765,7 +3765,7 @@ static_class_name_scalar: { target := node.NewIdentifier($3.Value) positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) - $$ = expr.NewClassConstFetch($1, target) + fmt.Println("530"); $$ = expr.NewClassConstFetch($1, target) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) comments.AddComments(target, $3.Comments()) @@ -3778,7 +3778,7 @@ class_name_scalar: { target := node.NewIdentifier($3.Value) positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) - $$ = expr.NewClassConstFetch($1, target) + fmt.Println("531"); $$ = expr.NewClassConstFetch($1, target) positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) comments.AddComments(target, $3.Comments()) diff --git a/php5/php5_test.go b/php5/php5_test.go index b503304..31ce967 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -123,12 +123,23 @@ CAD; echo $a, 1; echo($a); for($i = 0; $i < 10; $i++, $i++) {} + for($i = 0; $i < 10; $i++, $i++) : endfor; foreach ($a as $v) {} + foreach ([] as $v) {} foreach ($a as $v) : endforeach; foreach ($a as $k => $v) {} + foreach ([] as $k => $v) {} foreach ($a as $k => &$v) {} foreach ($a as $k => list($v)) {} function foo() {} + + function foo() { + __halt_compiler(); + function bar() {} + class Baz {} + return $a; + } + function foo() {return;} function &foo() {return 1;} function &foo() {} @@ -146,7 +157,7 @@ CAD; interface Foo extends Bar {} interface Foo extends Bar, Baz {} namespace Foo; - namespace Foo {} + namespace Foo\Bar {} namespace {} class foo {var $a;} class foo {public static $a, $b = 1;} @@ -171,15 +182,20 @@ CAD; try {} try {} catch (Exception $e) {} try {} catch (Exception $e) {} catch (RuntimeException $e) {} + try {} catch (Exception $e) {} catch (RuntimeException $e) {} catch (AdditionException $e) {} try {} catch (Exception $e) {} finally {} unset($a, $b); use Foo; + use \Foo; + use \Foo as Bar; use Foo, Bar; use Foo, Bar as Baz; - use function Foo, Bar; - use const Foo, Bar; + use function Foo, \Bar; + use function Foo as foo, \Bar as bar; + use const Foo, \Bar; + use const Foo as foo, \Bar as bar; $a[1]; $a[1][2]; @@ -839,11 +855,39 @@ CAD; }, Stmt: &stmt.StmtList{Stmts: []node.Node{}}, }, + &stmt.For{ + Init: []node.Node{ + &assign_op.Assign{ + Variable: &expr.Variable{VarName: &node.Identifier{Value: "$i"}}, + Expression: &scalar.Lnumber{Value: "0"}, + }, + }, + Cond: []node.Node{ + &binary_op.Smaller{ + Left: &expr.Variable{VarName: &node.Identifier{Value: "$i"}}, + Right: &scalar.Lnumber{Value: "10"}, + }, + }, + Loop: []node.Node{ + &expr.PostInc{ + Variable: &expr.Variable{VarName: &node.Identifier{Value: "$i"}}, + }, + &expr.PostInc{ + Variable: &expr.Variable{VarName: &node.Identifier{Value: "$i"}}, + }, + }, + Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + }, &stmt.Foreach{ Expr: &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, Variable: &expr.Variable{VarName: &node.Identifier{Value: "$v"}}, Stmt: &stmt.StmtList{Stmts: []node.Node{}}, }, + &stmt.Foreach{ + Expr: &expr.ShortArray{Items: []node.Node{}}, + Variable: &expr.Variable{VarName: &node.Identifier{Value: "$v"}}, + Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + }, &stmt.Foreach{ Expr: &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, Variable: &expr.Variable{VarName: &node.Identifier{Value: "$v"}}, @@ -855,6 +899,12 @@ CAD; Variable: &expr.Variable{VarName: &node.Identifier{Value: "$v"}}, Stmt: &stmt.StmtList{Stmts: []node.Node{}}, }, + &stmt.Foreach{ + Expr: &expr.ShortArray{Items: []node.Node{}}, + Key: &expr.Variable{VarName: &node.Identifier{Value: "$k"}}, + Variable: &expr.Variable{VarName: &node.Identifier{Value: "$v"}}, + Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + }, &stmt.Foreach{ ByRef: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, @@ -882,6 +932,28 @@ CAD; FunctionName: &node.Identifier{Value: "foo"}, Stmts: []node.Node{}, }, + &stmt.Function{ + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{Value: "foo"}, + Stmts: []node.Node{ + &stmt.HaltCompiler{}, + &stmt.Function{ + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{Value: "bar"}, + Stmts: []node.Node{}, + }, + &stmt.Class{ + PhpDocComment: "", + ClassName: &node.Identifier{Value: "Baz"}, + Stmts: []node.Node{}, + }, + &stmt.Return{ + Expr: &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, + }, + }, + }, &stmt.Function{ ReturnsRef: false, PhpDocComment: "", @@ -1023,6 +1095,7 @@ CAD; NamespaceName: &name.Name{ Parts: []node.Node{ &name.NamePart{Value: "Foo"}, + &name.NamePart{Value: "Bar"}, }, }, Stmts: []node.Node{}, @@ -1263,6 +1336,50 @@ CAD; }, }, }, + &stmt.Try{ + Stmts: []node.Node{}, + Catches: []node.Node{ + &stmt.Catch{ + Types: []node.Node{ + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Exception"}, + }, + }, + }, + Variable: &expr.Variable{ + VarName: &node.Identifier{Value: "$e"}, + }, + Stmts: []node.Node{}, + }, + &stmt.Catch{ + Types: []node.Node{ + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "RuntimeException"}, + }, + }, + }, + Variable: &expr.Variable{ + VarName: &node.Identifier{Value: "$e"}, + }, + Stmts: []node.Node{}, + }, + &stmt.Catch{ + Types: []node.Node{ + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "AdditionException"}, + }, + }, + }, + Variable: &expr.Variable{ + VarName: &node.Identifier{Value: "$e"}, + }, + Stmts: []node.Node{}, + }, + }, + }, &stmt.Try{ Stmts: []node.Node{}, Catches: []node.Node{ @@ -1301,6 +1418,29 @@ CAD; }, }, }, + &stmt.UseList{ + Uses: []node.Node{ + &stmt.Use{ + Use: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Foo"}, + }, + }, + }, + }, + }, + &stmt.UseList{ + Uses: []node.Node{ + &stmt.Use{ + Use: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Foo"}, + }, + }, + Alias: &node.Identifier{Value: "Bar"}, + }, + }, + }, &stmt.UseList{ Uses: []node.Node{ &stmt.Use{ @@ -1357,6 +1497,27 @@ CAD; }, }, }, + &stmt.UseList{ + UseType: &node.Identifier{Value: "function"}, + Uses: []node.Node{ + &stmt.Use{ + Use: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Foo"}, + }, + }, + Alias: &node.Identifier{Value: "foo"}, + }, + &stmt.Use{ + Use: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Bar"}, + }, + }, + Alias: &node.Identifier{Value: "bar"}, + }, + }, + }, &stmt.UseList{ UseType: &node.Identifier{Value: "const"}, Uses: []node.Node{ @@ -1376,6 +1537,27 @@ CAD; }, }, }, + &stmt.UseList{ + UseType: &node.Identifier{Value: "const"}, + Uses: []node.Node{ + &stmt.Use{ + Use: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Foo"}, + }, + }, + Alias: &node.Identifier{Value: "foo"}, + }, + &stmt.Use{ + Use: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Bar"}, + }, + }, + Alias: &node.Identifier{Value: "bar"}, + }, + }, + }, &stmt.Expression{ Expr: &expr.ArrayDimFetch{ Variable: &expr.Variable{VarName: &node.Identifier{Value: "$a"}},