|
MXVM 1.8.1
Virtual Machine, Compiler, and Pascal Frontend
|
Built-in handler for Pascal file I/O procedures (assign, reset, rewrite, append, close, eof, eoln). More...
#include <icode.hpp>

Public Member Functions | |
| bool | canHandle (const std::string &funcName) const override |
Return true if this handler implements funcName. | |
| void | generate (CodeGenVisitor &visitor, const std::string &funcName, const std::vector< std::unique_ptr< ASTNode > > &arguments) override |
| Emit code for a procedure-style call (no return value used). | |
| bool | generateWithResult (CodeGenVisitor &visitor, const std::string &funcName, const std::vector< std::unique_ptr< ASTNode > > &arguments) override |
| Emit code for a function-style call (result pushed on eval stack); return true if handled. | |
| VarType | getReturnType (const std::string &funcName) const override |
Return the VarType produced by funcName. | |
| Public Member Functions inherited from pascal::BuiltinFunctionHandler | |
| virtual | ~BuiltinFunctionHandler ()=default |
Built-in handler for Pascal file I/O procedures (assign, reset, rewrite, append, close, eof, eoln).
|
overridevirtual |
Return true if this handler implements funcName.
Implements pascal::BuiltinFunctionHandler.
Definition at line 988 of file icode_imp.cpp.
References pascal::fileFunctions, and pascal::toLower().
|
overridevirtual |
Emit code for a procedure-style call (no return value used).
Implements pascal::BuiltinFunctionHandler.
Definition at line 992 of file icode_imp.cpp.
References pascal::CodeGenVisitor::allocReg(), pascal::CodeGenVisitor::emit(), pascal::CodeGenVisitor::emit2(), pascal::CodeGenVisitor::emit_invoke(), pascal::CodeGenVisitor::eval(), pascal::CodeGenVisitor::fileVarNames, pascal::CodeGenVisitor::findMangledName(), pascal::CodeGenVisitor::freeReg(), pascal::CodeGenVisitor::internString(), pascal::CodeGenVisitor::isParmReg(), pascal::CodeGenVisitor::isReg(), pascal::CodeGenVisitor::slotVar(), pascal::toLower(), pascal::CodeGenVisitor::usedModules, and pascal::CodeGenVisitor::varSlot.
|
overridevirtual |
Emit code for a function-style call (result pushed on eval stack); return true if handled.
Reimplemented from pascal::BuiltinFunctionHandler.
Definition at line 1069 of file icode_imp.cpp.
References pascal::CodeGenVisitor::allocReg(), pascal::CodeGenVisitor::emit(), pascal::CodeGenVisitor::emit2(), pascal::CodeGenVisitor::emit_invoke(), pascal::CodeGenVisitor::eval(), pascal::CodeGenVisitor::freeReg(), pascal::CodeGenVisitor::isParmReg(), pascal::CodeGenVisitor::isReg(), pascal::CodeGenVisitor::pushValue(), pascal::toLower(), and pascal::CodeGenVisitor::usedModules.
|
overridevirtual |
Return the VarType produced by funcName.
Reimplemented from pascal::BuiltinFunctionHandler.
Definition at line 1097 of file icode_imp.cpp.
References pascal::INT, pascal::toLower(), and pascal::UNKNOWN.