![]() |
linc 0.7
Linc is a general-purpose programming language inspired by C
|
Public Types | |
| using | Emitter = EmitterAMD64 |
| using | Variable = std::variant<std::string, std::size_t> |
Public Member Functions | |
| GeneratorAMD64 (const BoundProgram *program, Target::Platform platform) | |
| std::pair< std::string, bool > | generateProgram () |
| void | generateDeclaration (const BoundDeclaration *declaration) |
| void | generateStatement (const BoundStatement *statement) |
| void | generateBlockExpression (const BoundBlockExpression *expression) |
| void | generateExpression (const BoundExpression *expression) |
| void | generateReturnStatement (const BoundReturnStatement *statement) |
| void | generateIndexExpression (const BoundIndexExpression *expression) |
| void | generateTypeExpression (const BoundTypeExpression *expression) |
| void | generateConversionExpression (const BoundConversionExpression *expression) |
| void | generateFunctionCallExpression (const BoundFunctionCallExpression *expression) |
| void | generateExternalCallExpression (const BoundExternalCallExpression *expression) |
| void | generateUnaryExpression (const BoundUnaryExpression *expression) |
| void | generateWhileExpression (const BoundWhileExpression *expression) |
| void | generateIfExpression (const BoundIfExpression *expression) |
| void | generateLiteralExpression (const BoundLiteralExpression *expression) |
| void | generateVariableDeclaration (const BoundVariableDeclaration *declaration) |
| void | generateFunctionDeclaration (const BoundFunctionDeclaration *declaration) |
| void | generateBinaryExpression (const BoundBinaryExpression *expression) |
| Emitter::UnaryInstruction | generateConditional (const BoundExpression *expression) |
| Emitter::UnaryInstruction | generateAndCompare (const BoundExpression *left, const BoundExpression *right, Emitter::UnaryInstruction jump_instruction) |
Static Public Member Functions | |
| static constexpr Registers::Size | getRegisterOperandSize (Types::Kind primitive) |