Class DOTGenerator


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

      Fields 
      Modifier and Type Field Description
      protected java.lang.String arrowhead  
      protected Grammar grammar  
      protected java.util.Set<java.lang.Object> markedStates
      To prevent infinite recursion when walking state machines, record which states we've visited.
      protected java.lang.String rankdir  
      static org.stringtemplate.v4.STGroup stlib
      Library of output templates; use <attrname> format
      static boolean STRIP_NONREDUCED_STATES  
    • Constructor Summary

      Constructors 
      Constructor Description
      DOTGenerator​(Grammar grammar)
      This aspect is associated with a grammar
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getArrowheadType()  
      java.lang.String getDOT​(State startState)
      Return a String containing a DOT description that, when displayed, will show the incoming state machine visually.
      protected java.lang.String getEdgeLabel​(Transition edge)
      Fix edge strings so they print out in DOT properly; generate any gated predicates on edge too.
      java.lang.String getRankdir()  
      protected java.lang.String getStateLabel​(State s)  
      void setArrowheadType​(java.lang.String arrowhead)  
      void setRankdir​(java.lang.String rankdir)  
      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.
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • STRIP_NONREDUCED_STATES

        public static final boolean STRIP_NONREDUCED_STATES
        See Also:
        Constant Field Values
      • arrowhead

        protected java.lang.String arrowhead
      • rankdir

        protected java.lang.String rankdir
      • stlib

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

        protected java.util.Set<java.lang.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 Detail

      • DOTGenerator

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

      • getDOT

        public java.lang.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 java.lang.String getEdgeLabel​(Transition edge)
        Fix edge strings so they print out in DOT properly; generate any gated predicates on edge too.
      • getStateLabel

        protected java.lang.String getStateLabel​(State s)
      • getArrowheadType

        public java.lang.String getArrowheadType()
      • setArrowheadType

        public void setArrowheadType​(java.lang.String arrowhead)
      • getRankdir

        public java.lang.String getRankdir()
      • setRankdir

        public void setRankdir​(java.lang.String rankdir)