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