ambtracker -- display the productions in a parse tree causing ambiguities
Compared to visamb ambtracker
offers an alternative visualization of ambiguities in a parse tree. ambtracker
just displays the productions causing the ambiguity and not how these productions are applied to the actual input. The location (row and column) in the input where an ambiguity is caused is also displayed for easy reference.
Consider the syntax definition that is used to illustrate visamb.
definition module Main exports sorts Exp lexical syntax [\ \t\n] -> LAYOUT context-free syntax "id" -> Exp Exp Exp -> Exp
From this syntax definition an SGLR parse table can be generated:
sdf2table -i Exp.sdf -o Exp.tbl
The ambiguities of the phrase id id id
can be shown with:
echo "id id id" | sglr -2 -p Exp.tbl | ambtracker
the output of this command is:
1 ambiguity cluster: [1/1] at (1:0): Exp Exp -> Exp Exp Exp -> Exp