| OLD | NEW | 
 | (Empty) | 
|   1  |  | 
|   2 /* |  | 
|   3  * Copyright 2011 Google Inc. |  | 
|   4  * |  | 
|   5  * Use of this source code is governed by a BSD-style license that can be |  | 
|   6  * found in the LICENSE file. |  | 
|   7  */ |  | 
|   8 #ifndef ForthParser_DEFINED |  | 
|   9 #define ForthParser_DEFINED |  | 
|  10  |  | 
|  11 #include "SkTDict.h" |  | 
|  12 //#include "SkString.h" |  | 
|  13  |  | 
|  14 class ForthWord; |  | 
|  15 class FCode; |  | 
|  16  |  | 
|  17 class ForthParser { |  | 
|  18 public: |  | 
|  19     ForthParser(); |  | 
|  20     ~ForthParser(); |  | 
|  21  |  | 
|  22     const char* parse(const char text[], FCode*); |  | 
|  23  |  | 
|  24     void addWord(const char name[], ForthWord* word) { |  | 
|  25         this->add(name, strlen(name), word); |  | 
|  26     } |  | 
|  27  |  | 
|  28     void add(const char name[], size_t len, ForthWord* word) { |  | 
|  29     //    SkString str(name, len); |  | 
|  30     //    SkDebugf("add %s %p\n", str.c_str(), word); |  | 
|  31         SkDEBUGCODE(bool isNewWord = )fDict.set(name, len, word); |  | 
|  32         SkASSERT(isNewWord); |  | 
|  33     } |  | 
|  34  |  | 
|  35     ForthWord* find(const char name[], size_t len) const { |  | 
|  36         ForthWord* word; |  | 
|  37         return fDict.find(name, len, &word) ? word : NULL; |  | 
|  38     } |  | 
|  39  |  | 
|  40 private: |  | 
|  41     void addStdWords(); |  | 
|  42  |  | 
|  43     SkTDict<ForthWord*> fDict; |  | 
|  44 }; |  | 
|  45  |  | 
|  46 #endif |  | 
| OLD | NEW |