| File | parenthesize.str |
| Author | unknown |
| Since | unknown |
This module defines a generic strategy for placing parentheses inabstract syntax trees based on priority and associativity declarations.
Reference
Eelco Visser. Syntax Definition for Language Prototyping. PhD Thesis,University of Amsterdam, 1997.
Typical usage: (from module Tiger-Ensugar in the tiger/tiger-frontpackage)
TigerParenthesize =!Seq([<id>])
tiger-parenthesize =parenthesize(TigerParenthesize, tiger-priorities)
tiger-priorities =![(None, ["Uminus","FieldVar","Subscript"]),(Some("left"), ["Power"]),(Some("left"), ["Times","Divide"]),(Some("left"), ["Plus","Minus"]),(Some("non-assoc"), ["CPlus","CMinus","Eq","Neq","Gt","Lt","Geq","Leq"]),(Some("left"), ["And"]),(Some("left"), ["Or"]),(None, ["Array"]),(None, ["Assign"]),(Some("right"), ["If","While","For"])]
| General | |
| Lines of code | 70 |
| Stratego | |
| Module number | 1 (100% documented) |
| Constructor number | 0 |
| Overlay number | 0 |
| Strategy number | 6 (0% documented) |
| Rule number | 6 (0% documented) |
| DynamicRule number | 3 (0% documented) |
Strategy summary |
||
| GenGreaterThan | n/a | parenthesize.str |
| GenLeftAssoc | n/a | parenthesize.str |
| GenRightAssoc | n/a | parenthesize.str |
| init-parenthesation-rules | n/a | parenthesize.str |
| parenthesize(Strategy paren, Strategy prios) | n/a | parenthesize.str |
| parenthesize(Strategy paren) | n/a | parenthesize.str |
Rule summary |
||
| Disambiguate(Strategy paren) | n/a | parenthesize.str |
| Disambiguate(Strategy paren) | n/a | parenthesize.str |
| gen-left | n/a | parenthesize.str |
| gen-non-assoc | n/a | parenthesize.str |
| gen-none | n/a | parenthesize.str |
| gen-right | n/a | parenthesize.str |