Semantic Actions

| Home | Libraries | People | FAQ | More

#### Semantic Actions

Has the form:

    l[f]

where `f` is a function with the signatures:

    void f();
    void f(Iterator&, Iterator&);
    void f(Iterator&, Iterator&, pass_flag&);
    void f(Iterator&, Iterator&, pass_flag&, Idtype&);
    void f(Iterator&, Iterator&, pass_flag&, Idtype&, Context&);

You can use Boost.Bind to bind member functions. For function objects, the allowed signatures are:

    void operator()(unused_type, unused_type, unused_type, unused_type, unused_type) const;
    void operator()(Iterator&, Iterator&, unused_type, unused_type, unused_type) const;
    void operator()(Iterator&, Iterator&, pass_flag&, unused_type, unused_type) const;
    void operator()(Iterator&, Iterator&, pass_flag&, Idtype&, unused_type) const;
    void operator()(Iterator&, Iterator&, pass_flag&, Idtype&, Context&) const;

The `unused_type` is used in the signatures above to signify 'don't care'.

For more information see Lexer Semantic Actions.