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 }