feat: Implement compiler and virtual machine for Fig language
- Added Compiler class with methods for compiling programs, statements, and expressions. - Introduced Proto structure to hold compiled bytecode and constants. - Implemented expression compilation including literals, identifiers, and infix expressions. - Developed statement compilation for variable declarations and expression statements. - Created a VM class to execute compiled bytecode with support for arithmetic and comparison operations. - Added Object and Value classes for handling different data types and memory management. - Implemented String and Struct objects for enhanced data representation. - Established a parser for parsing variable declarations and statements. - Included tests for the VM and object representations.
This commit is contained in:
@@ -52,7 +52,10 @@ namespace Fig
|
||||
case ExpectedExpression: return "ExpectedExpression";
|
||||
case SyntaxError: return "SyntaxError";
|
||||
|
||||
// default: return "Some one forgot to add case to `ErrorTypeToString`";
|
||||
case RedeclarationError: return "RedeclarationError";
|
||||
case UseUndeclaredIdentifier: return "UseUndeclaredIdentifier";
|
||||
case NotAnLvalue: return "NotAnLvalue";
|
||||
// default: return "Some one forgot to add case to `ErrorTypeToString`";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user