回答編集履歴

5

smarty-lexer

2015/05/17 06:30

投稿

ngyuki
ngyuki

スコア4514

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

2015/05/17 06:30

投稿

ngyuki
ngyuki

スコア4514

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

リンクが死んでた

2015/05/17 06:24

投稿

ngyuki
ngyuki

スコア4514

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- - [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser "nikic/PHP-Parser")
5
+ - [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser)
6
6
 
7
7
 
8
8
 

2

追記、AST が得られたと思う

2015/05/17 06:15

投稿

ngyuki
ngyuki

スコア4514

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 だと難しいかも

2015/05/17 06:15

投稿

ngyuki
ngyuki

スコア4514

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` トークン)がなんなのか直ちに特定できないので、質問にかかれているような用途だと難しいかもしれません。