Code generation templates

Skip to end of sidebar
Go to start of sidebar
Skip to end of metadata
Go to start of metadata

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: