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