00001 package plp.functional1.declaration; 00002 00003 import plp.expressions1.util.Tipo; 00004 import plp.expressions2.expression.Expressao; 00005 import plp.expressions2.expression.Id; 00006 import plp.expressions2.memory.AmbienteCompilacao; 00007 import plp.expressions2.memory.VariavelJaDeclaradaException; 00008 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00009 00010 public class DecVariavel implements DeclaracaoFuncional { 00011 private Id id; 00012 private Expressao expressao; 00013 00014 public DecVariavel(Id idArg, Expressao expressaoArg) { 00015 id = idArg; 00016 expressao = expressaoArg; 00017 } 00018 00019 public int getAridade() { 00020 return 0; 00021 } 00022 00028 @Override 00029 public String toString() { 00030 return String.format("var %s = %s", id, expressao); 00031 } 00032 00033 public Expressao getExpressao() { 00034 return expressao; 00035 } 00036 00037 public Id getId() { 00038 return id; 00039 } 00040 00056 public Tipo getTipo(AmbienteCompilacao amb) 00057 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException { 00058 return expressao.getTipo(amb); 00059 } 00060 00074 public boolean checaTipo(AmbienteCompilacao ambiente) 00075 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException { 00076 return expressao.checaTipo(ambiente); 00077 } 00078 00079 }
1.5.8