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

ClosureImplWriter Class Reference

Class that generates the body for closures. More...

Inheritance diagram for ClosureImplWriter:
Closure::Visitor

List of all members.

Public Member Functions

 ClosureImplWriter (Indenter &ind, z::stream &os, const Ast::ContinuationImplItem &continuation)
 Default constructor.

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

Indenter_ind
 Current indentation level.
z::stream_os
 Output stream.
const Ast::ContinuationImplItem_continuation
 The continuation implementation item.

Detailed Description

Class that generates the body for closures.


Constructor & Destructor Documentation

ClosureImplWriter ( Indenter ind,
z::stream os,
const Ast::ContinuationImplItem continuation 
) [inline]

Default constructor.

Parameters:
indThe indentation level
osThe output stream
continuationThe continuation whose closures are to be written out

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::CallClosure 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::LoopClosure 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.

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.

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