summaryrefslogtreecommitdiff
path: root/src/pim/Parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pim/Parser.h')
-rw-r--r--src/pim/Parser.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/pim/Parser.h b/src/pim/Parser.h
deleted file mode 100644
index 19a2835..0000000
--- a/src/pim/Parser.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#pragma once
-
-#include <string>
-#include <cstring>
-#include <sstream>
-#include "Scanner.h"
-#include "Generator.h"
-#include "Token.h"
-namespace pim
-{
- namespace compiler
- {
- class ParserExpectException: public std::exception
- {
- char * error;
- public:
- ParserExpectException(Token token, int expectingSymbol) {
- error = strdup(std::string("Expecting " + Token::SymbolNames[expectingSymbol] + " got " + token.Source).c_str());
- }
- ParserExpectException(Token token, std::string expectingString) {
- error = strdup(std::string("Expecting " + expectingString + " got " + token.Source).c_str());
- }
- const char * what() const throw()
- {
- return error;
- }
- ~ParserExpectException() throw() {};
- };
- class Parser
- {
- std::stringstream & source;
- Generator * generator;
- Scanner * scanner;
- Token token;
- Token lastToken;
- std::string breakLabel;
- std::string continueLabel;
- std::stack<Token> previousTokens;
-
- void program();
- void functionList();
- void function();
- void functionCall();
- void block();
- void argumentList();
- void argument();
- void declarationList();
- void declaration();
- void identifierList();
- void statementList();
- void statement();
- void neighbourStatement();
- void ifStatement();
- void condition(std::string jumpLabel);
- void assigmentStatement();
- void particleAction();
- void killStatement();
- void getStatement();
- void createStatement();
- void transformStatement();
- void expressionList();
-
- void expression();
- void term();
- void factor();
- void variableValue();
-
- Token forward();
- bool accept(int symbol);
- bool look(int symbol);
- void back();
- void expect(int symbol);
- public:
- Parser(std::stringstream & source_);
-
- std::vector<unsigned char> Compile();
- };
- }
-}