),
NT(EXPONENTIATION_EXPR),
TK(PIPE),
NT(PIPE_EXPR)
alt NT(EXPONENTIATION_EXPR)
)
,
rrr(EXPONENTIATION_EXPR, (
TK(NUM)), (
TK(CARET),
TK(NUM))),
rrr(PIPE_EXPR, (
NT(FUNCTION_CALL)), (
TK(PIPE),
NT(FUNCTION_CALL))),
rrr(FUNCTION_ARG_LS, (
NT(EXPR)), (
TK(COMMA),
NT(EXPR)))
,
TK(IDENT),
TK(LPAREN),
NT(FUNCTION_ARG_LS),
TK(RPAREN)
)
#define rrr(head, base, suffix)
Defines right-recursive list rules. base and suffix parameters should wrapped with parenthesis (()).
#define NT(nt)
Macro to create a nonterminal production symbol.
#define TK(tk)
Macro to create a terminal (token) production symbol.
#define r(...)
Macro to define a grammar rule. Adds end of alternative and end of production body sentinels to gramm...
#define alt
Separates grammar alternatives (alternative separator).