Operators
Because of limitations of the C++ language, the syntax of Spirit has been designed around the operator precedences of C++, while bearing resemblance to both EBNF and regular expressions.
syntax | explanation |
---|---|
x >> y | Match x followed by y. |
x > y | After matching x, expect y. |
*x | Match x repeated zero or more times. (This is representing the Kleene star; C++ lacks a unary postfix operator *) |
x | y | Match x. If x does not match, try to match y. |
+x | Match x repeated one or more times. |
-x | Match x zero or one time. |
x & y | Match x and y. |
x - y | Match x but not y. |
x ^ y | Match x or y or both in any order. |
x || y | Match x or y or x followed by y. |
x | Execute the function/functor returned by function_expression, if x matched. |
( x ) | Match x (can be used for priority grouping) |
x % y | Match one or more repetitions of x, separated by occurrences of y. |
~x | Match anything but x (only with character classes such as ch_p or alnum_p) |
Read more about this topic: Spirit Parser Framework