00001 package plp.imperative1.declaration; 00002 00003 import plp.imperative1.memory.AmbienteExecucaoImperativa; 00004 import plp.imperative1.memory.AmbienteCompilacaoImperativa; 00005 import plp.imperative1.memory.EntradaVaziaException; 00006 import plp.expressions2.memory.IdentificadorJaDeclaradoException; 00007 import plp.expressions2.memory.IdentificadorNaoDeclaradoException; 00008 00009 public abstract class Declaracao<T, E> { 00010 00011 protected T parametro1; 00012 protected E parametro2; 00013 00014 public Declaracao(T declaracao1, E declaracao2) { 00015 this.parametro1 = declaracao1; 00016 this.parametro2 = declaracao2; 00017 } 00018 00019 public abstract AmbienteExecucaoImperativa elabora(AmbienteExecucaoImperativa ambiente) 00020 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, 00021 EntradaVaziaException; 00022 00023 public abstract boolean checaTipo(AmbienteCompilacaoImperativa ambiente) 00024 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, 00025 EntradaVaziaException; 00026 }