lexer.c

来自「CORBA上的libIDL源代码」· C语言 代码 · 共 2,203 行 · 第 1/5 页

C
2,203
字号
      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,      353,  353,  353,  353,  353,  353,  355,  359,  361,  353,      353,  354,  353,  353,  353,  353,  353,  353,  353,  353,      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,      353,  353,  353,  353,  353,  353,  353,  353,  353,  355,      359,  361,  353,  354,  353,  353,  353,  353,  353,  353,      353,  353,  353,  353,  353,  353,  353,  353,  353,  353,      353,  353,  353,  355,  359,  361,  354,  353,  353,  353,      353,  353,  353,  353,  353,  353,  353,  353,  369,  370,      371,  354,  353,  353,  353,  353,  353,  353,  369,  369,      370,  370,  369,  371,  371,  354,  353,  353,  353,  354,      347,  372,  372,  347,  372,  347,    0,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347    } ;static __IDL_const short int __IDL__nxt[966] =    {   0,       14,   15,   16,   17,   14,   14,   18,   14,   14,   14,       19,   20,   21,   22,   23,   24,   25,   26,   27,   27,       27,   27,   28,   27,   27,   29,   27,   27,   30,   27,       27,   14,   31,   32,   33,   34,   35,   36,   37,   27,       27,   38,   27,   39,   40,   41,   42,   27,   27,   43,       44,   45,   46,   47,   48,   27,   27,   14,   14,   49,       89,   49,   50,   51,   50,   51,   49,   70,   70,   50,       51,   52,   14,   15,   16,   14,   14,   14,   14,   53,       14,   14,   14,   14,   21,   14,   14,   14,   14,   14,       57,   58,   76,   76,   89,   60,   58,   14,   61,   63,       16,   59,   14,   55,   14,   89,   59,   91,   65,   16,       64,   66,   67,   72,   90,   89,  136,   72,   73,   64,       74,   75,   77,  135,  105,   78,  106,   89,   89,   14,       14,   14,   49,   16,   14,   50,   14,   14,   53,   14,       14,   14,   14,   21,   14,   14,   14,   14,   14,   79,       92,   84,   84,   89,   89,   89,   89,  136,   81,   82,       89,  110,   55,   14,  135,   89,   95,   89,   97,   89,       98,   89,   96,   89,   81,   82,  101,   99,  107,  120,       89,  108,   89,  100,   89,  102,  103,  111,   14,   14,       79,   89,   80,   80,  109,  121,  104,  112,  128,   81,       82,   89,  114,   89,  113,  122,  115,  152,  116,   83,       89,  117,   89,  123,  125,   81,   82,  126,  131,  229,       76,   76,  118,  135,  137,  119,  139,  138,  124,  140,      142,  134,  147,  135,   83,  148,  149,  143,   72,  150,       70,   70,   72,  163,  129,   76,   76,   79,   89,  155,      155,   89,   79,  153,  156,  156,   81,   82,   76,   76,       89,   81,   82,  159,  159,   81,  157,  168,  340,   89,       81,   82,   81,   82,  169,   89,  144,   81,   82,  164,      160,   81,  157,  161,  161,   89,   81,   82,   79,   89,       80,   80,   79,  165,   84,   84,   89,   81,   82,  167,       89,   81,   82,  170,   89,  171,   89,   89,   89,   89,       89,  176,  177,   81,   82,  173,   89,   81,   82,  172,      174,   89,   89,   89,  178,   89,  182,  175,   89,   89,      179,   89,   89,  185,  181,  180,   89,  188,   89,   89,      187,   89,  183,   89,  184,   89,  190,   89,  186,  128,      192,   89,   89,  197,  189,  128,  191,  134,  193,  125,      194,  196,  126,  204,  139,  152,  198,  140,  134,  195,      152,  135,  142,  134,  143,  142,  134,  134,  149,  143,      211,  150,  143,  143,   79,   89,  155,  155,   79,   89,      156,  156,  251,   81,   82,  129,  209,   81,   82,  210,      210,  129,  161,  161,  161,  161,  213,   89,   89,   81,       82,  153,  212,   81,   82,   89,  153,   89,  144,  159,      159,  144,   89,   89,  205,  215,   81,  157,  217,   89,       89,  221,  218,  216,   89,   89,  222,   89,   89,   89,      224,   89,   81,  157,  225,   89,  226,  219,  220,  223,       89,   89,   89,   89,   89,  228,   89,  232,  227,   89,      231,  230,   89,  235,   89,   89,   89,   89,   89,   89,      241,   89,  234,  238,   89,  233,  236,  243,  244,  237,      253,  242,   89,  245,  239,  240,  246,  134,  134,  210,      210,  210,  210,  204,  143,  250,   89,   89,   89,   89,       89,  254,   89,  256,   89,   89,   89,   89,  260,   89,      258,   89,   89,   89,   89,  267,  255,  259,   89,  248,      257,   89,   89,  264,  261,   89,  262,  268,  263,   89,      265,   89,  266,   89,  270,  269,  273,  271,  272,   89,       89,   89,  274,   89,  275,  134,   89,   89,  278,   89,      277,  143,   89,  286,  276,  279,   89,   89,  285,   89,       89,   89,   89,   89,  289,   89,  283,  291,  288,   89,      292,   89,  287,   89,  293,   89,   89,   89,   89,  290,      298,  295,  281,  301,  296,  300,  294,   89,  297,   89,      134,   89,   89,   89,   89,  299,  143,   89,   89,  313,      302,   89,  303,   89,  315,  309,  312,   89,   89,   89,       89,  308,  310,  311,  314,  316,   89,  318,  134,   89,       89,  317,  324,  325,  143,   89,  323,   89,  332,  134,      327,  328,  305,   89,   89,  333,   89,  335,  337,  134,      330,  339,   89,  326,   89,  333,   89,  338,  336,  320,      332,  134,  341,  341,  341,  341,  335,  333,  342,  330,      342,  343,  343,  343,  343,  346,  346,   89,  344,   89,      344,   89,  344,  346,  346,   89,   89,  322,  321,  319,      344,   54,   54,   54,   54,   54,   54,   54,   54,   56,       56,   56,   56,   56,   56,   56,   56,   62,   62,   62,       62,   62,   62,   62,   62,   69,   69,   69,   69,   69,       69,   69,   69,   71,   71,   71,   71,   71,   71,   71,       71,   88,   88,   88,   88,   93,   93,   93,   93,  127,      127,   89,  127,  127,  127,  127,  127,  132,  132,  132,       89,  132,  132,  132,  132,  133,  133,  133,  133,  134,      134,  134,  134,  134,  134,  134,  134,  141,  141,  141,      141,  141,  141,  141,  141,  145,  145,   89,  145,  145,      145,  145,  145,  151,  151,   89,  151,  151,  151,  151,      151,  158,  158,   89,  158,  158,  158,  158,  158,  162,      162,   89,   89,   89,   89,  200,  200,   89,  200,  200,      200,  200,  200,  203,  203,  203,  203,  203,  203,  203,      203,  206,  206,   89,  206,  206,  206,  206,  206,  208,      208,   89,  208,  208,  208,  208,  208,  329,  329,  307,      329,  329,  329,  329,  329,  331,  331,  331,  331,  331,      331,  331,  331,  334,  334,   89,  334,  334,  334,  334,      334,  345,  345,  345,  306,  345,  345,  304,   89,   89,       89,   89,   89,   89,   89,   89,  284,   89,  282,  280,       89,   89,   89,   89,   89,  252,   89,  249,  247,   89,       89,  214,  207,  146,  135,  135,  202,  201,  199,  166,       89,   68,  154,  146,  135,  135,  130,   94,   89,   87,       86,   85,   68,  347,   52,   13,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347    } ;static __IDL_const short int __IDL__chk[966] =    {   0,        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,      339,    4,    2,    2,    4,    4,   10,   17,   17,   10,       10,    4,    5,    5,    5,    5,    5,    5,    5,    5,        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,        7,    7,   20,   20,  338,    8,    8,    7,    8,   11,       11,    7,    8,    5,    5,   29,    8,   29,   12,   12,       11,   12,   12,   18,   28,   37,   57,   18,   19,   12,       19,   19,   21,   57,   37,   21,   37,  337,   28,    5,        5,    6,    6,    6,    6,    6,    6,    6,    6,    6,        6,    6,    6,    6,    6,    6,    6,    6,    6,   23,       30,   23,   23,   32,   33,   45,   30,  136,   23,   23,       41,   41,    6,    6,  136,   38,   32,   39,   33,   34,       34,   35,   32,   36,   23,   23,   35,   34,   38,   45,       40,   39,   46,   34,   42,   35,   36,   42,    6,    6,       22,   47,   22,   22,   40,   46,   36,   42,   50,   22,       22,   43,   43,   44,   42,   47,   43,   66,   44,   22,       48,   44,  181,   48,   49,   22,   22,   49,   52,  181,       52,   52,   44,   59,   59,   44,   60,   59,   48,   60,       61,   61,   64,   60,   22,   64,   65,   61,   71,   65,       69,   69,   71,   90,   50,   73,   73,   74,   96,   74,       74,   90,   75,   66,   75,   75,   74,   74,   76,   76,       97,   75,   75,   79,   79,   76,   76,   96,  336,   91,       79,   79,   74,   74,   97,   95,   61,   75,   75,   91,       82,   76,   76,   82,   82,   98,   79,   79,   80,  105,       80,   80,   84,   92,   84,   84,   92,   80,   80,   95,      102,   84,   84,   98,   99,   99,  100,  103,  104,  101,      106,  104,  105,   80,   80,  101,  107,   84,   84,  100,      102,  108,  109,  110,  106,  111,  109,  103,  112,  113,      107,  114,  117,  112,  108,  107,  115,  115,  116,  118,      114,  119,  110,  120,  111,  123,  117,  124,  113,  126,      119,  121,  122,  123,  116,  128,  118,  138,  120,  125,      121,  122,  125,  138,  139,  150,  124,  139,  141,  121,      152,  139,  140,  140,  141,  142,  142,  144,  149,  140,      163,  149,  142,  144,  155,  163,  155,  155,  156,  212,      156,  156,  212,  155,  155,  126,  157,  156,  156,  157,      157,  128,  160,  160,  161,  161,  165,  164,  168,  155,      155,  150,  164,  156,  156,  171,  152,  165,  140,  159,      159,  142,  169,  170,  144,  168,  159,  159,  170,  172,      173,  173,  171,  169,  174,  176,  174,  175,  179,  177,      176,  182,  159,  159,  177,  178,  178,  172,  172,  175,      180,  183,  184,  185,  187,  180,  189,  184,  179,  188,      183,  182,  190,  188,  191,  193,  192,  194,  195,  198,      193,  215,  187,  191,  196,  185,  189,  195,  196,  190,      215,  194,  197,  197,  191,  192,  198,  203,  205,  209,      209,  210,  210,  203,  205,  211,  216,  219,  220,  222,      221,  216,  224,  220,  225,  226,  211,  227,  225,  231,      222,  228,  230,  232,  233,  233,  219,  224,  237,  205,      221,  235,  234,  230,  226,  238,  227,  234,  228,  236,      231,  245,  232,  239,  236,  235,  239,  237,  238,  240,      241,  242,  240,  243,  241,  248,  246,  251,  245,  256,      243,  248,  254,  254,  242,  246,  253,  257,  253,  258,      259,  263,  267,  268,  258,  264,  251,  263,  257,  265,      264,  269,  256,  272,  265,  270,  273,  274,  275,  259,      272,  268,  248,  275,  269,  274,  267,  277,  270,  279,      281,  285,  286,  287,  288,  273,  281,  290,  291,  291,      277,  297,  279,  296,  297,  286,  290,  308,  312,  301,      303,  285,  287,  288,  296,  301,  302,  303,  305,  314,      313,  302,  312,  313,  305,  315,  308,  317,  320,  320,      315,  317,  281,  323,  324,  320,  325,  335,  323,  331,      330,  325,  328,  314,  327,  331,  326,  324,  322,  305,      332,  332,  340,  340,  341,  341,  321,  332,  340,  319,      341,  342,  342,  343,  343,  345,  345,  318,  342,  316,      343,  311,  345,  346,  346,  310,  309,  307,  306,  304,      346,  348,  348,  348,  348,  348,  348,  348,  348,  349,      349,  349,  349,  349,  349,  349,  349,  350,  350,  350,      350,  350,  350,  350,  350,  351,  351,  351,  351,  351,      351,  351,  351,  352,  352,  352,  352,  352,  352,  352,      352,  353,  353,  353,  353,  354,  354,  354,  354,  355,      355,  300,  355,  355,  355,  355,  355,  356,  356,  356,      299,  356,  356,  356,  356,  357,  357,  357,  357,  358,      358,  358,  358,  358,  358,  358,  358,  359,  359,  359,      359,  359,  359,  359,  359,  360,  360,  298,  360,  360,      360,  360,  360,  361,  361,  295,  361,  361,  361,  361,      361,  362,  362,  294,  362,  362,  362,  362,  362,  363,      363,  364,  364,  364,  364,  365,  365,  293,  365,  365,      365,  365,  365,  366,  366,  366,  366,  366,  366,  366,      366,  367,  367,  292,  367,  367,  367,  367,  367,  368,      368,  289,  368,  368,  368,  368,  368,  369,  369,  284,      369,  369,  369,  369,  369,  370,  370,  370,  370,  370,      370,  370,  370,  371,  371,  283,  371,  371,  371,  371,      371,  372,  372,  372,  282,  372,  372,  280,  278,  276,      271,  266,  262,  261,  260,  255,  252,  250,  249,  247,      244,  229,  223,  218,  217,  214,  213,  207,  199,  186,      167,  166,  153,  146,  137,  134,  132,  131,  129,   94,       88,   68,   67,   63,   58,   56,   51,   31,   27,   26,       25,   24,   15,   13,    3,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,      347,  347,  347,  347,  347    } ;static __IDL__state_type __IDL__last_accepting_state;static char *__IDL__last_accepting_cpos;/* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */#define REJECT reject_used_but_not_detected#define __IDL_more() __IDL_more_used_but_not_detected#define YY_MORE_ADJ 0#define YY_RESTORE_YY_MORE_OFFSETchar *__IDL_text;#line 1 "./lexer.l"#define INITIAL 0/***************************************************************************    lexer.l (IDL lex scanner)    Copyright (C) 1998, 1999 Andrew T. Veliath    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Library General Public License for more details.    You should have received a copy of the GNU Library General Public    License along with this library; if not, write to the Free    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.    $Id: lexer.l,v 1.71 1999/07/30 15:52:52 sopwith Exp $***************************************************************************/#line 25 "./lexer.l"#include <assert.h>#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>#include "rename.h"#include "util.h"#include "parser.h"#ifdef XP_MAC#  include <unix.h>#  define YY_NEVER_INTERACTIVE 1#endif/* Eliminate warning */#define YY_NO_UNPUT 1#define YY_INPUT(buf,result,the_max_size)	do {				\	if (__IDL_inputcb == NULL) {						\		if ((result = fread (buf, 1, the_max_size, __IDL_in)) == YY_NULL &&	\		    ferror (__IDL_in))						\			YY_FATAL_ERROR ("input in scanner failed");		\	} else {								\		union IDL_input_data data;					\										\		data.fill.buffer = buf;						\		data.fill.max_size = the_max_size;				\		result = (*__IDL_inputcb) (IDL_INPUT_REASON_FILL, &data,	\					   __IDL_inputcb_user_data);		\		if (result < 0)							\			YY_FATAL_ERROR ("input callback returned failure");	\	}									\} while (0)#define tokreturn(token)			do {	\	__IDL_prev_token_line = __IDL_cur_token_line;	\	__IDL_cur_token_line = __IDL_cur_line;		\	return token;					\} while (0)#define SELECT_START				\	/* Parser driven start conditions */	\	if (__IDL_flagsi & IDLFP_PROPERTIES)	\		BEGIN (PROP);			\	else if (__IDL_flagsi & IDLFP_NATIVE)	\		BEGIN (NATIVE);			\	/* Global syntax start conditions */	\	else if (__IDL_flags & IDLF_XPIDL)	\		BEGIN (XP);			\	else if (__IDL_flags & IDLF_CODEFRAGS)	\		BEGIN (CFRG);#define SELECT_RESTART				\	SELECT_START				\	else					\		BEGIN (INITIAL);extern void		__IDL_do_pragma			(const char *s);static int		count_nl			(const char *s);#ifdef YYDEBUGextern int				__IDL_debug;#endifint					__IDL_prev_token_line;int					__IDL_cur_token_line;static int				warn_underscores;static char *				codefrag_desc;static GSList *				codefrag_list;static GSList *				codefrag_list_tail;#define XP 1#define PROP 2#define NATIVE 3#define CFRG 4#define CFRGX 5/* Macros after this point can all be overridden by user definitions in * section 1. */#ifndef YY_SKIP_YYWRAP#ifdef __cplusplusextern "C" int __IDL_wrap YY_PROTO(( void ));#elseextern int __IDL_wrap YY_PROTO(( void ));#endif#endif#ifndef YY_NO_UNPUTstatic void __IDL_unput YY_PROTO(( int c, char *buf_ptr ));#endif#ifndef __IDL_text_ptrstatic void __IDL__flex_strncpy YY_PROTO(( char *, __IDL_const char *, int ));#endif#ifdef YY_NEED_STRLENstatic int __IDL__flex_strlen YY_PROTO(( __IDL_const char * ));#endif#ifndef YY_NO_INPUT#ifdef __cplusplusstatic int __IDL_input YY_PROTO(( void ));#elsestatic int input YY_PROTO(( void ));#endif#endif#if YY_STACK_USEDstatic int __IDL__start_stack_ptr = 0;static int __IDL__start_stack_depth = 0;static int *__IDL__start_stack = 0;#ifndef YY_NO_PUSH_STATEstatic void __IDL__push_state YY_PROTO(( int new_state ));#endif#ifndef YY_NO_POP_STATEstatic void __IDL__pop_state YY_PROTO(( void ));#endif#ifndef YY_NO_TOP_STATEstatic int __IDL__top_state YY_PROTO(( void ));#endif#else#define YY_NO_PUSH_STATE 1#define YY_NO_POP_STATE 1#define YY_NO_TOP_STATE 1#endif#ifdef YY_MALLOC_DECLYY_MALLOC_DECL#else#if __STDC__#ifndef __cplusplus#include <stdlib.h>#endif#else/* Just try to get by without declaring the routines.  This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */#endif#endif/* Amount of stuff to slurp up with each read. */#ifndef YY_READ_BUF_SIZE#define YY_READ_BUF_SIZE 8192#endif/* Copy whatever the last rule matched to the standard output. */#ifndef ECHO/* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */#define ECHO (void) fwrite( __IDL_text, __IDL_leng, 1, __IDL_out )#endif/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL, * is returned in "result". */#ifndef YY_INPUT

⌨️ 快捷键说明

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