working AST

This commit is contained in:
zanostro 2025-12-10 18:02:06 +01:00
parent 7c6379c62d
commit 9e9039af05
13 changed files with 962 additions and 36 deletions

View file

@ -3,6 +3,10 @@
#include "utils.h"
#include <unordered_map>
#include <string_view>
#include <optional>
// ==============================
// Opcode definitions (SIC/XE)
// ==============================
@ -87,6 +91,8 @@
#define LDVS 0x68
#define LDVT 0x04
static std::unordered_map<std::string_view, uint8_t> mnemonicToOpcode;
static bool opcodeTablesInitialized = false;
enum class InstructionType {
@ -110,6 +116,10 @@ struct InstructionInfo {
extern InstructionInfo instructions[];
extern InstructionInfo instructionsEXEX[];
extern std::optional<uint8_t> findOpcodeByMnemonic(std::string_view name);
extern const InstructionInfo& getInstructionInfo(uint8_t opcode);
// Initialize the instruction table
void loadInstructionSet();