Zen
A cross-platform functional programming language
|
Class that generates a closure constructor. More...
Public Member Functions | |
ContinuationCtorWriter (z::stream &os, const Ast::ContinuationImplItem &continuation, const bool &isCCtor) | |
Default constructor. | |
void | write () |
Writes the continuation to the output stream. | |
Private Member Functions | |
template<typename ClosureT > | |
void | writeFunctionClosure (const ClosureT &closure) |
Common code for different closures to the output stream. | |
virtual void | visit (const Ast::RunClosure &closure) |
Abstract visitor function. | |
virtual void | visit (const Ast::ExitClosure &closure) |
Abstract visitor function. | |
virtual void | visit (const Ast::CallClosure &closure) |
Abstract visitor function. | |
virtual void | visit (const Ast::FunctionCallClosure &closure) |
Abstract visitor function. | |
virtual void | visit (const Ast::LoopClosure &closure) |
Abstract visitor function. | |
virtual void | visit (const Ast::SharedClosure &closure) |
Abstract visitor function. | |
virtual void | visit (const Ast::ReturnClosure &closure) |
Abstract visitor function. | |
Private Attributes | |
z::stream & | _os |
Output stream. | |
const Ast::ContinuationImplItem & | _continuation |
The continuation whose closures are to be written. | |
const bool | _isCCtor |
True if generating a copy constructor, false for default constructor. |
Class that generates a closure constructor.
ContinuationCtorWriter | ( | z::stream & | os, |
const Ast::ContinuationImplItem & | continuation, | ||
const bool & | isCCtor | ||
) | [inline] |
Default constructor.
os | The stream to write out to |
continuation | The continuation whose closures are to be defined |
isCCtor | True if generating a copy constructor, false for constructor. |
virtual void visit | ( | const Ast::RunClosure & | closure | ) | [inline, private, virtual] |
Abstract visitor function.
closure | The closure reference to handle |
Implements Closure::Visitor.
virtual void visit | ( | const Ast::ReturnClosure & | closure | ) | [inline, private, virtual] |
Abstract visitor function.
closure | The closure reference to handle |
Implements Closure::Visitor.
virtual void visit | ( | const Ast::ExitClosure & | closure | ) | [inline, private, virtual] |
Abstract visitor function.
closure | The closure reference to handle |
Implements Closure::Visitor.
virtual void visit | ( | const Ast::LoopClosure & | closure | ) | [inline, private, virtual] |
Abstract visitor function.
closure | The closure reference to handle |
Implements Closure::Visitor.
virtual void visit | ( | const Ast::SharedClosure & | closure | ) | [inline, private, virtual] |
Abstract visitor function.
closure | The closure reference to handle |
Implements Closure::Visitor.
virtual void visit | ( | const Ast::CallClosure & | closure | ) | [inline, private, virtual] |
Abstract visitor function.
closure | The closure reference to handle |
Implements Closure::Visitor.
virtual void visit | ( | const Ast::FunctionCallClosure & | closure | ) | [inline, private, virtual] |
Abstract visitor function.
closure | The closure reference to handle |
Implements Closure::Visitor.
void writeFunctionClosure | ( | const ClosureT & | closure | ) | [inline, private] |
Common code for different closures to the output stream.
closure | The closure to be written |