|
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
|
Program
Transformer
|
|
 |
|
|
|
|
|
|
1. |
パターンを登録
|
|
|
|
w |
register_pattern(Expression
src, Expression dst)
|
|
|
w |
register_pattern(Statement
src, Statement dst)
|
|
|
|
2. |
指定されたノードをルートノードとする部分木に対して、
|
|
|
深さ優先探索で登録されたパターンを検索、置換
|
|
|
|
w |
substitution(Expression
root)
|
|
|
w |
substitution(Statement
root)
|
|
|
|
これらのルーチンは低レベル、かつパターンを生
|
|
 |
|
|
|
|
|
|
成する手続きが煩雑
|
|
|
|
より高度な記述からパターンを生成するAPIが必要
|
 |
|
|
|
|