blob: 9c939f83dbf2eecc86d0144018a2b4eb453de4c5 [file] [log] [blame]
reed@android.com289e4fc2009-08-31 18:04:51 +00001#ifndef ForthParser_DEFINED
2#define ForthParser_DEFINED
3
4#include "SkTDict.h"
5
6class ForthWord;
7class FCode;
8
9class ForthParser {
10public:
11 ForthParser();
12 ~ForthParser();
13
14 const char* parse(const char text[], FCode*);
15
16 void addWord(const char name[], ForthWord* word) {
17 this->add(name, strlen(name), word);
18 }
19
20 void add(const char name[], size_t len, ForthWord* word) {
21 (void)fDict.set(name, len, word);
22 }
23
24 ForthWord* find(const char name[], size_t len) const {
25 ForthWord* word;
26 return fDict.find(name, len, &word) ? word : NULL;
27 }
28
29private:
30 void addStdWords();
31
32 SkTDict<ForthWord*> fDict;
33};
34
35#endif