📄 c_res.gpf
字号:
%{#include "strmake.h"#define START_VARIABLE 1001#define START_WORD 2001#define START_SHARP 3001#define START_YACC 4001#define IS_RESERVED_WORD(a) ((a) >= START_WORD)#define IS_RESERVED_VARIABLE(a) ((a) >= START_VARIABLE && (a) < START_WORD)#define IS_RESERVED_SHARP(a) ((a) >= START_SHARP && (a) < START_YACC)#define IS_RESERVED_YACC(a) ((a) >= START_YACC)#define C___P 2001#define C___ATTRIBUTE__ 2002#define C___EXTENSION__ 2003#define C___THREAD 2004#define C_ASM 2005#define C_CONST 2006#define C_INLINE 2007#define C_RESTRICT 2008#define C_SIGNED 2009#define C_VOLATILE 2010#define C__BOOL 2011#define C__COMPLEX 2012#define C__IMAGINARY 2013#define C_AUTO 2014#define C_BREAK 2015#define C_CASE 2016#define C_CHAR 2017#define C_CONTINUE 2018#define C_DEFAULT 2019#define C_DO 2020#define C_DOUBLE 2021#define C_ELSE 2022#define C_ENUM 2023#define C_EXTERN 2024#define C_FLOAT 2025#define C_FOR 2026#define C_GOTO 2027#define C_IF 2028#define C_INT 2029#define C_LONG 2030#define C_REGISTER 2031#define C_RETURN 2032#define C_SHORT 2033#define C_SIZEOF 2034#define C_STATIC 2035#define C_STRUCT 2036#define C_SWITCH 2037#define C_TYPEDEF 2038#define C_UNION 2039#define C_UNSIGNED 2040#define C_VOID 2041#define C_WHILE 2042#define SHARP_SHARP 3001#define SHARP_ASSERT 3002#define SHARP_DEFINE 3003#define SHARP_ELIF 3004#define SHARP_ELSE 3005#define SHARP_ENDIF 3006#define SHARP_ERROR 3007#define SHARP_IDENT 3008#define SHARP_IF 3009#define SHARP_IFDEF 3010#define SHARP_IFNDEF 3011#define SHARP_IMPORT 3012#define SHARP_INCLUDE 3013#define SHARP_INCLUDE_NEXT 3014#define SHARP_LINE 3015#define SHARP_PRAGMA 3016#define SHARP_SCCS 3017#define SHARP_UNASSERT 3018#define SHARP_UNDEF 3019#define SHARP_WARNING 3020#define YACC_SEP 4001#define YACC_DEBUG 4002#define YACC_DEFAULT_PREC 4003#define YACC_DEFINE 4004#define YACC_DEFINES 4005#define YACC_DESTRUCTOR 4006#define YACC_DPREC 4007#define YACC_ERROR_VERBOSE 4008#define YACC_EXPECT 4009#define YACC_EXPECT_RR 4010#define YACC_FILE_PREFIX 4011#define YACC_GLR_PARSER 4012#define YACC_INITIAL_ACTION 4013#define YACC_LEFT 4014#define YACC_LEX_PARAM 4015#define YACC_LOCATIONS 4016#define YACC_MERGE 4017#define YACC_NAME_PREFIX 4018#define YACC_NO_DEFAULT_PREC 4019#define YACC_NO_LINES 4020#define YACC_NONASSOC 4021#define YACC_NONDETERMINISTIC_PARSER 4022#define YACC_NTERM 4023#define YACC_OUTPUT 4024#define YACC_PARSE_PARAM 4025#define YACC_PREC 4026#define YACC_PRINTER 4027#define YACC_PURE_PARSER 4028#define YACC_RIGHT 4029#define YACC_SKELETON 4030#define YACC_START 4031#define YACC_TOKEN 4032#define YACC_TOKEN_TABLE 4033#define YACC_TYPE 4034#define YACC_UNION 4035#define YACC_VERBOSE 4036#define YACC_YACC 4037#define YACC_BEGIN 4038#define YACC_END 4039%}struct keyword { char *name; int token; }%%__P, C___P__attribute__, C___ATTRIBUTE____attribute, C___ATTRIBUTE____extension__, C___EXTENSION____thread, C___THREADasm, C_ASM__asm, C_ASM__asm__, C_ASMconst, C_CONST__const, C_CONST__const__, C_CONSTinline, C_INLINE__inline, C_INLINE__inline__, C_INLINErestrict, C_RESTRICT__restrict, C_RESTRICT__restrict__, C_RESTRICTsigned, C_SIGNED__signed, C_SIGNED__signed__, C_SIGNEDvolatile, C_VOLATILE__volatile, C_VOLATILE__volatile__, C_VOLATILE_Bool, C__BOOL_Complex, C__COMPLEX_Imaginary, C__IMAGINARYauto, C_AUTObreak, C_BREAKcase, C_CASEchar, C_CHARcontinue, C_CONTINUEdefault, C_DEFAULTdo, C_DOdouble, C_DOUBLEelse, C_ELSEenum, C_ENUMextern, C_EXTERNfloat, C_FLOATfor, C_FORgoto, C_GOTOif, C_IFint, C_INTlong, C_LONGregister, C_REGISTERreturn, C_RETURNshort, C_SHORTsizeof, C_SIZEOFstatic, C_STATICstruct, C_STRUCTswitch, C_SWITCHtypedef, C_TYPEDEFunion, C_UNIONunsigned, C_UNSIGNEDvoid, C_VOIDwhile, C_WHILE"##", SHARP_SHARP"#assert", SHARP_ASSERT"#define", SHARP_DEFINE"#elif", SHARP_ELIF"#else", SHARP_ELSE"#endif", SHARP_ENDIF"#error", SHARP_ERROR"#ident", SHARP_IDENT"#if", SHARP_IF"#ifdef", SHARP_IFDEF"#ifndef", SHARP_IFNDEF"#import", SHARP_IMPORT"#include", SHARP_INCLUDE"#include_next", SHARP_INCLUDE_NEXT"#line", SHARP_LINE"#pragma", SHARP_PRAGMA"#sccs", SHARP_SCCS"#unassert", SHARP_UNASSERT"#undef", SHARP_UNDEF"#warning", SHARP_WARNING"%%", YACC_SEP"%debug", YACC_DEBUG"%default_prec", YACC_DEFAULT_PREC"%default-prec", YACC_DEFAULT_PREC"%define", YACC_DEFINE"%defines", YACC_DEFINES"%destructor", YACC_DESTRUCTOR"%dprec", YACC_DPREC"%error_verbose", YACC_ERROR_VERBOSE"%error-verbose", YACC_ERROR_VERBOSE"%expect", YACC_EXPECT"%expect_rr", YACC_EXPECT_RR"%expect-rr", YACC_EXPECT_RR"%file-prefix", YACC_FILE_PREFIX"%glr-parser", YACC_GLR_PARSER"%initial-action", YACC_INITIAL_ACTION"%left", YACC_LEFT"%lex-param", YACC_LEX_PARAM"%locations", YACC_LOCATIONS"%merge", YACC_MERGE"%name_prefix", YACC_NAME_PREFIX"%name-prefix", YACC_NAME_PREFIX"%no_default_prec", YACC_NO_DEFAULT_PREC"%no_default-prec", YACC_NO_DEFAULT_PREC"%no-default_prec", YACC_NO_DEFAULT_PREC"%no-default-prec", YACC_NO_DEFAULT_PREC"%no_lines", YACC_NO_LINES"%no-lines", YACC_NO_LINES"%nonassoc", YACC_NONASSOC"%binary", YACC_NONASSOC"%nondeterministic-parser", YACC_NONDETERMINISTIC_PARSER"%nterm", YACC_NTERM"%output", YACC_OUTPUT"%parse-param", YACC_PARSE_PARAM"%prec", YACC_PREC"%printer", YACC_PRINTER"%pure_parser", YACC_PURE_PARSER"%pure-parser", YACC_PURE_PARSER"%right", YACC_RIGHT"%skeleton", YACC_SKELETON"%start", YACC_START"%token", YACC_TOKEN"%term", YACC_TOKEN"%token_table", YACC_TOKEN_TABLE"%token-table", YACC_TOKEN_TABLE"%type", YACC_TYPE"%union", YACC_UNION"%verbose", YACC_VERBOSE"%yacc", YACC_YACC"%fixed_output_files", YACC_YACC"%fixed-output_files", YACC_YACC"%fixed_output-files", YACC_YACC"%fixed-output-files", YACC_YACC"%{", YACC_BEGIN"%}", YACC_END%%int c_reserved_word(const char *, int);intc_reserved_word(str, len) const char *str; int len;{ struct keyword *keyword; keyword = c_lookup(str, len); return (keyword && IS_RESERVED_WORD(keyword->token)) ? keyword->token : 0;}int c_reserved_sharp(const char *, int);intc_reserved_sharp(str, len) const char *str; int len;{ struct keyword *keyword; /* Delete blanks. Ex. ' # define ' => '#define' */ str = strtrim(str, TRIM_ALL, &len); keyword = c_lookup(str, len); return (keyword && IS_RESERVED_SHARP(keyword->token)) ? keyword->token : 0;}int c_reserved_yacc(const char *, int);intc_reserved_yacc(str, len) const char *str; int len;{ struct keyword *keyword; keyword = c_lookup(str, len); return (keyword && IS_RESERVED_YACC(keyword->token)) ? keyword->token : 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -