nikic
a048112e2c
Add a filesystem template loader.
...
The template loaders loads templates from a base directory (and can
optionally use a suffix). For example
$templateLoader = new PHPParser_TemplateLoader(
$parser, './templates', '.php'
);
// loads ./templates/TestTemplate.php
$templateLoader->load('TestTemplate');
Again the implementation is not optimal. The loader probably shouldn't
intantiate the Template itself, but instead should accept a
TemplateFactory. This seemed like overkill to me, so I left it out.
2012-04-03 23:52:00 +02:00
nikic
19c1f80589
Add simple templating support.
...
Templates use __name__ placeholders. A variant of the placeholder with a
capitalized first latter can be accessed using __Name__ (this is useful
for camel case identifiers, e.g. get__Name__).
Currently the implemention is not particularly clean, because the Template
instantiates a Lexer itself. Fixing this requires a major refactoring of
the lexer/parser interface.
2012-04-03 22:47:41 +02:00
Johannes
2ccae143d0
added implementations for the new interface methods
2012-04-03 13:07:10 -05:00
Johannes
e932711fa4
added some methods for storing metadata to the interface
2012-04-03 13:04:24 -05:00
nikic
77d58a4151
Fix NameResolver tests on PHP 5.2
2012-03-17 13:52:17 +01:00
nikic
c24a697c2d
Add Travis config file
2012-03-17 13:18:16 +01:00
nikic
72586235c4
Add usage example for builders to docs
2012-03-11 09:23:32 +01:00
nikic
b8b68a969c
Add function builder
2012-03-11 09:02:52 +01:00
nikic
9e5c95b6aa
Add ability to specify arrays as default values
2012-03-11 08:53:04 +01:00
nikic
3ce3542032
Add property builder
2012-03-11 08:42:13 +01:00
nikic
4c8351fa86
Add parameter builder
2012-03-11 00:06:02 +01:00
nikic
48f0322aef
Add method builder
2012-03-10 23:25:26 +01:00
nikic
88e1f2eeab
Add class builder
2012-03-10 17:56:56 +01:00
nikic
e856fe3944
Remove obsolete test skip
...
The test no longer depends on PHP 5.4, so don't skip it.
2012-03-10 10:55:34 +01:00
nikic
d7407af87d
Remove unused variable
2012-03-03 17:01:28 +01:00
nikic
2ed6cac7c1
Don't traverse nodes merged by another visitor
...
If a NodeVisitor returns an array of nodes to merge these will no longer be traversed by all other visitors. That "feature" turned out to be a real pain in the ass on some occasions ;)
2012-03-03 16:50:45 +01:00
nikic
6657ac4b76
Clarify that parser is autogenerated
2012-03-02 00:43:34 +01:00
nikic
0c0515c7de
Replace /e modifier with callback + eval()
...
As this also fixes the overescaping issue, some stuff in the tests can be written more nicely now.
2012-03-02 00:28:46 +01:00
nikic
48f089a111
Tweak readme
2012-02-21 19:58:11 +01:00
nikic
517562e05a
Add a little into to readme
2012-02-21 19:52:49 +01:00
nikic
168982a912
Don't replace \ followed by { with NS_SEPARATOR
2012-02-21 19:28:40 +01:00
nikic
b0883f2bb8
Update docs to mention emulative lexer
2012-02-21 19:02:04 +01:00
nikic
10ba9f8dda
Add some tests for the emulative lexer
2012-02-21 18:45:07 +01:00
nikic
d98a65086b
Minor refactor and comments for emlative lexer
...
The emulative lexer is a single dirty hack so it needs a few more comments :)
2012-02-21 17:56:07 +01:00
nikic
608cfbba4e
Factor out error handling out of Lexer construcor
...
Makes the constructor more concise and puts the strange error handling stuff in separate methods
2012-02-21 17:00:49 +01:00
nikic
584f6b0ab3
Make old testrunner PHP 5.2 compatible
2012-01-15 16:55:01 +01:00
nikic
cf3117d82d
Fix parsing of integers that overflow into floats
...
Integers in hex/oct/bin notation that overflowed into floats were parsed incorrectly.
2012-01-15 16:54:48 +01:00
nikic
faf0351bab
Fix emulation of binary floats
...
All binary literals were lexed as integers, even if they were floats
2012-01-15 16:37:18 +01:00
nikic
bf252b2813
Fix NOWDOC emulation
...
Strings where the NOWDOC label appeared at the beginning of a line, but not followed by a newline were not correctly recognized.
2012-01-15 14:37:53 +01:00
nikic
6bec127e14
Merge pull request #9 from schmittjoh/composer
...
adds composer.json
2012-01-05 03:14:35 -08:00
Johannes M. Schmitt
71822866aa
adds composer.json
2012-01-05 10:46:10 +01:00
nikic
c5c7aa5125
Add initial version of an emulative lexer
...
The emulative lexer allows lexing of PHP 5.4 on PHP 5.3 and PHP 5.2.
2011-12-18 17:03:11 +01:00
nikic
94d4c30a72
Fully Cover and fix NameResolver
...
Previously type hints were not resolved due to a typo. Also trait uses were not resolved.
2011-12-10 12:11:53 +01:00
nikic
df691065a6
Fix __halt_compiler() usage in namespace
...
This fixes the only left bug that was reported by parsing the PHP testsuite :)
2011-12-07 18:36:38 +01:00
nikic
8bdb478785
Cover Parser.php as much as possible
2011-12-07 18:17:05 +01:00
nikic
80065965d3
[5.4] Add new \e escape sequence (0x1B/27)
2011-12-04 17:35:30 +01:00
nikic
1449cc2092
Disallow array deref using alternative syntax
...
f(){0} and a::b(){0} aren't allowed anymore (in compliance with PHP).
$a->b(){0} support stays for now (for technical reason).
2011-12-04 17:07:17 +01:00
nikic
fa5f9e0740
Formatting fix
2011-12-04 17:03:01 +01:00
nikic
db3181aff1
More test coverage and doc string parsing fixes
...
The parser didn't account for the additional newline after the content of doc strings, which is left there by the tokenizer for some reason. Additoinally esacape sequences were parsed in nowdoc strings.
Additionally this contains some minor changes to the grammar: Some _list nonterminals were refactored to have the possible single elements in a reparate rule and only assemble those single elements. (This reduces duplication and gives better assignment of line number context.)
2011-12-04 16:52:43 +01:00
nikic
c3df371998
Cover, fix and cleanup XML unserializer
2011-12-03 15:15:20 +01:00
nikic
b49c55c9e5
Cover NodeTraverser and bugs it found
...
a) ->traverseNode() now operates on a clone of the node, otherwise the original node will be modified too
b) before nodes were passed to the following visitor unchanged, even though they were already changed in the tree
2011-12-02 17:52:03 +01:00
nikic
8c2bf0373c
Some more test improvements (+ fixes)
2011-11-27 21:50:19 +01:00
nikic
3a4cc1a0f0
Do not distribute debug parser anymore
...
The debug parser (and the debug y.output) can be still built using rebuildParser.php?debug.
2011-11-27 21:48:34 +01:00
nikic
b1745ca280
Merge pull request #7 from francisbesset/fixed_tests
...
Skipped test with trait on PHP Version < 5.4.0RC1
2011-11-27 12:47:26 -08:00
Francis Besset
efbf49814e
Launch test with trait only with PHP 5.4
2011-11-27 21:28:08 +01:00
nikic
6ef6e1dab3
Cover errors (and fix errors for namespace names)
2011-11-27 12:58:20 +01:00
nikic
80d090ea14
Fix __halt_compiler with newline after closing tag
...
The newline after the closing tag is now not returned as part of the remaining text (PHP eats one newline after ?>).
2011-11-27 11:21:06 +01:00
nikic
21dc9b32f4
Add test coverage for all nodes
2011-11-27 11:20:35 +01:00
nikic
03a0449b1a
Add tests for other scalar types
2011-11-26 17:10:18 +01:00
nikic
933bebb9b8
Fix parsing of special int syntaxes
...
Also add the means to test code parsing.
2011-11-26 16:09:39 +01:00