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 }