Zen
A cross-platform functional programming language
Public Member Functions | Private Member Functions | Private Attributes

ContinuationCtorWriter Class Reference

Class that generates a closure constructor. More...

Inheritance diagram for ContinuationCtorWriter:
Closure::Visitor

List of all members.

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.

Detailed Description

Class that generates a closure constructor.


Constructor & Destructor Documentation

ContinuationCtorWriter ( z::stream os,
const Ast::ContinuationImplItem continuation,
const bool &  isCCtor 
) [inline]

Default constructor.

Parameters:
osThe stream to write out to
continuationThe continuation whose closures are to be defined
isCCtorTrue if generating a copy constructor, false for constructor.

Member Function Documentation

virtual void visit ( const Ast::RunClosure closure) [inline, private, virtual]

Abstract visitor function.

Parameters:
closureThe closure reference to handle

Implements Closure::Visitor.

virtual void visit ( const Ast::ReturnClosure closure) [inline, private, virtual]

Abstract visitor function.

Parameters:
closureThe closure reference to handle

Implements Closure::Visitor.

virtual void visit ( const Ast::ExitClosure closure) [inline, private, virtual]

Abstract visitor function.

Parameters:
closureThe closure reference to handle

Implements Closure::Visitor.

virtual void visit ( const Ast::LoopClosure closure) [inline, private, virtual]

Abstract visitor function.

Parameters:
closureThe closure reference to handle

Implements Closure::Visitor.

virtual void visit ( const Ast::SharedClosure closure) [inline, private, virtual]

Abstract visitor function.

Parameters:
closureThe closure reference to handle

Implements Closure::Visitor.

virtual void visit ( const Ast::CallClosure closure) [inline, private, virtual]

Abstract visitor function.

Parameters:
closureThe closure reference to handle

Implements Closure::Visitor.

virtual void visit ( const Ast::FunctionCallClosure closure) [inline, private, virtual]

Abstract visitor function.

Parameters:
closureThe closure reference to handle

Implements Closure::Visitor.

void writeFunctionClosure ( const ClosureT &  closure) [inline, private]

Common code for different closures to the output stream.

Parameters:
closureThe closure to be written

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines