Commit Graph

58 Commits

Author SHA1 Message Date
nikic
4e656fc58d [5.4] Add full array dereferencing support 2011-11-04 07:40:48 +01:00
nikic
6ecae86981 [5.4] Add support for traits 2011-10-30 12:03:29 +01:00
nikic
613aa84f80 [5.4] Add support for static closures
This adds another property to Expr_Closure named "static". It's true for static closures and false otherwise.
2011-10-29 00:16:29 +02:00
nikic
c88d227597 Move some uses of the toArray() macro
Previously it was applied both to the result of inner_statement_list and statement, whereas only the latter required it.
2011-10-28 23:59:00 +02:00
nikic
126efbc056 Make more things optional
Make $stmts and $subNodes optional in most places
2011-10-28 19:14:06 +02:00
nikic
f202aa9814 [API] Make all constructors specialized
For nodes that accept many optional arguments I chose to keep the $subNodes argument, but provide default values instead.
2011-10-28 19:06:24 +02:00
nikic
25f37ccc28 [API] Rename LambdaFunc to Closure
The term "closure" is more commonly used in PHP, even if the function doesn't use() any variables.
2011-10-26 18:34:12 +02:00
nikic
734dbecbc9 Add some more constructors 2011-10-21 16:51:37 +02:00
nikic
7806bf025e [5.4] Add support for ClassName::{expr} 2011-10-21 14:09:41 +02:00
nikic
73cc546140 Slightly clean up scalar/static_sclar/common_sclar
name rule is now in common_scalar as it is shared. T_STRING_VARNAME is in encaps_var now.
2011-10-21 12:22:41 +02:00
nikic
ef9d0283e9 Add class_name_or_var nonterminal (to simplify)
class_name_or_var nonterminal is class_name | reference_variable
2011-10-21 11:50:03 +02:00
nikic
08ea0e3d56 [5.4] Add callable typehint
Need to refactor how typehints are saved. Saving array and callable typehints as strings isn't clean
2011-10-21 11:30:27 +02:00
nikic
ab982567d7 [5.4] Add support for short array syntax 2011-10-21 11:27:29 +02:00
nikic
1eb1118ee1 [5.4] Add object method array dereferencing
Other array dereferencing support will follow. Added this in advance as it simplified the code.
2011-10-21 11:12:51 +02:00
nikic
eae1abb6d7 [5.4] Add new tokens
This is to not throw noticed when parsing not yet supported code on 5.4
2011-10-21 11:12:34 +02:00
nikic
3233fdd24d Add support for ClassName::$$a() 2011-10-20 22:29:34 +02:00
nikic
aea2f67c52 Fix AST for ClassName::$methodName() 2011-10-20 22:16:25 +02:00
nikic
9ed77427a2 Rename Expr_List to Expr_AssignList 2011-10-16 14:49:13 +02:00
nikic
6fc85143ca Fix parsing of $$$a 2011-10-16 14:30:22 +02:00
nikic
2d57f52d24 Add more specialized constructors 2011-10-15 19:28:15 +02:00
nikic
535cf21b73 Swap argument order for Node_Case
$cond is now the first parameter and is not optional.
2011-09-30 19:19:17 +02:00
nikic
d5f148b43f Merge Node_Name and Node_Name_Normal 2011-09-24 23:31:18 +02:00
nikic
df7cb44eed Use seperate Name node classes instead of type subnode 2011-09-24 16:53:40 +02:00
nikic
858545732c Add shared Node_Const
Node_Const is shared between Node_Stmt_ClassConst and Node_Stmt_Const. Maybe one could generalize it to a Node_NameToValue to share it with Node_Stmt_Declare too.
2011-09-23 21:00:59 +02:00
nikic
ea65ea7a32 Make some doc comments more precise
Additionally add two further constructors
2011-09-23 18:45:29 +02:00
nikic
ee4e55dc75 Move Node_Expr_FuncCallArg to Node_Arg (just like Node_Param) 2011-09-22 20:34:35 +02:00
nikic
06b7d63406 Add specialized constructors for statement nodes with only one subnode 2011-09-22 20:27:12 +02:00
nikic
847cdbc5c6 Swap argument order for ArrayItem 2011-09-02 19:49:46 +02:00
nikic
17a81b5c8f Properly parse escape sequences:
* Add support for oct and hex escape sequences
* Take used quote type into account when parsing encapsed strings
2011-08-20 10:40:27 +02:00
nikic
05c514f9c5 Instantiate a Node_Name for 'static', too. Fix some doc comments. 2011-08-19 17:44:42 +02:00
nikic
ca51472c2f Move Variable to Expr_Variable, move Stmt_FuncParam to Param (as it is used both in stmts and expr and both in funcs and methods) 2011-08-14 18:51:42 +02:00
nikic
bd602afc3a Add specialized constructor for lambdas, too 2011-08-14 18:26:06 +02:00
nikic
96350be172 Implement the debug parser by extending the normal parser. That way there is no need to repeat all action codes and lookup tables twice. 2011-08-14 15:36:15 +02:00
nikic
297c9ac290 Use moriyoshi's fork of kmyacc, which fixes most of the issues of kmyacc with PHP 2011-08-14 14:52:24 +02:00
nikic
e0fe21287d Add specialized constructors for all expression nodes apart from lambda 2011-08-11 10:25:51 +02:00
nikic
f412b3915f Rename cast nodes and give them a common Expr_Cast parent (with specialized constructor) 2011-08-11 09:20:25 +02:00
nikic
284f32f475 Add specialized constructor for binary operators 2011-08-11 08:57:13 +02:00
nikic
22b507e9f4 Rename Bin[ary] to Bitwise (which is the correct name) 2011-08-11 08:42:28 +02:00
nikic
344913d44b Add specialized constructors for assignment operations 2011-08-11 08:35:10 +02:00
nikic
d9a23f2dc7 Add specialized constructors for Expr_Array*, make Variable an Expr 2011-08-11 08:13:01 +02:00
nikic
690b505a7a Make array_pair an extra grammar rule, for cleaner grammar and correct $line 2011-08-10 11:24:20 +02:00
nikic
f67ff50550 Give all Scalar nodes and the special nodes Name and Variable specialized constructors for easier use 2011-08-09 15:07:05 +02:00
nikic
ae46aeda7f Don't save whether a string is binary anymore. The binary flag isn't going to be used in the next couple of years, so it doesn't make sense to unnecessarily complicate things. 2011-08-09 14:19:44 +02:00
nikic
197b8e6967 Don't save quote type for strings anymore (as it is irrelevant for script execution) 2011-08-09 14:12:15 +02:00
nikic
664be2871a Make the resolve type of a name a normal subnode (type) 2011-08-04 13:59:56 +02:00
nikic
9c53838b1f Properly handle fully qualified and relative names 2011-08-04 13:53:23 +02:00
nikic
12e61cb3ea Allow use of normal dollar variables in .pre.phpy (by transforming them to #hash variables for kmyacc) 2011-08-04 12:16:31 +02:00
nikic
dd2404b57a Rename "ns" to "name" in Stmt_UseUse 2011-08-04 12:01:03 +02:00
nikic
78f15cd50b Associate last encountered doccomment with next node 2011-07-03 16:35:45 +02:00
nikic
033f5c81a0 Add missing #line hint for strings 2011-06-28 14:16:10 +02:00