Class DOTGenerator

java.lang.Object
org.antlr.tool.DOTGenerator

public class DOTGenerator extends Object
The DOT (part of graphviz) generation aspect.
  • Field Details

    • STRIP_NONREDUCED_STATES

      public static final boolean STRIP_NONREDUCED_STATES
      See Also:
    • arrowhead

      protected String arrowhead
    • rankdir

      protected String rankdir
    • stlib

      public static org.stringtemplate.v4.STGroup stlib
      Library of output templates; use <attrname> format
    • markedStates

      protected Set<Object> markedStates
      To prevent infinite recursion when walking state machines, record which states we've visited. Make a new set every time you start walking in case you reuse this object.
    • grammar

      protected Grammar grammar
  • Constructor Details

    • DOTGenerator

      public DOTGenerator(Grammar grammar)
      This aspect is associated with a grammar
  • Method Details

    • getDOT

      public String getDOT(State startState)
      Return a String containing a DOT description that, when displayed, will show the incoming state machine visually. All nodes reachable from startState will be included.
    • walkCreatingDFADOT

      protected void walkCreatingDFADOT(org.stringtemplate.v4.ST dot, DFAState s)
      Do a depth-first walk of the state machine graph and fill a DOT description template. Keep filling the states and edges attributes.
    • walkRuleNFACreatingDOT

      protected void walkRuleNFACreatingDOT(org.stringtemplate.v4.ST dot, State s)
      Do a depth-first walk of the state machine graph and fill a DOT description template. Keep filling the states and edges attributes. We know this is an NFA for a rule so don't traverse edges to other rules and don't go past rule end state.
    • getEdgeLabel

      protected String getEdgeLabel(Transition edge)
      Fix edge strings so they print out in DOT properly; generate any gated predicates on edge too.
    • getStateLabel

      protected String getStateLabel(State s)
    • getArrowheadType

      public String getArrowheadType()
    • setArrowheadType

      public void setArrowheadType(String arrowhead)
    • getRankdir

      public String getRankdir()
    • setRankdir

      public void setRankdir(String rankdir)