001         package com.croftsoft.apps.compiler.mini.node;
002    
003         import java.util.*;
004    
005         /*********************************************************************
006         * Interface for parse tree objects for the Mini programming language.
007         *
008         * <B>Reference:</B>
009         *
010         * <P>
011         *
012         * "JLex: A Lexical Analyzer Generator for Java"<BR>
013         * <A HREF="http://www.cs.princeton.edu/~appel/modern/java/JLex/">
014         * http://www.cs.princeton.edu/~appel/modern/java/JLex/</A>
015         *
016         * @author
017         *   <A HREF="http://www.alumni.caltech.edu/~croft/">David W. Croft</A>
018         * @version
019         *   1999-04-25
020         *********************************************************************/
021    
022         public interface  MiniNode
023         //////////////////////////////////////////////////////////////////////
024         //////////////////////////////////////////////////////////////////////
025         {
026    
027         /*********************************************************************
028         * Uses the Visitor design pattern to generate code.
029         *
030         * <PRE>
031         * miniNodeCodeVisitor.generate<MiniNode-type> ( this );
032         * </PRE>
033         *********************************************************************/
034         public void  generate ( MiniNodeCodeVisitor  miniNodeCodeVisitor );
035    
036         public void  checkSemantics ( Stack  parentMiniNodeStack )
037           throws SemanticErrorException;
038    
039         //////////////////////////////////////////////////////////////////////
040         //////////////////////////////////////////////////////////////////////
041         }