Nikita Popov
fc541418f2
Port goto
2014-07-09 23:11:32 +02:00
Nikita Popov
cc8a6fa91e
Port break/continue
2014-07-09 23:05:21 +02:00
Nikita Popov
5bf0c28fe3
Port throw
2014-07-09 22:48:42 +02:00
Nikita Popov
289265402a
Port echo
2014-07-07 21:14:14 +02:00
Nikita Popov
36c3cf3198
Port return statement
2014-07-07 21:06:02 +02:00
Nikita Popov
77fddc0ca2
Use zend_string* in some places
2014-07-05 00:11:00 +02:00
Nikita Popov
17c2d16d79
Refactor class name resolution as well
2014-07-04 23:45:20 +02:00
Nikita Popov
b3336270f6
Hack around global leak for now
2014-07-04 23:15:31 +02:00
Nikita Popov
fdc318849a
Shared name production for const / fn name
2014-07-04 23:08:05 +02:00
Nikita Popov
fb98dd31a0
Some refactoring of fn/const resolution
2014-06-28 22:27:06 +02:00
Nikita Popov
e198132542
Drop addition of weird \ prefix for FQ consts
...
Also fixes a resolution bug
2014-06-28 18:24:59 +02:00
Nikita Popov
111ad71d38
Rename ZEND_CONST to ZEND_AST_ZVAL
2014-06-28 18:03:26 +02:00
Nikita Popov
64dab4b914
Drop dead code
2014-06-26 22:17:19 +02:00
Nikita Popov
0e44f4c583
Remove obseleted grammar productions
2014-06-26 22:09:05 +02:00
Nikita Popov
dd60c8e0f1
Reuse expr for static_scalar
2014-06-26 22:02:54 +02:00
Nikita Popov
dd60b9bb91
Handle ::class in const expr via ast as well
2014-06-26 21:44:46 +02:00
Nikita Popov
080e8bffa5
Compile const refs to CONST
2014-06-26 16:56:50 +02:00
Nikita Popov
b83c70416b
Compile class const refs to CONST zval
2014-06-26 16:35:30 +02:00
Nikita Popov
08c4e01a1b
Add compilation state for static scalars
2014-06-26 16:03:15 +02:00
Nikita Popov
9c169d5a4d
Remove static_scalar_base
2014-06-26 14:03:31 +02:00
Nikita Popov
31687ed5c7
Handle trait __CLASS__ in parser
2014-06-26 14:00:20 +02:00
Nikita Popov
7f01b6fcec
Bring static scalar arrays in line
2014-06-26 13:20:39 +02:00
Nikita Popov
0237954778
Bring static scalar AST more in line with normal AST
2014-06-26 13:06:39 +02:00
Nikita Popov
1b84b87e78
Const eval unary pm (as previously)
2014-06-26 12:43:20 +02:00
Nikita Popov
e26c6d663a
Implement constant expression folding as a separate pass
2014-06-23 21:59:14 +02:00
Nikita Popov
0644fbccf7
Implement CT eval of binary expressions
...
I totally hate this approach. It's ugly and I don't think I can
share code with the static scalar evaluation. Maybe I should use
the approach that static scalars use instead?
2014-06-22 15:57:44 +02:00
Nikita Popov
508d146cd3
Move T_STRING_VARNAME handling
2014-06-21 20:11:31 +02:00
Nikita Popov
90d36554e2
Support string interpolation
2014-06-21 20:06:46 +02:00
Nikita Popov
b6789b1dd6
zend_ast_dynamic_ast returns new node
2014-06-21 19:31:08 +02:00
Nikita Popov
86db3942cf
Remove dead code
2014-06-21 18:54:30 +02:00
Nikita Popov
657762ee2b
AST stage 2.4
2014-06-21 18:54:13 +02:00
Nikita Popov
55ab55c417
Add ability to specify additional attr in AST
2014-06-19 13:48:50 +02:00
Nikita Popov
89ecd73a04
Make ast->children a uint
...
Future optimization: only use uint for dynamic lists and use a
uchar or even an introspection function to get the child count.
2014-06-19 13:48:50 +02:00
Nikita Popov
0c81b3eae2
Remove dead code
2014-06-19 13:48:49 +02:00
Nikita Popov
232a922618
Support yield without parens
...
for now => is lowest-prec right-assoc
2014-06-19 13:48:49 +02:00
Nikita Popov
0ec49bba22
AST stage 1.9
...
Expressions (mostly) use the AST
2014-06-19 13:48:35 +02:00
Nikita Popov
258a733ed2
AST-based compiler: Stage 1
2014-06-14 15:22:18 +02:00
Nikita Popov
98918fe65b
Remove (&ast->u.child)[i] weirdness
2014-06-06 22:35:21 +02:00
Nikita Popov
c8aa51f825
Accept static member fetch in new variable (BC)
2014-06-06 17:05:14 +02:00
Nikita Popov
e4e42df4e6
Allow only simple variables with global keyword
2014-06-04 17:15:16 +02:00
Nikita Popov
f4a11b66cc
Merge and rename to member_name
2014-05-31 21:00:11 +02:00
Nikita Popov
8d7f5a403a
Remove duplication
2014-05-31 20:58:44 +02:00
Nikita Popov
8515b96e53
Handle FUNC_ARG fetches on temporaries
2014-05-31 20:15:55 +02:00
Nikita Popov
96b32ec532
Support isset() on temporaries
2014-05-31 20:05:03 +02:00
Nikita Popov
5c2120b6cf
Forbid writing to temporary expressions
2014-05-31 19:41:39 +02:00
Nikita Popov
72b5e0cac0
Add another static member access test
2014-05-31 18:18:20 +02:00
Nikita Popov
f0ac7f7d7b
Properly handle property read on const/tmp
2014-05-31 17:51:22 +02:00
Nikita Popov
c53a7ea4e5
Property handle calls on [] and '' consts/tmps
2014-05-31 17:37:30 +02:00
Nikita Popov
64e4c9eff1
Support directly calling closure
2014-05-31 17:18:37 +02:00
Nikita Popov
fd85f77857
Fix previous commit
2014-05-31 17:02:48 +02:00