Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1.  
  2. #ifndef __standard_h__
  3. #define __standard_h__
  4.  
  5. #include "yacasbase.h"
  6. #include "lispobject.h"
  7. #include "lispenvironment.h"
  8. #include "lisphash.h"
  9. #include "lispatom.h"
  10. #include "numbers.h"
  11.  
  12. // Prototypes
  13. class LispHashTable;
  14.  
  15. LispBoolean InternalIsList(LispPtr& aPtr);
  16. LispBoolean InternalIsString(LispString * aOriginal);
  17. void InternalUnstringify(LispString& aResult, LispString * aOriginal);
  18. void InternalStringify(LispString& aResult, LispString * aOriginal);
  19. void InternalIntToAscii(LispChar * aTrg,LispInt aInt);
  20. LispInt InternalAsciiToInt(LispString * aString);
  21. LispBoolean IsNumber(const LispChar * ptr,LispBoolean aAllowFloat);
  22.  
  23. void InternalNth(LispPtr& aResult, LispPtr& aArg, LispInt n);
  24. void InternalTail(LispPtr& aResult, LispPtr& aArg);
  25. void InternalAssociate(LispPtr& aResult, LispPtr& aKey,
  26.                       LispPtr& aAssociationList);
  27.  
  28. void InternalReverseList(LispPtr& aResult, LispPtr& aOriginal);
  29. void InternalFlatCopy(LispPtr& aResult, LispPtr& aOriginal);
  30. LispInt InternalListLength(LispPtr& aOriginal);
  31.  
  32. LispBoolean InternalEquals(LispEnvironment& aEnvironment,
  33.                            LispPtr& aExpression1,
  34.                            LispPtr& aExpression2);
  35.  
  36.  
  37. inline LispPtr& Argument(LispPtr& cur, LispInt n);
  38.  
  39. inline void InternalTrue(LispEnvironment& aEnvironment, LispPtr& aResult);
  40. inline void InternalFalse(LispEnvironment& aEnvironment, LispPtr& aResult);
  41. inline void InternalBoolean(LispEnvironment& aEnvironment, LispPtr& aResult,
  42.                             LispBoolean aValue);
  43. inline LispBoolean IsTrue(LispEnvironment& aEnvironment, LispPtr& aExpression);
  44. inline LispBoolean IsFalse(LispEnvironment& aEnvironment, LispPtr& aExpression);
  45. inline void InternalNot(LispPtr& aResult, LispEnvironment& aEnvironment, LispPtr& aExpression);
  46.  
  47. void DoInternalLoad(LispEnvironment& aEnvironment,LispInput* aInput);
  48. void InternalLoad(LispEnvironment& aEnvironment,LispString * aFileName);
  49. void InternalUse(LispEnvironment& aEnvironment,LispString * aFileName);
  50. void InternalApplyString(LispEnvironment& aEnvironment, LispPtr& aResult,
  51.                          LispString * aOperator,LispPtr& aArgs);
  52. void InternalApplyPure(LispPtr& oper,LispPtr& args2,LispPtr& aResult,LispEnvironment& aEnvironment);
  53.  
  54. void InternalEvalString(LispEnvironment& aEnvironment, LispPtr& aResult,
  55.                         LispChar * aString);
  56.  
  57. #define ATOML(_s) LispAtom::New(aEnvironment,_s)
  58. #define LIST(_c) LispSubList::New(_c)
  59. class LispObjectAdder : public YacasBase
  60. {
  61. public:
  62.     LispObjectAdder(LispObject* aPtr)
  63.         : iPtr(aPtr) {};
  64.    LispObject* iPtr;
  65. };
  66. #define LA(_o) LispObjectAdder(_o)
  67.  
  68. LispObject* operator+(const LispObjectAdder& left, const LispObjectAdder& right);
  69.  
  70. #define PARSE(_r,_s) ParseExpression(_r,_s,aEnvironment)
  71. void ParseExpression(LispPtr& aResult,LispChar * aString,LispEnvironment& aEnvironment);
  72.  
  73. void ReturnUnEvaluated(LispPtr& aResult,LispPtr& aArguments,
  74.                        LispEnvironment& aEnvironment);
  75.  
  76. /** PrintExpression : print an expression into a string,
  77.  limiting it to a maximum number of characters. If aMaxChars
  78.  is less than zero, the result is not truncated.
  79.  */
  80. void PrintExpression(LispString& aResult, LispPtr& aExpression,
  81.                      LispEnvironment& aEnvironment,
  82.                      LispInt aMaxChars);
  83.  
  84. LispString * SymbolName(LispEnvironment& aEnvironment,LispChar * aSymbol);
  85.  
  86.  
  87.  
  88.  
  89. #include "standard.inl"
  90.  
  91.  
  92. #endif
  93.