Extract preprocessing from tokenizer

This commit is contained in:
2020-08-29 11:25:10 +02:00
parent aebc1dd86d
commit 71678b2ec6
12 changed files with 254 additions and 134 deletions

View File

@@ -0,0 +1,21 @@
#pragma once
#include <string>
#include <vector>
class Preprocessor
{
private:
std::vector<std::string> substitutionIdentifiers;
std::vector<std::string> substitutionValues;
void extractComment(std::string & line,
std::size_t const lineNumber,
std::size_t const lineColumn);
void processLine(std::string & line, std::size_t const lineNumber);
public:
void process(std::vector<std::string> & lines);
void printSubstitutions() const;
};

View File

@@ -15,11 +15,6 @@ namespace Token
int const lineNumber,
int const lineColumn) const;
void ParseComment(
std::string const & string,
int const lineNumber,
int const lineColumn);
void ParseCharacterLiteral(
std::string const & line,
int const lineNumber,

6
include/utils.hpp Normal file
View File

@@ -0,0 +1,6 @@
#pragma once
namespace Utils
{
bool isWhitespaceCharacter(char const c);
}

View File

@@ -9,12 +9,15 @@ class Wassembler
private:
Configuration config;
Execute::VirtualMachine vm;
bool printSubstitutions;
bool LoadLinesFromFile(std::string const & filePath, std::vector<std::string> & lines) const;
bool LoadTokens(std::vector<std::string> const & lines, std::vector<Token::Token> & tokens) const;
public:
void SetMemorySize(unsigned const size);
void EnableSubstitutionsLogging();
bool LoadFromFile(std::string const & filePath);
void Run();