teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

smarty-lexer

2015/05/17 06:30

投稿

ngyuki
ngyuki

スコア4516

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

2015/05/17 06:30

投稿

ngyuki
ngyuki

スコア4516

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

リンクが死んでた

2015/05/17 06:24

投稿

ngyuki
ngyuki

スコア4516

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  PHP で実装された PHP のパーサなら下記が有名です。うろ覚えですが AST が得られたと思います。
2
2
 
3
- - [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser "nikic/PHP-Parser")
3
+ - [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser)
4
4
 
5
5
  字句解析だけしか必要ないなら Tokenizer でも良いと思います。これは単にトークンのリストが得られたと思います。
6
6
 

2

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

2015/05/17 06:15

投稿

ngyuki
ngyuki

スコア4516

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

2015/05/17 06:15

投稿

ngyuki
ngyuki

スコア4516

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