#define PLR_TYP_NTM 0 /* Nonterminal */
#define PLR_TYP_TOK 1 /* Token */
#define PLR_TYP_KEY 2 /* Keyword */
#define PLR_TYP_WKY 3 /* Wide Keyword */
#define PLR_TYP_CFG 4 /* Language token */
#define PLR_TYP_COM 5 /* Comment */
/* Terminal <--> Comment */
#define CFG_TERM_TO_COM(typ) ( (typ) + PLR_TYP_COM )
#define CFG_COM_TO_TERM(typ) ( (typ) - PLR_TYP_COM )
/* Recognizer */
#define CFG_NTM(typ) ( (typ) == PLR_TYP_NTM )
#define CFG_CFG(typ) ( (typ) == PLR_TYP_CFG )
#define CFG_TOK(typ) ( (typ) == PLR_TYP_TOK || (typ) == PLR_TYP_CFG )
#define CFG_KEY(typ) ( (typ) == PLR_TYP_KEY || (typ) == PLR_TYP_WKY )
#define CFG_WCKEY(typ) ( (typ) == PLR_TYP_WKY )
#define CFG_COM(typ) ( (typ) >= PLR_TYP_COM )
#define CFG_TOK_NTM(typ) ( CFG_TOK(typ) || CFG_NTM(typ) )
#define CFG_TOK_KEY(typ) ( CFG_TOK(typ) || CFG_KEY(typ) )
#define CFG_TERMINAL(typ) ( CFG_TOK_KEY(typ) || \
( CFG_COM(typ) && (typ) != PLR_TYP_COM ) )
c_bool nilProd(c_string prod) | production name = "nil" ? |
c_bool consProd(c_string prod) | production name = "cons" ? |
c_bool ignProd(c_string prod) | production name = "ign#*" ? |