/* * Copyright 2011 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef ForthParser_DEFINED #define ForthParser_DEFINED #include "SkTDict.h" //#include "SkString.h" class ForthWord; class FCode; class ForthParser { public: ForthParser(); ~ForthParser(); const char* parse(const char text[], FCode*); void addWord(const char name[], ForthWord* word) { this->add(name, strlen(name), word); } void add(const char name[], size_t len, ForthWord* word) { // SkString str(name, len); // SkDebugf("add %s %p\n", str.c_str(), word); SkDEBUGCODE(bool isNewWord = )fDict.set(name, len, word); SkASSERT(isNewWord); } ForthWord* find(const char name[], size_t len) const { ForthWord* word; return fDict.find(name, len, &word) ? word : NULL; } private: void addStdWords(); SkTDict fDict; }; #endif