⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lexer.c

📁 CORBA上的libIDL源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#define YY_INPUT(buf,result,max_size) \	if ( __IDL__current_buffer->__IDL__is_interactive ) \		{ \		int c = '*', n; \		for ( n = 0; n < max_size && \			     (c = getc( __IDL_in )) != EOF && c != '\n'; ++n ) \			buf[n] = (char) c; \		if ( c == '\n' ) \			buf[n++] = (char) c; \		if ( c == EOF && ferror( __IDL_in ) ) \			YY_FATAL_ERROR( "input in flex scanner failed" ); \		result = n; \		} \	else if ( ((result = fread( buf, 1, max_size, __IDL_in )) == 0) \		  && ferror( __IDL_in ) ) \		YY_FATAL_ERROR( "input in flex scanner failed" );#endif/* No semi-colon after return; correct usage is to write "__IDL_terminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */#ifndef __IDL_terminate#define __IDL_terminate() return YY_NULL#endif/* Number of entries by which start-condition stack grows. */#ifndef YY_START_STACK_INCR#define YY_START_STACK_INCR 25#endif/* Report a fatal error. */#ifndef YY_FATAL_ERROR#define YY_FATAL_ERROR(msg) __IDL__fatal_error( msg )#endif/* Default declaration of generated scanner - a define so the user can * easily add parameters. */#ifndef YY_DECL#define YY_DECL int __IDL_lex YY_PROTO(( void ))#endif/* Code executed at the beginning of each rule, after __IDL_text and __IDL_leng * have been set up. */#ifndef YY_USER_ACTION#define YY_USER_ACTION#endif/* Code executed at the end of each rule. */#ifndef YY_BREAK#define YY_BREAK break;#endif#define YY_RULE_SETUP \	if ( __IDL_leng > 0 ) \		__IDL__current_buffer->__IDL__at_bol = \				(__IDL_text[__IDL_leng - 1] == '\n'); \	YY_USER_ACTIONYY_DECL	{	register __IDL__state_type __IDL__current_state;	register char *__IDL__cp, *__IDL__bp;	register int __IDL__act;#line 127 "./lexer.l"	SELECT_START;	if ( __IDL__init )		{		__IDL__init = 0;#ifdef YY_USER_INIT		YY_USER_INIT;#endif		if ( ! __IDL__start )			__IDL__start = 1;	/* first start state */		if ( ! __IDL_in )			__IDL_in = stdin;		if ( ! __IDL_out )			__IDL_out = stdout;		if ( ! __IDL__current_buffer )			__IDL__current_buffer =				__IDL__create_buffer( __IDL_in, YY_BUF_SIZE );		__IDL__load_buffer_state();		}	while ( 1 )		/* loops until end-of-file is reached */		{		__IDL__cp = __IDL__c_buf_p;		/* Support of __IDL_text. */		*__IDL__cp = __IDL__hold_char;		/* __IDL__bp points to the position in __IDL__ch_buf of the start of		 * the current run.		 */		__IDL__bp = __IDL__cp;		__IDL__current_state = __IDL__start;		__IDL__current_state += YY_AT_BOL();__IDL__match:		do			{			register YY_CHAR __IDL__c = __IDL__ec[YY_SC_TO_UI(*__IDL__cp)];			if ( __IDL__accept[__IDL__current_state] )				{				__IDL__last_accepting_state = __IDL__current_state;				__IDL__last_accepting_cpos = __IDL__cp;				}			while ( __IDL__chk[__IDL__base[__IDL__current_state] + __IDL__c] != __IDL__current_state )				{				__IDL__current_state = (int) __IDL__def[__IDL__current_state];				if ( __IDL__current_state >= 348 )					__IDL__c = __IDL__meta[(unsigned int) __IDL__c];				}			__IDL__current_state = __IDL__nxt[__IDL__base[__IDL__current_state] + (unsigned int) __IDL__c];			++__IDL__cp;			}		while ( __IDL__base[__IDL__current_state] != 906 );__IDL__find_action:		__IDL__act = __IDL__accept[__IDL__current_state];		if ( __IDL__act == 0 )			{ /* have to back up */			__IDL__cp = __IDL__last_accepting_cpos;			__IDL__current_state = __IDL__last_accepting_state;			__IDL__act = __IDL__accept[__IDL__current_state];			}		YY_DO_BEFORE_ACTION;do_action:	/* This label is used only to access EOF actions. */		switch ( __IDL__act )	{ /* beginning of action switch */			case 0: /* must back up */			/* undo the effects of YY_DO_BEFORE_ACTION */			*__IDL__cp = __IDL__hold_char;			__IDL__cp = __IDL__last_accepting_cpos;			__IDL__current_state = __IDL__last_accepting_state;			goto __IDL__find_action;case 1:YY_RULE_SETUP#line 131 "./lexer.l"{	char *s = __IDL_text + 2;	while (isspace (*s)) ++s;	codefrag_desc = g_strdup (s);	codefrag_list = codefrag_list_tail = NULL;	if (!(__IDL_flags & IDLF_XPIDL || __IDL_flags & IDLF_CODEFRAGS))		__IDL_error ("Code fragment syntax not enabled");	else		BEGIN (CFRGX);}	YY_BREAKcase 2:YY_RULE_SETUP#line 143 "./lexer.l"{	__IDL_lval.tree = IDL_codefrag_new (codefrag_desc, codefrag_list);	tokreturn (TOK_CODEFRAG);}	YY_BREAKcase 3:YY_RULE_SETUP#line 147 "./lexer.l"{	char *s;	GSList *slist;	s = g_strdup (__IDL_text);	slist = g_slist_alloc ();	slist->data = s;	if (codefrag_list == NULL) {		codefrag_list = slist;		codefrag_list_tail = slist;	} else {		codefrag_list_tail->next = slist;		codefrag_list_tail = slist;	}}	YY_BREAKcase 4:YY_RULE_SETUP#line 163 "./lexer.l"{	int n;	char *p = __IDL_text;	char *s;	while (isspace (*p) || *p == '#') ++p;	s = p;	sscanf (p, "%*6s%n", &n); s += n;	while (isspace (*s)) ++s;	__IDL_do_pragma (s);}	YY_BREAKcase 5:YY_RULE_SETUP#line 175 "./lexer.l"{	char *starttext;	char *filename;	char *filename2;	int line;	starttext = __IDL_text;	while (isspace (*starttext)) ++starttext;	filename = g_malloc (strlen (starttext) + 1);	sscanf (starttext, "# %d %s", &line, filename);	if (*filename == '"') {		filename2 = g_strdup (filename + 1);		filename2[strlen (filename) - 2] = 0;		g_free (filename);	} else		filename2 = filename;	IDL_file_set (filename2, line);	g_free (filename2);}	YY_BREAKcase 6:YY_RULE_SETUP#line 198 "./lexer.l";	YY_BREAKcase 7:YY_RULE_SETUP#line 199 "./lexer.l"{	sscanf (__IDL_text, "%" IDL_LL "o", &__IDL_lval.integer);	tokreturn (TOK_INTEGER);}	YY_BREAKcase 8:YY_RULE_SETUP#line 203 "./lexer.l"{	sscanf (__IDL_text, "%" IDL_LL "d", &__IDL_lval.integer);	tokreturn (TOK_INTEGER);}	YY_BREAKcase 9:YY_RULE_SETUP#line 207 "./lexer.l"{	sscanf (__IDL_text, "%" IDL_LL "u", &__IDL_lval.integer);	tokreturn (TOK_INTEGER);}	YY_BREAKcase 10:YY_RULE_SETUP#line 211 "./lexer.l"{	sscanf (__IDL_text + 2, "%" IDL_LL "x", &__IDL_lval.integer);	tokreturn (TOK_INTEGER);}	YY_BREAKcase 11:YY_RULE_SETUP#line 215 "./lexer.l"{	__IDL_lval.str = g_strdup (__IDL_text);	tokreturn (TOK_FIXEDP);}	YY_BREAKcase 12:YY_RULE_SETUP#line 219 "./lexer.l"{	__IDL_lval.floatp = atof (__IDL_text);	tokreturn (TOK_FLOATP);}	YY_BREAKcase 13:YY_RULE_SETUP#line 223 "./lexer.l"tokreturn (TOK_FALSE);	YY_BREAKcase 14:YY_RULE_SETUP#line 224 "./lexer.l"tokreturn (TOK_OBJECT);	YY_BREAKcase 15:YY_RULE_SETUP#line 225 "./lexer.l"tokreturn (TOK_TRUE);	YY_BREAKcase 16:YY_RULE_SETUP#line 226 "./lexer.l"tokreturn (TOK_ANY);	YY_BREAKcase 17:YY_RULE_SETUP#line 227 "./lexer.l"tokreturn (TOK_ATTRIBUTE);	YY_BREAKcase 18:YY_RULE_SETUP#line 228 "./lexer.l"tokreturn (TOK_BOOLEAN);	YY_BREAKcase 19:YY_RULE_SETUP#line 229 "./lexer.l"tokreturn (TOK_CASE);	YY_BREAKcase 20:YY_RULE_SETUP#line 230 "./lexer.l"tokreturn (TOK_CHAR);	YY_BREAKcase 21:YY_RULE_SETUP#line 231 "./lexer.l"tokreturn (TOK_CONST);	YY_BREAKcase 22:YY_RULE_SETUP#line 232 "./lexer.l"tokreturn (TOK_CONTEXT);	YY_BREAKcase 23:YY_RULE_SETUP#line 233 "./lexer.l"tokreturn (TOK_DEFAULT);	YY_BREAKcase 24:YY_RULE_SETUP#line 234 "./lexer.l"tokreturn (TOK_DOUBLE);	YY_BREAKcase 25:YY_RULE_SETUP#line 235 "./lexer.l"tokreturn (TOK_ENUM);	YY_BREAKcase 26:YY_RULE_SETUP#line 236 "./lexer.l"tokreturn (TOK_EXCEPTION);	YY_BREAKcase 27:YY_RULE_SETUP#line 237 "./lexer.l"tokreturn (TOK_FIXED);	YY_BREAKcase 28:YY_RULE_SETUP#line 238 "./lexer.l"tokreturn (TOK_FLOAT);	YY_BREAKcase 29:YY_RULE_SETUP#line 239 "./lexer.l"tokreturn (TOK_IN);	YY_BREAKcase 30:YY_RULE_SETUP#line 240 "./lexer.l"tokreturn (TOK_INOUT);	YY_BREAKcase 31:YY_RULE_SETUP#line 241 "./lexer.l"tokreturn (TOK_INTERFACE);	YY_BREAKcase 32:YY_RULE_SETUP#line 242 "./lexer.l"tokreturn (TOK_LONG);	YY_BREAKcase 33:YY_RULE_SETUP#line 243 "./lexer.l"tokreturn (TOK_MODULE);	YY_BREAKcase 34:YY_RULE_SETUP#line 244 "./lexer.l"tokreturn (TOK_NATIVE);	YY_BREAKcase 35:YY_RULE_SETUP#line 245 "./lexer.l"tokreturn (TOK_OCTET);	YY_BREAKcase 36:YY_RULE_SETUP#line 246 "./lexer.l"tokreturn (TOK_ONEWAY);	YY_BREAKcase 37:YY_RULE_SETUP#line 247 "./lexer.l"tokreturn (TOK_OUT);	YY_BREAKcase 38:YY_RULE_SETUP#line 248 "./lexer.l"tokreturn (TOK_RAISES);	YY_BREAKcase 39:YY_RULE_SETUP#line 249 "./lexer.l"tokreturn (TOK_READONLY);	YY_BREAKcase 40:YY_RULE_SETUP#line 250 "./lexer.l"tokreturn (TOK_SEQUENCE);	YY_BREAKcase 41:YY_RULE_SETUP#line 251 "./lexer.l"tokreturn (TOK_SHORT);	YY_BREAKcase 42:

⌨️ 快捷键说明

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