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-27
015 *********************************************************************/
016
017 public class IntegerDeclarationMiniNode extends AbstractMiniNode
018 implements DeclarationMiniNode
019 //////////////////////////////////////////////////////////////////////
020 //////////////////////////////////////////////////////////////////////
021 {
022
023 protected NameSequenceMiniNode nameSequenceMiniNode;
024
025 //////////////////////////////////////////////////////////////////////
026 //////////////////////////////////////////////////////////////////////
027
028 public IntegerDeclarationMiniNode (
029 NameSequenceMiniNode nameSequenceMiniNode )
030 //////////////////////////////////////////////////////////////////////
031 {
032 if ( nameSequenceMiniNode == null )
033 {
034 throw new IllegalArgumentException (
035 "null nameSequenceMiniNode" );
036 }
037
038 this.nameSequenceMiniNode = nameSequenceMiniNode;
039 }
040
041 //////////////////////////////////////////////////////////////////////
042 //////////////////////////////////////////////////////////////////////
043
044 public NameSequenceMiniNode getNameSequenceMiniNode ( )
045 //////////////////////////////////////////////////////////////////////
046 {
047 return nameSequenceMiniNode;
048 }
049
050 //////////////////////////////////////////////////////////////////////
051 // MiniNode interface methods
052 //////////////////////////////////////////////////////////////////////
053
054 public void generate ( MiniNodeCodeVisitor miniNodeCodeVisitor )
055 //////////////////////////////////////////////////////////////////////
056 {
057 miniNodeCodeVisitor.generateIntegerDeclaration ( this );
058 }
059
060 public void checkSemantics ( Stack parentMiniNodeStack )
061 throws SemanticErrorException
062 //////////////////////////////////////////////////////////////////////
063 {
064 parentMiniNodeStack.push ( this );
065
066 nameSequenceMiniNode.checkSemantics ( parentMiniNodeStack );
067
068 parentMiniNodeStack.pop ( );
069 }
070
071 //////////////////////////////////////////////////////////////////////
072 //////////////////////////////////////////////////////////////////////
073 }