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
7bd3980a2e
Remove node analysis from analyze.php and fix some other things about it
2011-08-14 15:52:57 +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
7d43c02c06
Fix analyzer.php
2011-08-09 13:26:04 +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
afd6c70b77
Merge preprocessor.php into rebuildParser.php. Don't distribute the temporary preprocessed grammar anymore
2011-08-04 12:46:48 +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
70306000e8
In rebuildParser.php output stderr too (so there actually is output)
2011-08-04 11:47:29 +02:00
nikic
afcf7777bf
Don't generate y.output file anymore as it really bloats diffs
2011-08-04 11:12:19 +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
nikic
f756d82cd4
Fetch start line instead of end line
2011-06-28 14:11:12 +02:00
nikic
b153bfa3a8
Remove reentrant error handling code (we don't need that currently)
2011-06-27 19:14:37 +02:00
nikic
dd13cd4fe9
Add README for grammar folder
2011-06-26 20:56:35 +02:00
nikic
fb45e8a30c
Put statements belonging to a namespace statement into its stmt property, add some further checks against invalid namespace usage and fix the pretty printer to print global namespaces
2011-06-26 18:41:01 +02:00
nikic
dfa59332ed
Move halt_compiler handling from parser to grammar
2011-06-12 17:19:12 +02:00
nikic
f11f228074
Associate some line information with nodes (currently the line the node ends in, as the starting line is harder to fetch)
2011-06-12 17:12:47 +02:00
nikic
363a0771da
fix incorrect usages of old ParseErrorException
2011-06-06 18:59:14 +02:00
nikic
b24d0e2dc4
Rename PHPParser_ParseErrorException to PHPParser_Error
2011-06-05 18:52:41 +02:00
nikic
620525a5da
Prefix all classes with PHPParser_
2011-06-05 18:40:04 +02:00
nikic
4006e55951
Fix typo Expr_ErrorSupress -> Expr_ErrorSuppress
2011-06-04 15:37:13 +02:00
nikic
8294ceb754
Fix pretty printing issues caused by Expr_InstanceOf vs Expr_Instanceof
2011-06-04 15:25:54 +02:00
nikic
bf00dff2cf
Make halt_compiler() work
2011-06-03 22:04:05 +02:00
nikic
d82bbb3bea
Throw ParseErrorException on error instead of error callback
...
As long as the parser isn't reentrant having an error callback doesn't really make sense and only complicates everything.
2011-06-03 17:44:23 +02:00
nikic
74f05f5459
Fix wrong node signature in grammar
2011-06-02 22:57:00 +02:00
nikic
352cfde568
Slightly simplify grammar
2011-06-02 17:01:22 +02:00
nikic
1c4d47613c
Fix parsing of static methods with dynamic method name
2011-06-02 16:29:28 +02:00
nikic
2fb0206deb
Add missing rules to parser to allow a::${b}
2011-05-31 17:28:22 +02:00
nikic
4f3260f670
Add doccomments and slightly change some APIs
2011-05-31 16:33:11 +02:00
nikic
68a25ce7c1
Fix typo in grammar
2011-05-30 22:15:17 +02:00
nikic
9aed651d51
Remove Stmt_Noop
2011-05-30 17:39:20 +02:00
nikic
9c8651120f
Fix wrong Node signature for String_Scalar created by T_STRING_VARNAME
2011-05-29 21:09:37 +02:00
nikic
df82e3db45
Replace yydebug flag with separate debug parser "ParserDebug"
...
Debugging shouldn't be necessairy normally, but carries a 25% performance overhead.
2011-05-29 20:51:15 +02:00
nikic
15e268cd8b
Parse escape sequences in encapsed strings too
2011-05-29 20:06:53 +02:00
nikic
685171ddc5
Fix incorrect Node creation for dynamic static property access
2011-05-29 12:24:27 +02:00
nikic
355ddd8d75
Parse strings more correctly, keep information on whether it was a single or double quoted string
2011-05-28 00:21:12 +02:00
nikic
d4f3cdd695
Simplify grammar thus reducing shift/reduce conflicts
2011-05-27 21:51:27 +02:00
nikic
ae3603d126
Fix parsing issue with array accesses on object accesses ($x->y[z])
2011-05-27 21:15:38 +02:00
nikic
eeb63065be
a) changes node structure (Stmt_, Expr_, ...) b) fixes parsing of x::$y[z]
...
Sorry for that one large commit. Won't happen again.
2011-05-27 18:42:36 +02:00
nikic
e00b460125
Slightly optimize the parser and improve the API
2011-04-29 21:06:11 +02:00
nikic
aea5e43349
Initial commit
2011-04-18 19:02:30 +02:00