GCC/cpplib/directives

Structure
typedef void (*directive_handler) (cpp_reader *); typedef struct directive directive; struct directive { directive_handler handler; const uchar *name; unsigned short length; unsigned char origin; unsigned char flags; };

Instances
static const directive dtable[] = { { do_define, (const uchar *) "define", sizeof "define" - 1, 0, (1 << 3) }, { do_include, (const uchar *) "include", sizeof "include" - 1, 0, (1 << 2) | (1 << 4) }, { do_endif, (const uchar *) "endif", sizeof "endif" - 1, 0, (1 << 0) }, { do_ifdef, (const uchar *) "ifdef", sizeof "ifdef" - 1, 0, (1 << 0) | (1 << 1) }, { do_if, (const uchar *) "if", sizeof "if" - 1, 0, (1 << 0) | (1 << 1) | (1 << 4) }, { do_else, (const uchar *) "else", sizeof "else" - 1, 0, (1 << 0) }, { do_ifndef, (const uchar *) "ifndef", sizeof "ifndef" - 1, 0, (1 << 0) | (1 << 1) }, { do_undef, (const uchar *) "undef", sizeof "undef" - 1, 0, (1 << 3) }, { do_line, (const uchar *) "line", sizeof "line" - 1, 0, (1 << 4) }, { do_elif, (const uchar *) "elif", sizeof "elif" - 1, 1, (1 << 0) | (1 << 4) }, { do_error, (const uchar *) "error", sizeof "error" - 1, 1, 0 }, { do_pragma, (const uchar *) "pragma", sizeof "pragma" - 1, 1, (1 << 3) }, { do_warning, (const uchar *) "warning", sizeof "warning" - 1, 2, 0 }, { do_include_next, (const uchar *) "include_next", sizeof "include_next" - 1, 2, (1 << 2) | (1 << 4) }, { do_ident, (const uchar *) "ident", sizeof "ident" - 1, 2, (1 << 3) }, { do_import, (const uchar *) "import", sizeof "import" - 1, 2, (1 << 2) | (1 << 4) }, { do_assert, (const uchar *) "assert", sizeof "assert" - 1, 2, (1 << 5) }, { do_unassert, (const uchar *) "unassert", sizeof "unassert" - 1, 2, (1 << 5) }, { do_ident, (const uchar *) "sccs", sizeof "sccs" - 1, 2, (1 << 3) }, };

{{array_inline|name=dtable|static=1|const=1|type=directive|elements={{elements|| {{instance|{{directive|handler=do_define|name=define|length=sizeof "define" - 1|origin=0|flags=(1 << 3) }}}} }} }}
 * {{instance|{{directive|handler=do_include|name=include|length=sizeof "include" - 1| origin=0| (1 << 2) | flags=(1 << 4) }}}}
 * {{instance|{{directive|handler=do_endif|name=endif|length= sizeof "endif" - 1| origin=0| flags=(1 << 0) }}}}
 * {{instance|{{directive|handler=do_ifdef|name=ifdef|length=sizeof "ifdef" - 1| origin=0| flags=(1 << 0) | (1 << 1) }}}}
 * {{instance|{{directive|handler=do_if|name=if|length= sizeof "if" - 1| origin=0| flags=(1 << 0) | (1 << 1) | (1 << 4) }}}}
 * {{instance|{{directive|handler=do_else|name=else|length= sizeof "else" - 1| origin=0| flags=(1 << 0) }}}}
 * {{instance|{{directive|handler=do_ifndef|name=ifndef|length= sizeof "ifndef" - 1| origin=0|flags= (1 << 0) | (1 << 1) }}}}
 * {{instance|{{directive|handler=do_undef|name=undef|length= sizeof "undef" - 1| origin=0|flags= (1 << 3) }}}}
 * {{instance|{{directive|handler=do_line|name=line|length= sizeof "line" - 1| origin=0|flags= (1 << 4) }}}}
 * {{instance|{{directive|handler=do_elif|name=elif|length= sizeof "elif" - 1| origin=1|flags= (1 << 0) | (1 << 4) }}}}
 * {{instance|{{directive|handler=do_error|name=error|length= sizeof "error" - 1| origin=1| flags=0 }}}}
 * {{instance|{{directive|handler=do_pragma|name=pragma|length= sizeof "pragma" - 1| origin=1|flags= (1 << 3) }}}}
 * {{instance|{{directive|handler=do_warning|name=warning|length= sizeof "warning" - 1| origin=2|flags= 0 }}}}
 * {{instance|{{directive|handler=do_include_next|name=include_next| length=sizeof "include_next" - 1| origin=2| flags=(1 << 2) | (1 << 4) }}}}
 * {{instance|{{directive|handler=do_ident|name=ident|length=sizeof "ident" - 1| origin=2|flags= (1 << 3) }}}}
 * {{instance|{{directive|handler=do_import|name=import|length=sizeof "import" - 1| origin=2|flags= (1 << 2) | (1 << 4) }}}}
 * {{instance|{{directive|handler=do_assert|name=assert|length=sizeof "assert" - 1| origin=2|flags= (1 << 5) } }}}}
 * {{instance|{{directive|handler=do_unassert|name=unassert|length=sizeof "unassert" - 1| origin=2|flags= (1 << 5) }}}}
 * {{instance|{{directive|handler=do_ident|name=sccs|length=sizeof "sccs" - 1| origin=2|flags= (1 << 3) }}}}