/** \file tokenizer.h * definitions of input output classes that read and write from string. */ #ifndef __tokenizer_h__ #define __tokenizer_h__ #include "yacasbase.h" #include "lispstring.h" #include "lispio.h" #include "lisphash.h" class LispTokenizer : public YacasBase { public: LispTokenizer() : iToken() {} /// NextToken returns a string representing the next token, /// or an empty list. virtual LispString * NextToken(LispInput& aInput, LispHashTable& aHashTable); virtual ~LispTokenizer(){} protected: LispString iToken; //Can be used as a token container. }; class CommonLispTokenizer : public LispTokenizer { public: virtual LispString * NextToken(LispInput& aInput, LispHashTable& aHashTable); }; // utility functions LispBoolean IsDigit(LispChar c); LispBoolean IsAlpha(LispChar c); LispBoolean IsAlNum(LispChar c); LispBoolean IsSymbolic(LispChar c); #endif