#pragma once #include #include #include typedef struct FasmVariable { TreeDefineVariableMetadata const *variable; uint64_t value; bool isGlobal; } FasmVariable; typedef struct FasmVariables { FasmVariable *variables; size_t size; } FasmVariables; extern FasmLines generateFasm(SourceCode *code); extern FasmLines generateFasmWithPrint(SourceCode *code); extern FasmLines _generateFasm(const ParsedTree *root, SourceCode *code); extern bool nodeToFasmLine(const ParsedTree *node, FasmLines *lines, FasmVariables *variables[], size_t variables_size, SourceCode *code); extern void pushFasmLine(FasmLines *lines, FasmLine line); extern size_t getSizeOfVariable(const TreeDefineVariableMetadata *variable); extern FasmVariable getVariableFasmKeyValue( const TreeDefineVariableMetadata *variable, FasmVariables *variables[], size_t variables_size);