Goose  Artifact [c14b55ad6e]

Artifact c14b55ad6e264d59285852f001ab0de9d68f9ddc068b4203ae8bae512d7e7f60:

  • File bs/ir/tostring.h — part of check-in [a742f106d4] at 2019-03-23 13:08:49 on branch trunk —
    • ir: terms can now contain a pointer to another term, for situations where a mutable terms needs to be shared by multiple expressions.
    • func: use a term pointer to store the function's content, so that we can distinguish a not-yet-parsed function from a non evaluated function value.
    (user: achavasse size: 682)

#ifndef EMPATHY_IR_TOSTRING_H
#define EMPATHY_IR_TOSTRING_H

namespace empathy::ir
{
    class Vector;
    class Term;
    enum class Delimiter;

    extern ostream& ToString( ostream& out, const uint64_t& x );
    extern ostream& ToString( ostream& out, const string& x );
    extern ostream& ToString( ostream& out, const StringId& x );
    extern ostream& ToString( ostream& out, const Delimiter& x );
    extern ostream& ToString( ostream& out, const ptr< void >& x );
    extern ostream& ToString( ostream& out, const ptr< Term >& x );
    extern ostream& ToString( ostream& out, const ptr< Vector >& v );
    extern ostream& ToString( ostream& out, const Term& t );
}

#endif