/*----------------------------------------------------------------------------*/ /* */ /* [cfg_dfn.h] Context Free Grammar: symbol and production types */ /* */ /* Copyright (c) 1993 by Doelle, Manns */ /*----------------------------------------------------------------------------*/ /* File generated by 'ctoh'. Don't change manually. */ #ifndef cfg_dfn_INCL #define cfg_dfn_INCL #include "standard.h" #ifdef __cplusplus extern "C" { #endif /* ----------------------- Symbol types ------------------------------------- */ #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 ) ) /* ------------------- Production types: special recognizer ----------------- */ 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#*" ? */ #ifdef __cplusplus } #endif #endif