示例#1
0
 public static String GetValueElement(String elem, Vector memory) {
   Symbol var;
   // ------------------------- sinal -  -------------
   if (elem.charAt(0) == '-') {
     // --operador -
     if (elem.length() == 1) return elem;
     // ---resto
     String resto = elem.substring(1);
     var = Variable.getVariable(resto, memory);
     // valor negativo
     if (var == null) return elem + " ";
     // se for uma variavel vai selecionar o valor
     else if (var instanceof SymbolArray) {
       SymbolArray a = (SymbolArray) var;
       a.SetIndex(elem, memory);
       return " ( " + a.getValue() + " * -1 ) ";
     } else return " ( " + var.getValue() + " * -1 ) ";
   }
   // -------------------------------------------------------------
   //  variavel sem valor negativo
   // ------------------------------------------------------------
   var = Variable.getVariable(elem, memory);
   if (var == null) return elem + " ";
   else if (var instanceof SymbolArray) {
     SymbolArray a = (SymbolArray) var;
     a.SetIndex(elem, memory);
     return a.getValue() + " ";
   } else return var.getValue() + " ";
 }
示例#2
0
  public static String ReplaceVariablesToDefaults(String expr, Vector memory, int tryUnknow) {

    StringBuffer newExpr = new StringBuffer();
    // iterador de elementos do codigo
    IteratorExpression tok = new IteratorExpression(expr);
    Symbol var;
    String elem;
    while (tok.hasMoreElements()) {
      elem = tok.current();
      tok.next();
      var = Variable.getVariable(elem, memory);
      // se for uma variavel vai selecionar o valor
      if (var != null) {
        if (var.getType() != var.DESCONHECIDO) newExpr.append(var.getDefaultValue() + " ");
        else newExpr.append(Symbol.getDefaultValue(tryUnknow) + " ");
      }
      // senao mete o elmento
      else newExpr.append(elem + " ");
    }
    return newExpr.toString().trim();
  }