Skip to content

Commit

Permalink
fix enclosed vars and add test
Browse files Browse the repository at this point in the history
  • Loading branch information
manuel-rubio committed Mar 3, 2016
1 parent 114dd8a commit b0bd87a
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/ephp_parser.peg
Original file line number Diff line number Diff line change
Expand Up @@ -868,13 +868,14 @@ var_simple <- (key '::')? '$' key `

enclosed_var <- enclosed_var_array / enclosed_var_simple ~;

enclosed_var_array <- '$' '{' key ('[' space? (array_index space?)? ']')+ '}' `
[_Dollar,_,Key,Indexes,_] = Node,
enclosed_var_array <- ('$' '{' / '{' '$') key
('[' space? (array_index space?)? ']')+ '}' `
[_Dollar,Key,Indexes,_] = Node,
#variable{name=Key, idx=[ get_index(I) || [_,_,I,_] <- Indexes ], line=Index}
`;

enclosed_var_simple <- '$' '{' key '}' `
[_Dollar,_,Key,_] = Node,
enclosed_var_simple <- ('$' '{' / '{' '$') key '}' `
[_Dollar,Key,_] = Node,
#variable{name=Key, line=Index}
`;

Expand Down
4 changes: 4 additions & 0 deletions test/code/test_enclosed_var.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
hello world
hello world
hello mars
hello venus
11 changes: 11 additions & 0 deletions test/code/test_enclosed_var.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

$name = "world";
$names = [ "mars", "venus" ];

print "hello ${name}\n";
print "hello {$name}\n";

print "hello ${names[0]}\n";
print "hello {$names[1]}\n";

0 comments on commit b0bd87a

Please sign in to comment.