|
MXVM 1.8.1
Virtual Machine, Compiler, and Pascal Frontend
|
| Nexpr_parser | |
| CExprToken | A single expression token holding its type and optional numeric value |
| CExprLexer | Lexer for constant integer expressions |
| CExprParser | Recursive-descent parser and evaluator for constant integer expressions |
| Nmx | |
| CException | General-purpose exception with errno-aware factory method |
| CArgument | A parsed or registered command-line argument definition |
| CArgumentData | Raw argument data collected from argc/argv |
| CArgException | Exception type thrown for argument parsing errors |
| CArgz | Generic command-line argument parser supporting single/double-dash options |
| CArguments | Parsed SDL program arguments (resolution, path, fullscreen) |
| Nmxvm | |
| CASTNode | Abstract base class for all AST nodes |
| CSectionNode | Represents a program section (.data, .code, .module, .object) |
| CProgramNode | Root AST node representing an entire program or object |
| CVariableNode | AST node for a variable declaration in a .data section |
| CModuleNode | AST node for a module import declaration |
| CObjectNode | AST node for an object import declaration |
| CInstructionNode | AST node representing a single MXVM instruction with its operands |
| CLabelNode | AST node for a label (or function entry point) in the code section |
| CExpressionNode | AST node for a literal expression value |
| CCommentNode | AST node for a source-level comment |
| CASTVisitor | Visitor interface for traversing the AST node hierarchy |
| CFunction | |
| CFunction< R(Args...)> | RAII wrapper for dynamically loaded functions via dlopen/dlsym |
| CHTMLGen | Generates syntax-highlighted HTML output from MXVM source code |
| CPasHTMLGen | Generates syntax-highlighted HTML output from Pascal (.pas) source code |
| CStack | Runtime operand stack for the MXVM interpreter |
| CRuntimeFunction | Wraps a dynamically loaded native function from a shared library module |
| CBase | Base class for instruction storage, variables, labels, and external function registrations |
| CProgram | Complete MXVM program: instruction interpreter and native x64 code generator |
| COperand | A single instruction operand (constant value or variable reference) |
| CInstruction | A complete MXVM instruction with opcode, operands, and optional label |
| CVariable_Value | Runtime value storage for a variable |
| CVariable | A named variable with type, value, and optional object association |
| CParser | Main MXVM parser — tokenizes source, builds AST, and generates intermediate code |
| CExternalFunction | Describes an external function imported from a module or object |
| CModuleParser | Parser for MXVM module definition files (.mxvm) |
| CParsedOp | A parsed operand with its kind, text, and source location |
| CUseVar | Records a variable usage site for validation |
| CUseLabel | Records a label usage site for validation |
| COpSpec | Specification of valid operand patterns for an instruction |
| CValidator | Validates MXVM source for correct variable/label usage and instruction operands |
| CVarNamePair | A variable name paired with its declaration token |
| Nmxx | |
| CXParser | Base parser providing token-stream navigation |
| CScope | A single scope level, tracking declared identifiers by category |
| CTPValidator | Semantic validator for Pascal programs |
| Npascal | |
| CASTNode | Abstract base class for all AST nodes |
| CExitNode | AST node for an exit / halt statement |
| CContinueNode | AST node for a continue statement |
| CBreakNode | AST node for a break statement |
| CBlockNode | AST node representing a block (declarations + compound statement) |
| CProgramNode | AST node for a complete program (program name + block) |
| CUnitNode | AST node for a Pascal unit (separately compiled module) |
| CVarDeclNode | AST node for variable declarations (var id1, id2 : type) |
| CTypeDeclNode | AST node for a type declaration section |
| CTypeAliasNode | AST node for a type alias (type NewName = ExistingType) |
| CConstDeclNode | AST node for constant declarations (const id = value) |
| CConstAssignment | A single constant name = value pair |
| CFuncDeclNode | AST node for a function declaration |
| CProcDeclNode | AST node for a procedure declaration |
| CParameterNode | AST node for a formal parameter list entry |
| CCompoundStmtNode | AST node for a compound statement (begin ... end) |
| CAssignmentNode | AST node for an assignment statement (variable := expression) |
| CSimpleTypeNode | AST node for a simple (named) type reference |
| CArrayTypeNode | AST node for an array type (array[lower..upper] of elementType) |
| CArrayDeclarationNode | AST node for a named array variable declaration |
| CArrayTypeDeclarationNode | AST node for a named array type declaration (type Name = array[...]) |
| CArrayAccessNode | AST node for an array element access (arr[index]) |
| CArrayAssignmentNode | AST node for assigning to an array element (arr[index] := value) |
| CIfStmtNode | AST node for an if-then-else statement |
| CWhileStmtNode | AST node for a while loop (while cond do stmt) |
| CForStmtNode | AST node for a for loop (for var := start to/downto end do stmt) |
| CCaseStmtNode | AST node for a case statement |
| CCaseBranch | A single case branch (one or more values mapping to a statement) |
| CProcCallNode | AST node for a procedure call statement |
| CBinaryOpNode | AST node for a binary operator expression |
| CUnaryOpNode | AST node for a unary operator expression |
| CFuncCallNode | AST node for a function call expression |
| CVariableNode | AST node for a variable reference |
| CNumberNode | AST node for an integer or real numeric literal |
| CStringNode | AST node for a string literal |
| CBooleanNode | AST node for a boolean literal (true / false) |
| CEmptyStmtNode | AST node for an empty statement (no-op) |
| CNilNode | AST node for the nil literal |
| CPointerTypeNode | AST node for a pointer type declaration (^BaseType) |
| CPointerDerefNode | AST node for a pointer dereference (ptr^) |
| CAddressOfNode | AST node for an address-of expression (@operand) |
| CRepeatStmtNode | AST node for a repeat..until loop |
| CEnumTypeDeclNode | AST node for an enumerated type declaration (type Color = (Red, Green, Blue)) |
| CVariantArm | A single variant arm inside a variant record |
| CRecordTypeNode | AST node for a record type (record ... end) |
| CRecordDeclarationNode | AST node for a named record declaration |
| CWithStmtNode | AST node for a with statement (with record do statement) |
| CGotoStmtNode | AST node for a goto statement |
| CLabelStmtNode | AST node for a label definition (label: statement) |
| CSetLiteralNode | AST node for a set literal [val1, val2, ...] |
| CSetTypeNode | AST node for a set type declaration (set of <base type>) |
| CFieldAccessNode | AST node for accessing a record field (record.field) |
| CASTVisitor | Abstract visitor interface for the AST (double-dispatch) |
| CArrayInfo | Metadata describing a Pascal array's bounds, element type, and sizing |
| CBuiltinFunctionHandler | Abstract handler for a group of built-in functions/procedures |
| CBuiltinFunctionRegistry | Registry of BuiltinFunctionHandler instances |
| CIOFunctionHandler | Built-in handler for I/O procedures (write, writeln, read, readln) |
| CStdFunctionHandler | Built-in handler for standard library functions (chr, ord, inc, dec, etc.) |
| CStringFunctionHandler | Built-in handler for string library functions (length, copy, concat, etc.) |
| CSDLFunctionHandler | Built-in handler for SDL2 bindings |
| CFileFunctionHandler | Built-in handler for Pascal file I/O procedures (assign, reset, rewrite, append, close, eof, eoln) |
| CCodeGenVisitor | AST visitor that generates MXVM intermediate code |
| CScope | |
| CFuncInfo | Describes a user-declared function's parameter and return types |
| CValueLocation | Describes where a value currently resides (register, memory, or immediate) |
| CRecordField | A field within a record type definition |
| CRecordTypeInfo | Complete description of a record type |
| CParseException | Exception thrown on parse errors |
| CPascalParser | Recursive-descent parser for the Pascal language |
| Nscan | |
| Nbuffer | |
| CStringBuffer | Character-by-character string buffer with line/column tracking |
| Ntoken | |
| CTokenMap | Maps characters to their lexical category (letter, digit, symbol, etc.) |
| CToken | A scanned token with type, value, and source position |
| CScanner | Lexical scanner that tokenizes source text |
| CScanExcept | Exception thrown during scanning errors |
| CArgs |