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 }