Spicy
Public Member Functions | Static Public Member Functions | List of all members
hilti::statement::If Class Reference

#include <if.h>

Inheritance diagram for hilti::statement::If:
hilti::NodeBase hilti::trait::isStatement hilti::trait::isNode hilti::trait::isNode

Public Member Functions

 If (const hilti::Declaration &init, std::optional< hilti::Expression > cond, Statement true_, std::optional< Statement > false_, Meta m=Meta())
 
 If (hilti::Expression cond, Statement true_, std::optional< Statement > false_, Meta m=Meta())
 
auto init () const
 
auto condition () const
 
const auto & true_ () const
 
auto false_ () const
 
bool operator== (const If &other) const
 
auto & _trueNode ()
 
auto & _falseNode ()
 
auto isEqual (const Statement &other) const
 
auto properties () const
 
- Public Member Functions inherited from hilti::NodeBase
 NodeBase (Meta meta)
 
 NodeBase (std::vector< Node > childs, Meta meta)
 
template<typename T >
const T & child (int i) const
 
template<typename T >
void assertChildIsA (int i)
 
template<typename T >
std::vector< T > childs (int begin, int end) const
 
template<typename T >
std::vector< T > childsOfType () const
 
template<typename T >
auto nodesOfType () const
 
template<typename T >
auto nodesOfType ()
 
void addChild (Node n)
 
auto & childs () const
 
auto & childs ()
 
auto & meta () const
 
void setMeta (Meta m)
 
const NodeReforiginalNode () const
 
void setOriginalNode (const NodeRef &n)
 
void clearCache ()
 

Static Public Member Functions

static Statement setInit (const If &e, const hilti::Declaration &d)
 
static Statement setCondition (const If &e, const hilti::Expression &c)
 

Detailed Description

AST node for a "if" statement.

Member Function Documentation

◆ _falseNode()

auto& hilti::statement::If::_falseNode ( )
inline

Internal method for use by builder API only.

◆ _trueNode()

auto& hilti::statement::If::_trueNode ( )
inline

Internal method for use by builder API only.

◆ isEqual()

auto hilti::statement::If::isEqual ( const Statement &  other) const
inline

Implements the Statement interface.

◆ properties()

auto hilti::statement::If::properties ( ) const
inline

Implements the Node interface.

◆ setCondition()

static Statement hilti::statement::If::setCondition ( const If e,
const hilti::Expression &  c 
)
inlinestatic

Returns a new "if" statement with the condition expression replaced.

Parameters
eoriginal statement
cnew condition expresssion
Returns
new statement that's equal to original one but with the condition replaced

◆ setInit()

static Statement hilti::statement::If::setInit ( const If e,
const hilti::Declaration &  d 
)
inlinestatic

Returns a new "if" statement with the init expression replaced.

Parameters
eoriginal statement
dnew init expresssion
Returns
new statement that's equal to original one but with the init expression replaced

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