001 package com.croftsoft.apps.compiler.mini.node;
002
003 import java.util.*;
004
005 /*********************************************************************
006 * Parse tree node for the Mini programming language.
007 *
008 * @see
009 * MiniNode
010 *
011 * @author
012 * <A HREF="http://www.alumni.caltech.edu/~croft/">David W. Croft</A>
013 * @version
014 * 1999-04-25
015 *********************************************************************/
016
017 public class InputStatementMiniNode extends AbstractMiniNode
018 implements StatementMiniNode
019 //////////////////////////////////////////////////////////////////////
020 //////////////////////////////////////////////////////////////////////
021 {
022
023 protected NameSequenceMiniNode nameSequenceMiniNode;
024
025 //////////////////////////////////////////////////////////////////////
026 //////////////////////////////////////////////////////////////////////
027
028 public InputStatementMiniNode (
029 NameSequenceMiniNode nameSequenceMiniNode )
030 //////////////////////////////////////////////////////////////////////
031 {
032 this.nameSequenceMiniNode = nameSequenceMiniNode;
033 }
034
035 //////////////////////////////////////////////////////////////////////
036 //////////////////////////////////////////////////////////////////////
037
038 public NameSequenceMiniNode getNameSequenceMiniNode ( )
039 //////////////////////////////////////////////////////////////////////
040 {
041 return nameSequenceMiniNode;
042 }
043
044 //////////////////////////////////////////////////////////////////////
045 // MiniNode interface methods
046 //////////////////////////////////////////////////////////////////////
047
048 public void generate ( MiniNodeCodeVisitor miniNodeCodeVisitor )
049 //////////////////////////////////////////////////////////////////////
050 {
051 miniNodeCodeVisitor.generateInputStatement ( this );
052 }
053
054 public void checkSemantics ( Stack parentMiniNodeStack )
055 throws SemanticErrorException
056 //////////////////////////////////////////////////////////////////////
057 {
058 parentMiniNodeStack.push ( this );
059
060 nameSequenceMiniNode.checkSemantics ( parentMiniNodeStack );
061
062 parentMiniNodeStack.pop ( );
063 }
064
065 //////////////////////////////////////////////////////////////////////
066 //////////////////////////////////////////////////////////////////////
067 }