rclex.c

来自「基于4个mips核的noc设计」· C语言 代码 · 共 2,490 行 · 第 1/5 页

C
2,490
字号
YY_RULE_SETUP#line 87 "rclex.l"{ MAYBE_RETURN (ALT); }	YY_BREAKcase 12:YY_RULE_SETUP#line 88 "rclex.l"{ MAYBE_RETURN (BITMAP); }	YY_BREAKcase 13:YY_RULE_SETUP#line 89 "rclex.l"{ MAYBE_RETURN (CURSOR); }	YY_BREAKcase 14:YY_RULE_SETUP#line 90 "rclex.l"{ MAYBE_RETURN (DIALOG); }	YY_BREAKcase 15:YY_RULE_SETUP#line 91 "rclex.l"{ MAYBE_RETURN (DIALOGEX); }	YY_BREAKcase 16:YY_RULE_SETUP#line 92 "rclex.l"{ MAYBE_RETURN (EXSTYLE); }	YY_BREAKcase 17:YY_RULE_SETUP#line 93 "rclex.l"{ MAYBE_RETURN (CAPTION); }	YY_BREAKcase 18:YY_RULE_SETUP#line 94 "rclex.l"{ MAYBE_RETURN (CLASS); }	YY_BREAKcase 19:YY_RULE_SETUP#line 95 "rclex.l"{ MAYBE_RETURN (STYLE); }	YY_BREAKcase 20:YY_RULE_SETUP#line 96 "rclex.l"{ MAYBE_RETURN (AUTO3STATE); }	YY_BREAKcase 21:YY_RULE_SETUP#line 97 "rclex.l"{ MAYBE_RETURN (AUTOCHECKBOX); }	YY_BREAKcase 22:YY_RULE_SETUP#line 98 "rclex.l"{ MAYBE_RETURN (AUTORADIOBUTTON); }	YY_BREAKcase 23:YY_RULE_SETUP#line 99 "rclex.l"{ MAYBE_RETURN (CHECKBOX); }	YY_BREAKcase 24:YY_RULE_SETUP#line 100 "rclex.l"{ MAYBE_RETURN (COMBOBOX); }	YY_BREAKcase 25:YY_RULE_SETUP#line 101 "rclex.l"{ MAYBE_RETURN (CTEXT); }	YY_BREAKcase 26:YY_RULE_SETUP#line 102 "rclex.l"{ MAYBE_RETURN (DEFPUSHBUTTON); }	YY_BREAKcase 27:YY_RULE_SETUP#line 103 "rclex.l"{ MAYBE_RETURN (EDITTEXT); }	YY_BREAKcase 28:YY_RULE_SETUP#line 104 "rclex.l"{ MAYBE_RETURN (GROUPBOX); }	YY_BREAKcase 29:YY_RULE_SETUP#line 105 "rclex.l"{ MAYBE_RETURN (LISTBOX); }	YY_BREAKcase 30:YY_RULE_SETUP#line 106 "rclex.l"{ MAYBE_RETURN (LTEXT); }	YY_BREAKcase 31:YY_RULE_SETUP#line 107 "rclex.l"{ MAYBE_RETURN (PUSHBOX); }	YY_BREAKcase 32:YY_RULE_SETUP#line 108 "rclex.l"{ MAYBE_RETURN (PUSHBUTTON); }	YY_BREAKcase 33:YY_RULE_SETUP#line 109 "rclex.l"{ MAYBE_RETURN (RADIOBUTTON); }	YY_BREAKcase 34:YY_RULE_SETUP#line 110 "rclex.l"{ MAYBE_RETURN (RTEXT); }	YY_BREAKcase 35:YY_RULE_SETUP#line 111 "rclex.l"{ MAYBE_RETURN (SCROLLBAR); }	YY_BREAKcase 36:YY_RULE_SETUP#line 112 "rclex.l"{ MAYBE_RETURN (STATE3); }	YY_BREAKcase 37:YY_RULE_SETUP#line 113 "rclex.l"{ MAYBE_RETURN (USERBUTTON); }	YY_BREAKcase 38:YY_RULE_SETUP#line 114 "rclex.l"{ MAYBE_RETURN (BEDIT); }	YY_BREAKcase 39:YY_RULE_SETUP#line 115 "rclex.l"{ MAYBE_RETURN (HEDIT); }	YY_BREAKcase 40:YY_RULE_SETUP#line 116 "rclex.l"{ MAYBE_RETURN (IEDIT); }	YY_BREAKcase 41:YY_RULE_SETUP#line 117 "rclex.l"{ MAYBE_RETURN (FONT); }	YY_BREAKcase 42:YY_RULE_SETUP#line 118 "rclex.l"{ MAYBE_RETURN (ICON); }	YY_BREAKcase 43:YY_RULE_SETUP#line 119 "rclex.l"{ MAYBE_RETURN (LANGUAGE); }	YY_BREAKcase 44:YY_RULE_SETUP#line 120 "rclex.l"{ MAYBE_RETURN (CHARACTERISTICS); }	YY_BREAKcase 45:YY_RULE_SETUP#line 121 "rclex.l"{ MAYBE_RETURN (VERSIONK); }	YY_BREAKcase 46:YY_RULE_SETUP#line 122 "rclex.l"{ MAYBE_RETURN (MENU); }	YY_BREAKcase 47:YY_RULE_SETUP#line 123 "rclex.l"{ MAYBE_RETURN (MENUEX); }	YY_BREAKcase 48:YY_RULE_SETUP#line 124 "rclex.l"{ MAYBE_RETURN (MENUITEM); }	YY_BREAKcase 49:YY_RULE_SETUP#line 125 "rclex.l"{ MAYBE_RETURN (SEPARATOR); }	YY_BREAKcase 50:YY_RULE_SETUP#line 126 "rclex.l"{ MAYBE_RETURN (POPUP); }	YY_BREAKcase 51:YY_RULE_SETUP#line 127 "rclex.l"{ MAYBE_RETURN (CHECKED); }	YY_BREAKcase 52:YY_RULE_SETUP#line 128 "rclex.l"{ MAYBE_RETURN (GRAYED); }	YY_BREAKcase 53:YY_RULE_SETUP#line 129 "rclex.l"{ MAYBE_RETURN (HELP); }	YY_BREAKcase 54:YY_RULE_SETUP#line 130 "rclex.l"{ MAYBE_RETURN (INACTIVE); }	YY_BREAKcase 55:YY_RULE_SETUP#line 131 "rclex.l"{ MAYBE_RETURN (MENUBARBREAK); }	YY_BREAKcase 56:YY_RULE_SETUP#line 132 "rclex.l"{ MAYBE_RETURN (MENUBREAK); }	YY_BREAKcase 57:YY_RULE_SETUP#line 133 "rclex.l"{ MAYBE_RETURN (MESSAGETABLE); }	YY_BREAKcase 58:YY_RULE_SETUP#line 134 "rclex.l"{ MAYBE_RETURN (RCDATA); }	YY_BREAKcase 59:YY_RULE_SETUP#line 135 "rclex.l"{ MAYBE_RETURN (STRINGTABLE); }	YY_BREAKcase 60:YY_RULE_SETUP#line 136 "rclex.l"{ MAYBE_RETURN (VERSIONINFO); }	YY_BREAKcase 61:YY_RULE_SETUP#line 137 "rclex.l"{ MAYBE_RETURN (FILEVERSION); }	YY_BREAKcase 62:YY_RULE_SETUP#line 138 "rclex.l"{ MAYBE_RETURN (PRODUCTVERSION); }	YY_BREAKcase 63:YY_RULE_SETUP#line 139 "rclex.l"{ MAYBE_RETURN (FILEFLAGSMASK); }	YY_BREAKcase 64:YY_RULE_SETUP#line 140 "rclex.l"{ MAYBE_RETURN (FILEFLAGS); }	YY_BREAKcase 65:YY_RULE_SETUP#line 141 "rclex.l"{ MAYBE_RETURN (FILEOS); }	YY_BREAKcase 66:YY_RULE_SETUP#line 142 "rclex.l"{ MAYBE_RETURN (FILETYPE); }	YY_BREAKcase 67:YY_RULE_SETUP#line 143 "rclex.l"{ MAYBE_RETURN (FILESUBTYPE); }	YY_BREAKcase 68:YY_RULE_SETUP#line 144 "rclex.l"{ MAYBE_RETURN (VALUE); }	YY_BREAKcase 69:YY_RULE_SETUP#line 145 "rclex.l"{ MAYBE_RETURN (MOVEABLE); }	YY_BREAKcase 70:YY_RULE_SETUP#line 146 "rclex.l"{ MAYBE_RETURN (FIXED); }	YY_BREAKcase 71:YY_RULE_SETUP#line 147 "rclex.l"{ MAYBE_RETURN (PURE); }	YY_BREAKcase 72:YY_RULE_SETUP#line 148 "rclex.l"{ MAYBE_RETURN (IMPURE); }	YY_BREAKcase 73:YY_RULE_SETUP#line 149 "rclex.l"{ MAYBE_RETURN (PRELOAD); }	YY_BREAKcase 74:YY_RULE_SETUP#line 150 "rclex.l"{ MAYBE_RETURN (LOADONCALL); }	YY_BREAKcase 75:YY_RULE_SETUP#line 151 "rclex.l"{ MAYBE_RETURN (DISCARDABLE); }	YY_BREAKcase 76:YY_RULE_SETUP#line 152 "rclex.l"{ MAYBE_RETURN (NOT); }	YY_BREAKcase 77:YY_RULE_SETUP#line 154 "rclex.l"{			  char *s, *send;			  /* This is a hack to let us parse version                             information easily.  */			  s = strchr (yytext, '"');			  ++s;			  send = strchr (s, '"');			  if (strncmp (s, "StringFileInfo",				       sizeof "StringFileInfo" - 1) == 0			      && s + sizeof "StringFileInfo" - 1 == send)			    MAYBE_RETURN (BLOCKSTRINGFILEINFO);			  else if (strncmp (s, "VarFileInfo",					    sizeof "VarFileInfo" - 1) == 0				   && s + sizeof "VarFileInfo" - 1 == send)			    MAYBE_RETURN (BLOCKVARFILEINFO);			  else			    {			      char *r;			      r = get_string (send - s + 1);			      strncpy (r, s, send - s);			      r[send - s] = '\0';			      yylval.s = r;			      MAYBE_RETURN (BLOCK);			    }			}	YY_BREAKcase 78:YY_RULE_SETUP#line 183 "rclex.l"{			  cpp_line (yytext);			}	YY_BREAKcase 79:YY_RULE_SETUP#line 187 "rclex.l"{			  yylval.i.val = strtoul (yytext, 0, 0);			  yylval.i.dword = 1;			  MAYBE_RETURN (NUMBER);			}	YY_BREAKcase 80:YY_RULE_SETUP#line 193 "rclex.l"{			  yylval.i.val = strtoul (yytext, 0, 0);			  yylval.i.dword = 0;			  MAYBE_RETURN (NUMBER);			}	YY_BREAKcase 81:YY_RULE_SETUP#line 199 "rclex.l"{			  char *s;			  unsigned long length;			  s = handle_quotes (yytext, &length);			  if (! rcdata_mode)			    {			      yylval.s = s;			      MAYBE_RETURN (QUOTEDSTRING);			    }			  else			    {			      yylval.ss.length = length;			      yylval.ss.s = s;			      MAYBE_RETURN (SIZEDSTRING);			    }			}	YY_BREAKcase 82:YY_RULE_SETUP#line 217 "rclex.l"{			  char *s;			  /* I rejected comma in a string in order to			     handle VIRTKEY, CONTROL in an accelerator			     resource.  This means that an unquoted			     file name can not contain a comma.  I			     don't know what rc permits.  */			  s = get_string (strlen (yytext) + 1);			  strcpy (s, yytext);			  yylval.s = s;			  MAYBE_RETURN (STRING);			}	YY_BREAKcase 83:YY_RULE_SETUP#line 232 "rclex.l"{ ++rc_lineno; }	YY_BREAKcase 84:YY_RULE_SETUP#line 233 "rclex.l"{ /* ignore whitespace */ }	YY_BREAKcase 85:YY_RULE_SETUP#line 234 "rclex.l"{ MAYBE_RETURN (*yytext); }	YY_BREAKcase 86:YY_RULE_SETUP#line 236 "rclex.l"ECHO;	YY_BREAK#line 1443 "lex.yy.c"case YY_STATE_EOF(INITIAL):	yyterminate();	case YY_END_OF_BUFFER:		{		/* Amount of text matched not including the EOB char. */		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;		/* Undo the effects of YY_DO_BEFORE_ACTION. */		*yy_cp = yy_hold_char;		YY_RESTORE_YY_MORE_OFFSET		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )			{			/* We're scanning a new file or input source.  It's			 * possible that this happened because the user			 * just pointed yyin at a new source and called			 * yylex().  If so, then we have to assure			 * consistency between yy_current_buffer and our			 * globals.  Here is the right place to do so, because			 * this is the first action (other than possibly a			 * back-up) that will match for the new input source.			 */			yy_n_chars = yy_current_buffer->yy_n_chars;			yy_current_buffer->yy_input_file = yyin;			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;			}		/* Note that here we test for yy_c_buf_p "<=" to the position		 * of the first EOB in the buffer, since yy_c_buf_p will		 * already have been incremented past the NUL character		 * (since all states make transitions on EOB to the		 * end-of-buffer state).  Contrast this with the test		 * in input().		 */		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )			{ /* This was really a NUL. */			yy_state_type yy_next_state;			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;			yy_current_state = yy_get_previous_state();			/* Okay, we're now positioned to make the NUL			 * transition.  We couldn't have			 * yy_get_previous_state() go ahead and do it			 * for us because it doesn't know how to deal			 * with the possibility of jamming (and we don't			 * want to build jamming into it because then it			 * will run more slowly).			 */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?