コード例 #1
0
ファイル: Expression.java プロジェクト: emansije/portugol
 /**
  * Avalia uma expressão com os valores por defeito das variáveis
  *
  * @param expression expressao
  * @param memory vector de memória
  * @return valor calculado
  */
 public static String EvaluateByDefaults(String expression, Vector memory) {
   try {
     String exp = ReplaceVariablesToDefaults(expression, memory);
     return Calculator.CalulateValue(exp);
   } catch (Exception e) {
     return "ERROR DEFAULT CALCULATE";
   }
 }
コード例 #2
0
ファイル: Expression.java プロジェクト: emansije/portugol
 /**
  * calcula qual o elemento de uma expressão que dá erro
  *
  * @param elem expressão
  * @param memory vector de memória
  * @return o elemento que dá erro
  */
 public static String ErrorExpression(String elem, Vector memory) {
   String exp = ReplaceVariablesToDefaults(elem, memory);
   IteratorExpression it = new IteratorExpression(exp);
   while (it.hasMoreElements()) {
     if (!Calculator.IsCalculus(it.current())) return it.current();
     it.next();
   }
   return "NO ERROR";
 }
コード例 #3
0
ファイル: Expression.java プロジェクト: emansije/portugol
 /**
  * calcula o tipo de dados de retorno de uma expressão (inteiro, real, lógico, . . .)
  *
  * @param elem expressão
  * @param memory vector de memória
  * @return tipo de dados
  */
 public static int TypeExpression(String elem, Vector memory) {
   try {
     String exp = ReplaceVariablesToDefaults(elem, memory);
     String result = Calculator.CalulateValue(exp);
     if (Values.IsBoolean(result)) return Symbol.LOGICO;
     if (Values.IsInteger(result)) return Symbol.INTEIRO;
     if (Values.IsCharacter(result)) return Symbol.CARACTER;
     if (Values.IsString(result)) return Symbol.TEXTO;
     if (Values.IsReal(result)) return Symbol.REAL;
     return Symbol.DESCONHECIDO;
   } catch (Exception e) {
     return Symbol.DESCONHECIDO;
   }
 }
コード例 #4
0
ファイル: Expression.java プロジェクト: emansije/portugol
 /**
  * verifica se uma expressão é aceitavel de acordo com o vectro de memória
  *
  * @param express expressão
  * @param memory vector de memória
  * @return verdadeiro se for uma expressão aceitável
  */
 public static boolean IsExpression(String express, Vector memory) {
   String exp = ReplaceVariablesToDefaults(express, memory);
   IteratorExpression it = new IteratorExpression(exp);
   while (it.hasMoreElements()) {
     String elem = it.current();
     if (!elem.equals("(")
         && !elem.equals(")")
         && !elem.equals(",")
         && !Calculator.IsCalculus(elem)
         && !Values.IsValue(elem)) return false;
     it.next();
   }
   return true;
 }