Website Summary Files Commits Branches @commit @diff @stats
path: root / spasm / src / asm / token.hpp
diff options
context:
space:
mode:
Commita7cd9d4f8d83024402bacb39786e5e1a018a0a04 (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-14 23:45:56 +0200
Committer
 Martin Dobrev <martindobrev0@gmail.com>
2018-11-14 23:45:56 +0200
Files1f99c6f8d00d9b94b69c8f3525643344a32d7414 /spasm/src/asm/token.hpp
IPL-a7cd9d4f8d83024402bacb39786e5e1a018a0a04.tar
IPL-a7cd9d4f8d83024402bacb39786e5e1a018a0a04.tar.gz
IPL-a7cd9d4f8d83024402bacb39786e5e1a018a0a04.zip
Parent9a7a8a31e75d1b85274ef46ca29714270062809e (diff)
Spasm can assemble programs on with the new instruction set (#47)
* Use checkout as-is, commit as-is * Spasm can assemble programs based on the new instruction set
1 files changed, 60 insertions, 30 deletions
-rw-r--r--spasm/src/asm/token.hpp90
diff --git a/spasm/src/asm/token.hpp b/spasm/src/asm/token.hpp
index 5f3b6b9..a763196 100644
--- a/spasm/src/asm/token.hpp
+++ b/spasm/src/asm/token.hpp
@@ -4,30 +4,32 @@
#include <string>
#define TOKENS \
- TOK(dup) \
- TOK(push) \
- TOK(pop) \
- TOK(print) \
- TOK(read) \
- TOK(plus) \
- TOK(minus) \
- TOK(multiply) \
- TOK(divide) \
- TOK(modulus) \
- TOK(jmpt) \
- TOK(jmpf) \
- TOK(jmp) \
- TOK(call) \
- TOK(ret) \
- TOK(load) \
- TOK(store) \
- TOK(less) \
- TOK(lesseq) \
- TOK(label) \
- TOK(ident) \
- TOK(integer) \
- TOK(xinteger) \
- TOK(endinput)
+ 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
{
@@ -40,14 +42,42 @@ class Token
public:
enum Token_type
{
- halt = 0,
-#define TOK(x) x,
- TOKENS
-#undef TOK
- notused
+ _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,
+ NotUsed
};
- Token(Token_type = notused);
+ Token(Token_type = NotUsed);
Token(Token_type, size_t, const char* = NULL, const char* = NULL);