@Override public SMPLValue<SMPLObject> invoke(final SMPLEvaluator evaluator, final SMPLEnvironment newFrame) throws ASTException { final SMPLValue<SMPLObject> e1 = newFrame.lookUp("e1"); final SMPLValue<SMPLObject> e2 = newFrame.lookUp("e2"); final SMPLObject e1Obj = e1.getInternalValue(evaluator, newFrame); final SMPLObject e2Obj = e2.getInternalValue(evaluator, newFrame); final SMPLBoolean result = new SMPLBoolean(e1Obj.equals(e2Obj)); return new SMPLValue<SMPLObject>(result); }
@Override public SMPLValue<SMPLObject> invoke(final SMPLEvaluator evaluator, final SMPLEnvironment newFrame) throws ASTException { final SMPLObject vectorValue = newFrame.lookUp("vector").getInternalValue(evaluator, newFrame); if (!(vectorValue instanceof SMPLVector)) throw new SMPLException( "Size function requires a vetor as its argument. \n Given: " + vectorValue.toRepr()); else { final SMPLVector vector = (SMPLVector) vectorValue; final SMPLInteger result = new SMPLInteger(new BigInteger(((Integer) vector.size()).toString())); return new SMPLValue<SMPLObject>(result); } }