summaryrefslogtreecommitdiff
path: root/src/pim/Token.h
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-09-21 14:05:50 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-21 14:05:50 (GMT)
commit939a04d3c77bf9aa8d54e912f5e12817de51756c (patch)
tree750119bf74b8fbcb409eaf02d03877c00056613d /src/pim/Token.h
parent6e44ebc358d1206c147f514225373da07b43c015 (diff)
downloadpowder-939a04d3c77bf9aa8d54e912f5e12817de51756c.zip
powder-939a04d3c77bf9aa8d54e912f5e12817de51756c.tar.gz
Testing new vm/language WIP
Diffstat (limited to 'src/pim/Token.h')
-rw-r--r--src/pim/Token.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/pim/Token.h b/src/pim/Token.h
new file mode 100644
index 0000000..6a80f49
--- /dev/null
+++ b/src/pim/Token.h
@@ -0,0 +1,79 @@
+#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,
+ ThenSymbol,
+ EndSymbol,
+
+ KillSymbol,
+ CreateSymbol,
+ TransformSymbol,
+ GetSymbol,
+
+ Identifier,
+
+ CommaSymbol,
+
+ 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