LispSymbol.h compiles.
[lispp.git] / Scanner.h
blobef3d3ac4f33a8ea643e9bb34e8c25dcb9f379efa
1 #ifndef SCANNER_H_INCLUDED
2 #define SCANNER_H_INCLUDED
4 class Scanner
6 public:
8 enum eSymbolType
10 eBrace = 0,
11 eString,
12 eNumber,
13 eSymbol,
14 eSpecial,
15 eSpace,
16 eEndOfFile
20 enum eScannerState
22 eInWhiteSpace = 0,
23 eInString,
24 eInNumeric,
25 eInSymbol,
26 eInOpenBrace,
27 eInCloseBrace,
28 eFinished
31 Scanner(std::istream& in);
33 std::string next(eSymbolType& kind);
37 private:
38 bool isSpecial(std::string symbol);
40 static const char *specials[];
42 std::istream& in_;
43 eScannerState state_;
46 #endif