diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/cps/CodeGen.h | 3 | ||||
| -rw-r--r-- | include/cps/TypeSystem.h | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/include/cps/CodeGen.h b/include/cps/CodeGen.h index 5043417..4363126 100644 --- a/include/cps/CodeGen.h +++ b/include/cps/CodeGen.h @@ -70,6 +70,9 @@ class CodeGen { llvm::Value *convertNumericValue(llvm::Value *Val, const TypeInfo *Source, const TypeInfo *Target); llvm::Value *emitCast(CastExprAST *Cast); + llvm::Value *emitCBinaryOp(BinaryExprAST *Bin, const TypeInfo *Left, const TypeInfo *Right); + void emitCOutput(llvm::Value *Val, const TypeInfo *Info, bool AppendNewline); + void emitCInput(const SymbolInfo *Symbol, const TypeInfo *Info); // TYPE-system helpers (Designator.cc). void runTypePrePass(const std::vector<std::unique_ptr<StmtAST>> &Statements); diff --git a/include/cps/TypeSystem.h b/include/cps/TypeSystem.h index 20c485f..a07c75f 100644 --- a/include/cps/TypeSystem.h +++ b/include/cps/TypeSystem.h @@ -141,6 +141,8 @@ public: std::string &Err); const TypeInfo *importCType(const std::string &Expression, std::string &Err); bool sameType(const std::string &Left, const std::string &Right) const; + const TypeInfo *promoteCScalar(const TypeInfo *Info) const; + const TypeInfo *commonCScalar(const TypeInfo *Left, const TypeInfo *Right) const; const EnumConstant *lookupEnumConstant(const std::string &Name) const; |
