Fabrique

A build language for complex systems

 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
fabrique::ast::Function Class Reference

A function allows users to create build abstractions. More...

#include <Function.h>

Inheritance diagram for fabrique::ast::Function:
fabrique::ast::Expression fabrique::ast::HasParameters fabrique::ast::Node fabrique::Typed fabrique::HasSource fabrique::Printable fabrique::Visitable< Visitor > fabrique::Uncopyable

Public Member Functions

 Function (UniqPtrVec< Parameter > &params, const FunctionType &ty, UniqPtr< Expression > &body, const SourceRange &loc)
 
const Expressionbody () const
 
virtual const FunctionTypetype () const override
 
virtual void PrettyPrint (Bytestream &, size_t indent=0) const override
 Print a human-readable representation to an output stream and return that output stream.
 
virtual void Accept (Visitor &) const
 
virtual dag::ValuePtr evaluate (EvalContext &) const override
 
- Public Member Functions inherited from fabrique::HasSource
 HasSource (const SourceRange &src)
 
const SourceRangesource () const
 
- Public Member Functions inherited from fabrique::Printable
 Printable (const Printable &)
 
Printableoperator= (const Printable &)
 
virtual std::string str () const
 
- Public Member Functions inherited from fabrique::Visitable< Visitor >
virtual void Accept (Visitor &) const =0
 
- Public Member Functions inherited from fabrique::Typed
 Typed (const Type &t)
 
- Public Member Functions inherited from fabrique::ast::HasParameters
 HasParameters (UniqPtrVec< Parameter > &)
 
const UniqPtrVec< Parameter > & parameters () const
 
const std::set< std::string > & parameterNames () const
 
void CheckArguments (const UniqPtrVec< Argument > &, const SourceRange &) const
 
ParamIterator begin () const
 
ParamIterator end () const
 
template<class T >
StringMap< const T * > NameArguments (const UniqPtrVec< T > &v) const
 Name all of the arguments in v according to the rules for positional and keyword arguments.
 

Additional Inherited Members

- Public Types inherited from fabrique::ast::HasParameters
using ParamIterator = UniqPtrVec< Parameter >::const_iterator
 
- Protected Member Functions inherited from fabrique::ast::Expression
 Expression (const Type &t, const SourceRange &src)
 
- Protected Member Functions inherited from fabrique::ast::Node
 Node (const SourceRange &src)
 

Detailed Description

A function allows users to create build abstractions.

Definition at line 53 of file Function.h.


The documentation for this class was generated from the following files: