Added hex editor and basic pattern parsing/highlighting

This commit is contained in:
WerWolv
2020-11-10 15:26:38 +01:00
parent 83331429b7
commit cbe302a004
41 changed files with 56013 additions and 0 deletions

59
include/parser/token.hpp Normal file
View File

@@ -0,0 +1,59 @@
#pragma once
#include <hex.hpp>
#include <string>
namespace hex::lang {
struct Token {
enum class Type : u64 {
Keyword,
Type,
Operator,
Integer,
Identifier,
EndOfExpression,
ScopeOpen,
ScopeClose,
Separator,
EndOfProgram
} type;
struct KeywordToken {
enum class Keyword {
Struct,
Using
} keyword;
} keywordToken;
struct IdentifierToken {
std::string identifier;
} identifierToken;
struct OperatorToken {
enum class Operator {
AtDeclaration,
Assignment
} op;
} operatorToken;
struct IntegerToken {
s128 integer;
} integerToken;
struct TypeToken {
enum class Type {
Unsigned8Bit = 0x10,
Signed8Bit = 0x11,
Unsigned16Bit = 0x20,
Signed16Bit = 0x21,
Unsigned32Bit = 0x40,
Signed32Bit = 0x41,
Unsigned64Bit = 0x80,
Signed64Bit = 0x81,
Unsigned128Bit = 0x100,
Signed128Bit = 0x101,
Float = 0x42,
Double = 0x82,
CustomType = 0x00
} type;
} typeToken;
};
}