diff options
author | David Robillard <d@drobilla.net> | 2009-03-07 04:55:14 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-03-07 04:55:14 +0000 |
commit | 3322999a97f4170e1476fc4bff431f5ca8909333 (patch) | |
tree | 7031762ceb0ee22ecec62f67e00fe009ae7152a9 | |
parent | b754068a1e11cf480469836c6a04c6614f4d63c5 (diff) | |
download | resp-3322999a97f4170e1476fc4bff431f5ca8909333.tar.gz resp-3322999a97f4170e1476fc4bff431f5ca8909333.tar.bz2 resp-3322999a97f4170e1476fc4bff431f5ca8909333.zip |
Consistent external forms.
git-svn-id: http://svn.drobilla.net/resp/tuplr@76 ad02d1e2-f140-0410-9f75-f8b11f17cedd
-rw-r--r-- | llvm.cpp | 4 | ||||
-rw-r--r-- | write.cpp | 21 |
2 files changed, 14 insertions, 11 deletions
@@ -493,9 +493,9 @@ call(AType* retT, void* fp) if (lltype(retT) == Type::Int32Ty) ss << ((int32_t (*)())fp)(); else if (lltype(retT) == Type::FloatTy) - ss << ((float (*)())fp)(); + ss << showpoint << ((float (*)())fp)(); else if (lltype(retT) == Type::Int1Ty) - ss << ((bool (*)())fp)(); + ss << (((bool (*)())fp)() ? "#t" : "#f"); else ss << ((void* (*)())fp)(); return ss.str(); @@ -20,14 +20,17 @@ ostream& operator<<(ostream& out, const AST* ast) { -#define TRY_WRITE_LITERAL(T) \ - const ASTLiteral<T>* lit ## T = dynamic_cast<const ASTLiteral<T>*>(ast); \ - if (lit ## T) \ - return out << (lit ## T)->val; - - TRY_WRITE_LITERAL(int32_t); - TRY_WRITE_LITERAL(float); - TRY_WRITE_LITERAL(bool); + const ASTLiteral<float>* flit = dynamic_cast<const ASTLiteral<float>*>(ast); + if (flit) + return out << showpoint << flit->val; + + const ASTLiteral<int32_t>* ilit = dynamic_cast<const ASTLiteral<int32_t>*>(ast); + if (ilit) + return out << ilit->val; + + const ASTLiteral<bool>* blit = dynamic_cast<const ASTLiteral<bool>*>(ast); + if (blit) + return out << (blit->val ? "#t" : "#f"); const ASTSymbol* sym = dynamic_cast<const ASTSymbol*>(ast); if (sym) @@ -40,7 +43,7 @@ operator<<(ostream& out, const AST* ast) case AType::PRIM: return out << type->at(0); case AType::EXPR: break; // will catch Tuple case below } - } + } const ASTTuple* tup = dynamic_cast<const ASTTuple*>(ast); if (tup) { |