Commit Graph

8636 Commits

Author SHA1 Message Date
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
Nikita Popov
64f80b3835 Introduce dereferencable_scalar to simplify future additions 2014-05-31 16:44:53 +02:00
Nikita Popov
4ec505f9b5 Add two initial tests 2014-05-31 16:33:52 +02:00
Nikita Popov
f48241f734 Generalize static access syntax 2014-05-31 16:27:03 +02:00
Nikita Popov
8a65c3b234 Remove now unnecessary code in begin_method_call 2014-05-31 16:08:38 +02:00
Nikita Popov
fcf42d817d Remove object_stack (mostly) 2014-05-31 15:59:54 +02:00
Nikita Popov
c29d3b6e3e Update another test 2014-05-31 00:48:06 +02:00
Nikita Popov
c5920af515 Update two tests with new semantics 2014-05-31 00:40:32 +02:00
Nikita Popov
ff475e9e76 Allow arrays + object access for new expressions 2014-05-31 00:37:03 +02:00
Nikita Popov
75c0db1119 Integrate combined scalar as dereferencable 2014-05-31 00:18:50 +02:00
Nikita Popov
46a2ca8324 Generalize expression dereferencing 2014-05-31 00:09:11 +02:00
Nikita Popov
5712f0e9bd Minor cleanup 2014-05-31 00:02:51 +02:00
Nikita Popov
87f8e758c8 Cleanup old grammar rules 2014-05-30 23:51:54 +02:00