Website Summary Files Commits Branches @commit @diff @stats
path: root / spasm / src / asm / token.hpp
diff options
context:
space:
mode:
Commitd7b2e339ff06c64bcb1322eec396d4995da6b17a (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-15 10:11:01 +0200
Committer
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-15 10:16:21 +0200
Filesace7bdc0df3791b6db8878d52ba98cb368e180b8 /spasm/src/asm/token.hpp
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.tar
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.tar.gz
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.zip
Parentfb7e4dbb3ec65de00987f2ccfc6d29ebfcec12c7 (diff)
Implemented push and pop with numbers
1 files changed, 33 insertions, 60 deletions
-rw-r--r--spasm/src/asm/token.hpp93
diff --git a/spasm/src/asm/token.hpp b/spasm/src/asm/token.hpp
index a763196..364b315 100644
--- a/spasm/src/asm/token.hpp
+++ b/spasm/src/asm/token.hpp
@@ -3,34 +3,6 @@
#include <string>
-#define TOKENS \
- TOK(Halt) \
- TOK(Dup) \
- TOK(Pop) \
- TOK(PopTo) \
- TOK(Push) \
- TOK(Alloc) \
- TOK(Print) \
- TOK(Read) \
- TOK(Call) \
- TOK(Ret) \
- TOK(Jump) \
- TOK(JumpT) \
- TOK(JumpF) \
- TOK(Const) \
- TOK(Add) \
- TOK(Sub) \
- TOK(Mul) \
- TOK(Div) \
- TOK(Mod) \
- TOK(Less) \
- TOK(LessEq) \
- TOK(Label) \
- TOK(Ident) \
- TOK(Integer) \
- TOK(XInteger) \
- TOK(EndInput)
-
namespace SpasmImpl
{
namespace ASM
@@ -42,38 +14,38 @@ class Token
public:
enum Token_type
{
- _NoArgBegin,
- Halt = _NoArgBegin,
- Dup,
- Pop,
- _OneArgBegin,
- PopTo = _OneArgBegin,
- Push,
- Alloc,
- Print,
- Read,
- Call,
- Ret,
- Jump,
- _TwoArgBegin,
- JumpT = _TwoArgBegin,
- JumpF,
- Const,
- _ThreeArgBegin,
- Add = _ThreeArgBegin,
- Sub,
- Mul,
- Div,
- Mod,
- Less,
- LessEq,
- _NotOpCodeBegin,
- Label = _NotOpCodeBegin,
- Ident,
- //Register,
- Integer,
- XInteger,
- EndInput,
+ _NoArgBegin,
+ Halt = _NoArgBegin,
+ Dup,
+ Pop,
+ _OneArgBegin,
+ PopTo = _OneArgBegin,
+ PushFrom,
+ Push,
+ Print,
+ Read,
+ Call,
+ Ret,
+ Jump,
+ _TwoArgBegin,
+ JumpT = _TwoArgBegin,
+ JumpF,
+ Const,
+ _ThreeArgBegin,
+ Add = _ThreeArgBegin,
+ Sub,
+ Mul,
+ Div,
+ Mod,
+ Less,
+ LessEq,
+ _NotOpCodeBegin,
+ Label = _NotOpCodeBegin,
+ Ident,
+ // Register,
+ Integer,
+ XInteger,
+ EndInput,
NotUsed
};
@@ -86,6 +58,7 @@ class Token
size_t lineno() const;
int value_int() const;
+ void set_int(int v) { _value_int = v; }
const std::string& value_str() const;