回答編集履歴
5
smarty-lexer
answer
CHANGED
@@ -15,4 +15,8 @@
|
|
15
15
|
- [PHP_LexerGenerator](http://pear.php.net/package/PHP_LexerGenerator)
|
16
16
|
- [PHP_ParserGenerator](http://pear.php.net/package/PHP_ParserGenerator)
|
17
17
|
|
18
|
+
と思っていたんですが、いつの間にか fork?していたようでした。
|
19
|
+
|
20
|
+
- [smarty-php/smarty-lexer](https://github.com/smarty-php/smarty-lexer)
|
21
|
+
|
18
22
|
**独自形式のテキストファイル** のパーサに使えたりするかもしれません。
|
4
LexerGenerator と ParserGenerator
answer
CHANGED
@@ -6,4 +6,13 @@
|
|
6
6
|
|
7
7
|
- [PHP: Tokenizer - Manual](http://php.net/manual/ja/book.tokenizer.php)
|
8
8
|
|
9
|
-
ただ、字句解析だけだと識別子(`T_STRING` トークン)がなんなのか直ちに特定できないので、質問にかかれているような用途だと難しいかもしれません。
|
9
|
+
ただ、字句解析だけだと識別子(`T_STRING` トークン)がなんなのか直ちに特定できないので、質問にかかれているような用途だと難しいかもしれません。
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
参考までに、Smarty3 は下記の字句解析器/構文解析器ジェネレータが使われているそうです。
|
14
|
+
|
15
|
+
- [PHP_LexerGenerator](http://pear.php.net/package/PHP_LexerGenerator)
|
16
|
+
- [PHP_ParserGenerator](http://pear.php.net/package/PHP_ParserGenerator)
|
17
|
+
|
18
|
+
**独自形式のテキストファイル** のパーサに使えたりするかもしれません。
|
3
リンクが死んでた
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
PHP で実装された PHP のパーサなら下記が有名です。うろ覚えですが AST が得られたと思います。
|
2
2
|
|
3
|
-
- [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser
|
3
|
+
- [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser)
|
4
4
|
|
5
5
|
字句解析だけしか必要ないなら Tokenizer でも良いと思います。これは単にトークンのリストが得られたと思います。
|
6
6
|
|
2
追記、AST が得られたと思う
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
PHP で実装された PHP のパーサなら下記が有名です。
|
1
|
+
PHP で実装された PHP のパーサなら下記が有名です。うろ覚えですが AST が得られたと思います。
|
2
2
|
|
3
3
|
- [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser "nikic/PHP-Parser")
|
4
4
|
|
5
|
-
字句解析だけしか必要ないなら Tokenizer でも良いと思います。
|
5
|
+
字句解析だけしか必要ないなら Tokenizer でも良いと思います。これは単にトークンのリストが得られたと思います。
|
6
6
|
|
7
7
|
- [PHP: Tokenizer - Manual](http://php.net/manual/ja/book.tokenizer.php)
|
8
8
|
|
1
追記、多分 Tokenizer だと難しいかも
answer
CHANGED
@@ -4,4 +4,6 @@
|
|
4
4
|
|
5
5
|
字句解析だけしか必要ないなら Tokenizer でも良いと思います。
|
6
6
|
|
7
|
-
- [PHP: Tokenizer - Manual](http://php.net/manual/ja/book.tokenizer.php)
|
7
|
+
- [PHP: Tokenizer - Manual](http://php.net/manual/ja/book.tokenizer.php)
|
8
|
+
|
9
|
+
ただ、字句解析だけだと識別子(`T_STRING` トークン)がなんなのか直ちに特定できないので、質問にかかれているような用途だと難しいかもしれません。
|