Index: forth/Forth.h |
diff --git a/forth/Forth.h b/forth/Forth.h |
deleted file mode 100644 |
index f6df06e1ebeb32fd6ad456c22a3ca48d9057a60d..0000000000000000000000000000000000000000 |
--- a/forth/Forth.h |
+++ /dev/null |
@@ -1,105 +0,0 @@ |
- |
-/* |
- * 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 Forth_DEFINED |
-#define Forth_DEFINED |
- |
-#include "SkTypes.h" |
- |
-class ForthOutput { |
-public: |
- virtual void show(const char output[]) = 0; |
-}; |
- |
-union FloatIntDual { |
- int32_t fInt; |
- float fFloat; |
-}; |
- |
-static inline int32_t f2i_bits(float x) { |
- FloatIntDual d; |
- d.fFloat = x; |
- return d.fInt; |
-} |
- |
-static inline float i2f_bits(int32_t x) { |
- FloatIntDual d; |
- d.fInt = x; |
- return d.fFloat; |
-} |
- |
-class ForthEngine { |
-public: |
- ForthEngine(ForthOutput*); |
- ~ForthEngine(); |
- |
- int depth() const { return fStackStop - fStackCurr; } |
- void clearStack() { fStackCurr = fStackStop; } |
- |
- void push(intptr_t value); |
- intptr_t top() const { return this->peek(0); } |
- intptr_t peek(size_t index) const; |
- void setTop(intptr_t value); |
- intptr_t pop(); |
- |
- void fpush(float value) { this->push(f2i_bits(value)); } |
- float fpeek(size_t i) const { return i2f_bits(this->fpeek(i)); } |
- float ftop() const { return i2f_bits(this->top()); } |
- void fsetTop(float value) { this->setTop(f2i_bits(value)); } |
- float fpop() { return i2f_bits(this->pop()); } |
- |
- void sendOutput(const char text[]); |
- |
-private: |
- ForthOutput* fOutput; |
- intptr_t* fStackBase; |
- intptr_t* fStackCurr; |
- intptr_t* fStackStop; |
- |
- void signal_error(const char msg[]) const { |
- SkDebugf("ForthEngine error: %s\n", msg); |
- } |
-}; |
- |
-struct ForthCallBlock { |
- const intptr_t* in_data; |
- size_t in_count; |
- intptr_t* out_data; |
- size_t out_count; |
- size_t out_depth; |
-}; |
- |
-class ForthWord { |
-public: |
- virtual ~ForthWord() {} |
- virtual void exec(ForthEngine*) = 0; |
- |
- // todo: return error state of the engine |
- void call(ForthCallBlock*); |
-}; |
- |
-class ForthEnv { |
-public: |
- ForthEnv(); |
- ~ForthEnv(); |
- |
- |
- void addWord(const char name[], ForthWord*); |
- |
- void parse(const char code[]); |
- |
- ForthWord* findWord(const char name[]); |
- |
- void run(ForthOutput* = NULL); |
- |
-private: |
- class Impl; |
- Impl* fImpl; |
-}; |
- |
-#endif |