Concept Expr

Expr

Description

An Expr represents a tagged node in an expression tree.
The children of the Expr must themselves satisfy the
Expr concept. The Expr has an arity representing the
number of children. If the number of children is zero,
the Expr also has a value. An Expr also has an associated
Domain.

Associated types

proto_tag

Expr::proto_tag

The tag type of the Expr.

proto_args

Expr::proto_args

A typelist representing either the types of the child nodes, or,
if the arity of the Expr is 0, of the value of the terminal.

proto_arity

Expr::proto_arity

The arity (number of child nodes) of the Expr.
proto_arity is an MPL Integral Constant.

proto_grammar

Expr::proto_grammar

A typedef for an instantiation of
proto::basic_expr<>
that is equivalent to Expr. Expression types are equivalent if they have the
same proto_tag, proto_args, and proto_arity.

proto_base_expr

Expr::proto_base_expr

A typedef for an instantiation of
proto::expr<> or
proto::basic_expr<>
that is equivalent to Expr. Expression types are equivalent if they have the
same proto_tag, proto_args, and proto_arity.