AST operators
Code gen templates for operators; assume root=nil. This is v3 compatible.
grammar fragment |
code |
|---|---|
A |
|
A B |
|
A^ B |
|
A B^ |
|
A B^ C |
|
A B^ C^ D |
|
a^ b |
|
Rewrites
Code gen templates for rewrite rules; assume root=_adaptor.nil(), kids is _adaptor.createChildList(). assume we can't distinguish statically single vs multi-valued elements from left of -> for now.
grammar fragment |
code |
|---|---|
A -> A |
|
A -> A A |
|
A+ -> A A |
|
A B -> ^(A B) |
|
A+ -> A* |
|
B A+ -> ^(B A*) |
|
A+ -> ^(B A)* |
|
Labels: