Commit Graph

81418 Commits

Author SHA1 Message Date
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