EXPR_DEF(EXPR_ID, 		0, "%s")
EXPR_DEF(EXPR_NUM,		0, "%s")
EXPR_DEF(EXPR_CSTR,		0, "%s")
EXPR_DEF(EXPR_REGEX,		0, "REGEX(%s)")
EXPR_DEF(EXPR_SUBSCRIPT,	2, "@element@(%s[%s])") 
EXPR_DEF(EXPR_MEMBER,		2, "@%s->%s@") 
EXPR_DEF(EXPR_PAREN,		1, " ( %s ) ") 
EXPR_DEF(EXPR_CALL,		1, "%s(%s)")
EXPR_DEF(EXPR_CALLARGS,		-1, "@custom@")
EXPR_DEF(EXPR_SIZEOF,		1, "@sizeof(%s)@")
EXPR_DEF(EXPR_OFFSETOF,		1, "@offsetof(%s)@")
EXPR_DEF(EXPR_NEG,		1, "-%s") 
EXPR_DEF(EXPR_PLUS,		2, "%s + %s")
EXPR_DEF(EXPR_MINUS,		2, "%s - %s")
EXPR_DEF(EXPR_TIMES,		2, "%s * %s")
EXPR_DEF(EXPR_DIV,		2, "%s / %s")
EXPR_DEF(EXPR_MOD,		2, "%s %% %s")
EXPR_DEF(EXPR_BITNOT,		1, "~%s")
EXPR_DEF(EXPR_BITAND,		2, "%s & %s")
EXPR_DEF(EXPR_BITOR,		2, "%s | %s")
EXPR_DEF(EXPR_BITXOR,		2, "%s ^ %s")
EXPR_DEF(EXPR_LSHIFT,		2, "%s << %s")
EXPR_DEF(EXPR_RSHIFT,		2, "%s >> %s")
EXPR_DEF(EXPR_EQUAL,		2, "%s == %s")
EXPR_DEF(EXPR_NEQ,		2, "%s != %s")
EXPR_DEF(EXPR_GE,		2, "%s >= %s")
EXPR_DEF(EXPR_LE,		2, "%s <= %s")
EXPR_DEF(EXPR_GT,		2, "%s > %s")
EXPR_DEF(EXPR_LT,		2, "%s < %s")
EXPR_DEF(EXPR_NOT,		1, "! %s")
EXPR_DEF(EXPR_AND,		2, "%s && %s")
EXPR_DEF(EXPR_OR,		2, "%s || %s")
EXPR_DEF(EXPR_COND,		3, "%s ? %s : %s")
EXPR_DEF(EXPR_CASE,		-1, "@custom@")
