00001 package plp.expressions2.expression; 00002 00003 import plp.expressions1.util.Tipo; 00004 import plp.expressions1.util.TipoPrimitivo; 00005 import plp.expressions2.memory.AmbienteCompilacao; 00006 import plp.expressions2.memory.AmbienteExecucao; 00007 import plp.expressions2.memory.VariavelJaDeclaradaException; 00008 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00009 00013 public class ExpLength extends ExpUnaria { 00014 00022 public ExpLength(Expressao exp) { 00023 super(exp, "length"); 00024 } 00025 00036 public Valor avaliar(AmbienteExecucao amb) throws VariavelJaDeclaradaException, 00037 VariavelNaoDeclaradaException { 00038 return new ValorInteiro (((ValorString)getExp().avaliar(amb)).valor().length()); 00039 } 00040 00052 protected boolean checaTipoElementoTerminal(AmbienteCompilacao amb) throws VariavelJaDeclaradaException, 00053 VariavelNaoDeclaradaException { 00054 return (getExp().getTipo(amb).eString()); 00055 } 00056 00063 public Tipo getTipo(AmbienteCompilacao amb) { 00064 return TipoPrimitivo.INTEIRO; 00065 } 00066 }
1.5.8