LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
astclone Namespace Reference

Cloning an ast::Ast. More...

Namespaces

namespace  tasks
 Tasks of the astclone module.

Classes

class  Cloner
 Duplicate an Ast. More...

Functions

template<typename T >
T * clone (const T &tree)
 Make a deep copy of an AST.
template<typename A >
void apply (applicable< A > f, A *&t)
 Have the pure function f side effect on t.

Detailed Description

Cloning an ast::Ast.

Function Documentation

template<typename A >
void astclone::apply ( applicable< A >  f,
A *&  t 
)
template<typename T >
T * astclone::clone ( const T &  tree)

Make a deep copy of an AST.

Parameters
treeabstract syntax tree's root.
Returns
the cloned AST.

References astclone::Cloner::result_get().

Referenced by target::mips::Cpu::Cpu().