NaryLexer

| Home | Libraries | People | FAQ | More

##### NaryLexer

###### Description

NaryLexer is a composite lexer component that has one or more subjects. The NaryLexer allows its subjects to be treated in the same way as a single instance of a `Lexer` following the Composite Design Pattern.

###### Refinement of

> `Lexer`

Notation

`l`

  A NaryLexer.

`L`

  A NaryLexer type.

###### Valid Expressions

In addition to the requirements defined in `Lexer`, for any NaryLexer the following must be met:

Expression | Semantics | Return type
--- | --- | ---
`l.elements` | The tuple of elements. | A Boost.Fusion Sequence of `Lexer` types.

###### Type Expressions

Expression | Description
--- | ---
`l.elements_type` | Elements tuple type.
`traits::is_nary_lexer<L>::type` | Metafunction that evaluates to `mpl::true_` if a certain type, `L` is a NaryLexer, `mpl::false_` otherwise (See MPL Boolean Constant).

###### Invariants

For each element, `E`, in any NaryLexer, `L`, the following invariant always holds:

- `traits::is_lexer<E>::type` evaluates to `mpl::true_`

###### Models

The following lexer components conform to this model:

- lexer sequence component

FIXME Add more links to models of NaryLexer concept