Exemplo n.º 1
0
LispObject* ShiftRight( LispObject* int1, LispObject* int2, LispEnvironment& aEnvironment,int aPrecision)
{
  BigNumber *number = new BigNumber();
  int bits = InternalAsciiToInt(*int2->String());
  number->ShiftRight(*int1->Number(aPrecision),bits);
  return new LispNumber(number);
}
Exemplo n.º 2
0
void LispCharString(LispEnvironment& aEnvironment, LispInt aStackTop)
{
  const LispString* str = ARGUMENT(1)->String();
  CheckArg(str, 2, aEnvironment, aStackTop);
  CheckArg(IsNumber(str->c_str(), false), 2, aEnvironment, aStackTop);
  LispInt asciiCode = InternalAsciiToInt(*str);

  LispChar ascii[4];
  ascii[0] = '\"';
  ascii[1] = (LispChar)asciiCode;
  ascii[2] = '\"';
  ascii[3] = '\0';
  RESULT = (LispAtom::New(aEnvironment,ascii));
}
Exemplo n.º 3
0
LispObject* LispFactorial(LispObject* int1, LispEnvironment& aEnvironment,int aPrecision)
{
    int nr = InternalAsciiToInt(*int1->String());

    if (nr < 0)
        throw LispErrInvalidArg();

    ANumber fac("1",aPrecision);
    int i;
    for (i=2;i<=nr;i++)
    {
        BaseTimesInt(fac,i, WordBase);
    }
    return FloatToString(fac, aEnvironment);
}
Exemplo n.º 4
0
LispInt GetShortIntegerArgument(LispEnvironment& aEnvironment, LispInt aStackTop, LispInt aArgNr)
{
  const LispString* str = GetIntegerArgument(aEnvironment, aStackTop, aArgNr);
  return InternalAsciiToInt(*str);
}