Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: java_cup/lalr_transition.java


1   package java_cup;
2   
3   /** This class represents a transition in an LALR viable prefix recognition 
4    *  machine.  Transitions can be under terminals for non-terminals.  They are
5    *  internally linked together into singly linked lists containing all the 
6    *  transitions out of a single state via the _next field.
7    *
8    * @see     java_cup.lalr_state
9    * @version last updated: 11/25/95
10   * @author  Scott Hudson
11   *
12   */
13  public class lalr_transition {
14  
15    /*-----------------------------------------------------------*/
16    /*--- Constructor(s) ----------------------------------------*/
17    /*-----------------------------------------------------------*/
18  
19    /** Full constructor.
20     * @param on_sym  symbol we are transitioning on.
21     * @param to_st   state we transition to.
22     * @param nxt     next transition in linked list.
23     */
24    public lalr_transition(symbol on_sym, lalr_state to_st, lalr_transition nxt)
25      throws internal_error
26      {
27        /* sanity checks */
28        if (on_sym == null)
29    throw new internal_error("Attempt to create transition on null symbol");
30        if (to_st == null)
31    throw new internal_error("Attempt to create transition to null state");
32  
33        /* initialize */
34        _on_symbol = on_sym;
35        _to_state  = to_st;
36        _next      = nxt;
37      }
38  
39    /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
40  
41    /** Constructor with null next. 
42     * @param on_sym  symbol we are transitioning on.
43     * @param to_st   state we transition to.
44     */
45    public lalr_transition(symbol on_sym, lalr_state to_st) throws internal_error
46      {
47        this(on_sym, to_st, null);
48      }
49  
50    /*-----------------------------------------------------------*/
51    /*--- (Access to) Instance Variables ------------------------*/
52    /*-----------------------------------------------------------*/
53  
54    /** The symbol we make the transition on. */
55    protected symbol _on_symbol;
56  
57    /** The symbol we make the transition on. */
58    public symbol on_symbol() {return _on_symbol;}
59  
60    /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
61  
62    /** The state we transition to. */
63    protected lalr_state _to_state;
64  
65    /** The state we transition to. */
66    public lalr_state to_state() {return _to_state;}
67  
68    /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
69  
70    /** Next transition in linked list of transitions out of a state */
71    protected lalr_transition _next;
72  
73    /** Next transition in linked list of transitions out of a state */
74    public lalr_transition next() {return _next;}
75  
76    /*-----------------------------------------------------------*/
77    /*--- General Methods ---------------------------------------*/
78    /*-----------------------------------------------------------*/
79  
80    /** Convert to a string. */
81    public String toString()
82      {
83        String result;
84  
85        result = "transition on " + on_symbol().name() + " to state [";
86        result += _to_state.index();
87        result += "]";
88  
89        return result;
90      }
91  
92    /*-----------------------------------------------------------*/
93  }