From fd3ade68dfa53710b53dcd3b757fd20624e50cf8 Mon Sep 17 00:00:00 2001 From: Markus Hauschild Date: Sun, 2 Jun 2013 01:17:57 +0200 Subject: [PATCH] Add a put_char function so we can print characters ... --- src/AST/CodeGenVisitor.cpp | 8 ++++++-- src/libscully.c | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/AST/CodeGenVisitor.cpp b/src/AST/CodeGenVisitor.cpp index 66e4d01..aba72ee 100644 --- a/src/AST/CodeGenVisitor.cpp +++ b/src/AST/CodeGenVisitor.cpp @@ -11,9 +11,13 @@ CodeGenVisitor::CodeGenVisitor(llvm::Module* module, llvm::FunctionPassManager * scope_ = 0; namedValues_.push_back(std::map()); - // create external for random_if + // create external for putchar std::vector argt(1, typeToLLVMType(Type::INT)); - llvm::FunctionType* ft = llvm::FunctionType::get(typeToLLVMType(Type::BOOL), argt, false); + llvm::FunctionType* ft = llvm::FunctionType::get(typeToLLVMType(Type::INT), argt, false); + llvm::Function::Create(ft, llvm::Function::ExternalLinkage, "put_char", module_); + + // create external for random_if + ft = llvm::FunctionType::get(typeToLLVMType(Type::BOOL), argt, false); llvm::Function::Create(ft, llvm::Function::ExternalLinkage, "random_if", module_); } diff --git a/src/libscully.c b/src/libscully.c index e028896..eb8da57 100644 --- a/src/libscully.c +++ b/src/libscully.c @@ -3,9 +3,13 @@ #include #include +int put_char(int c) { + printf("%c", c); + return 0; +} + bool random_if(int p) { //srand(time(NULL)); int r = rand() % 100; - //printf("Value of r:%d\n",r); return (r < p); }