// ** This class was generated with DemFGen (vers:12/06/2009)

package edu.neu.ccs.demeterf.lexer.classes;

import edu.neu.ccs.demeterf.lib.*;
import edu.neu.ccs.demeterf.*;
import edu.neu.ccs.demeterf.demfgen.classes.*;
import edu.neu.ccs.demeterf.demfgen.classes.Package;




/** Representation of Trans */
public class Trans{
    protected final Label l;
    protected final State frm;
    protected final State to;

    /** Construct a(n) Trans Instance */
    public Trans(Label l, State frm, State to){
        this.l = l;
        this.frm = frm;
        this.to = to;
    }
    /** Is the given object Equal to this Trans? */
    public boolean equals(Object o){
        if(!(o instanceof Trans))return false;
        if(o == this)return true;
        Trans oo = (Trans)o;
        return (((Object)l).equals(oo.l))&&(((Object)frm).equals(oo.frm))&&(((Object)to).equals(oo.to));
    }
    /** Parse an instance of Trans from the given String */
    public static Trans parse(String inpt) throws ParseException{
        return new TheParser(new java.io.StringReader(inpt)).parse_Trans();
    }
    /** Parse an instance of Trans from the given Stream */
    public static Trans parse(java.io.InputStream inpt) throws ParseException{
        return new TheParser(inpt).parse_Trans();
    }
    /** Parse an instance of Trans from the given Reader */
    public static Trans parse(java.io.Reader inpt) throws ParseException{
        return new TheParser(inpt).parse_Trans();
    }

    /** Field Class for Trans.l */
    public static class l extends edu.neu.ccs.demeterf.Fields.any{}
    /** Field Class for Trans.frm */
    public static class frm extends edu.neu.ccs.demeterf.Fields.any{}
    /** Field Class for Trans.to */
    public static class to extends edu.neu.ccs.demeterf.Fields.any{}

        public static final Label EPSILON = new Epsilon();
        public boolean isEpsilon(){ return l.isEpsilon(); }
        public Trans(char c, State f, State t){ this(new ChLbl(c),f,t); }

    /** DGP method from Class PrintToString */
    public String toString(){ return edu.neu.ccs.demeterf.lexer.classes.PrintToString.PrintToStringM(this); }
    /** Getter for field Trans.to */
    public State getTo(){ return to; }
    /** Getter for field Trans.frm */
    public State getFrm(){ return frm; }
    /** Getter for field Trans.l */
    public Label getL(){ return l; }

}