summaryrefslogtreecommitdiff
path: root/src/pim/Token.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pim/Token.h')
-rw-r--r--src/pim/Token.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/pim/Token.h b/src/pim/Token.h
new file mode 100644
index 0000000..15cd48f
--- /dev/null
+++ b/src/pim/Token.h
@@ -0,0 +1,83 @@
+#pragma once
+
+#include <string>
+namespace pim
+{
+ namespace compiler
+ {
+ class Token
+ {
+ public:
+ static std::string SymbolNames[];
+
+ enum
+ {
+ AssignSymbol = 0,
+ FunctionSymbol,
+
+ LeftBracket,
+ RightBracket,
+ DivideSymbol,
+ MultiplySymbol,
+ PlusSymbol,
+ MinusSymbol,
+ ModuloSymbol,
+
+ IntegerConstant,
+ DecimalConstant,
+ ParticleConstant,
+
+ IntegerSymbol,
+ DecimalSymbol,
+ ParticleSymbol,
+
+ IsSymbol,
+ LessSymbol,
+ LessEqualSymbol,
+ GreaterSymbol,
+ GreaterEqualSymbol,
+ NotEqualSymbol,
+ EqualSymbol,
+
+ NeighbourSymbol,
+ DoSymbol,
+ OfSymbol,
+ BreakSymbol,
+ ContinueSymbol,
+ IfSymbol,
+ ElseSymbol,
+ ElseIfSymbol,
+ ThenSymbol,
+ EndSymbol,
+
+ KillSymbol,
+ CreateSymbol,
+ TransformSymbol,
+ GetSymbol,
+
+ RTMacro,
+ Identifier,
+
+ CommaSymbol,
+ DotSymbol,
+
+ InvalidSymbol,
+
+ SymbolNumber
+ };
+ int Symbol;
+ int LineNumber;
+ std::string Source;
+
+ Token(int symbol = InvalidSymbol, std::string source = "HERP DERP", int lineNumber = 0) :
+ Symbol(symbol),
+ Source(source),
+ LineNumber(lineNumber) {}
+
+ std::string GetName()
+ {
+ return SymbolNames[Symbol];
+ }
+ };
+ }
+} \ No newline at end of file