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

📄 scanner.c

📁 这是一个Linux下的集成开发环境
💻 C
📖 第 1 页 / 共 4 页
字号:
	    } else {	       yyChBufferStart = yyChBufferIndexReg;	    }	    yyChBufferStart2 = (char *) yyChBufferStart;						/* extend buffer if necessary */	    if (yyChBufferFree < yyChBufferSize >> 3 /* / 8 */ ) {	       register unsigned long yyDelta;	       register unsigned char * yyOldChBufferPtr = yyChBufferPtr;	       ExtendArray ((char * *) & yyChBufferPtr, & yyChBufferSize,				(unsigned long) sizeof (char));	       if (yyChBufferPtr == NULL) yyErrorMessage (1);	       yyDelta = yyChBufferPtr - yyOldChBufferPtr;	       yyChBufferStart	+= yyDelta;	       yyLineStart	+= yyDelta;	       TokenPtr	+= yyDelta;	       yyChBufferStart2	 = (char *) yyChBufferStart;	       yyChBufferFree = Exp2 (Log2 (yyChBufferSize - 4 -			yyMaxAlign - TokenLength));	       if (yyStateStackSize < yyChBufferSize) {		  yyStateRange * yyOldStateStack = yyStateStack;		  ExtendArray ((char * *) & yyStateStack, & yyStateStackSize,				   (unsigned long) sizeof (yyStateRange));		  if (yyStateStack == NULL) yyErrorMessage (1);		  yyStatePtr	+= yyStateStack - yyOldStateStack;	       }	    }						/* read buffer and restart */	    yyChBufferIndex = yyChBufferIndexReg = yyChBufferStart;	    yyFileOffset += yyBytesRead;	    yyBytesRead = GetLine (yySourceFile,				(char *) yyChBufferIndex, (int) yyChBufferFree);	    if (yyBytesRead <= 0) { yyBytesRead = 0; yyEof = rtrue; }	    yyChBufferStart [yyBytesRead    ] = yyEobCh;	    yyChBufferStart [yyBytesRead + 1] = '\0';	    goto yyContinue;	 }	 if (TokenLength == 0) {		/* end of file reached */	    yySetPosition	    CloseFile ();	    if (yyFileStackPtr == yyFileStack) {/* line 126 "tcl.rex" */ EOF_reached = rtrue; return 14; 	    }	    if (yyFileStackPtr == yyFileStack) return EofToken;	    goto yyBegin;	 }	 break;      default:	 yyErrorMessage (0);      }   }}static void yyInitialize ARGS ((void))   {      if (yyFileStackSize == 0) {	 yyStateStackSize = yyInitBufferSize;	 MakeArray ((char * *) & yyStateStack, & yyStateStackSize,		       (unsigned long) sizeof (yyStateRange));	 if (yyStateStack == NULL) yyErrorMessage (1);	 yyStateStack [0] = yyDefaultState;	 yyFileStackSize = yyInitFileStackSize;	 MakeArray ((char * *) & yyFileStack, & yyFileStackSize,			(unsigned long) sizeof (yytFileStack));	 if (yyFileStack == NULL) yyErrorMessage (1);	 yyFileStackPtr = yyFileStack;      }      if (yyFileStackPtr >= yyFileStack + yyFileStackSize - 1) {	 unsigned long yyyFileStackPtr = yyFileStackPtr - yyFileStack;	 ExtendArray ((char * *) & yyFileStack, & yyFileStackSize,			   (unsigned long) sizeof (yytFileStack));	 if (yyFileStack == NULL) yyErrorMessage (1);	 yyFileStackPtr = yyFileStack + yyyFileStackPtr;      }      yyFileStackPtr ++;			/* push file */      yyFileStackPtr->yySourceFile	= yySourceFile		;      yyFileStackPtr->yyEof		= yyEof			;      yyFileStackPtr->yyChBufferPtr	= yyChBufferPtr		;      yyFileStackPtr->yyChBufferStart	= yyChBufferStart	;      yyFileStackPtr->yyChBufferSize	= yyChBufferSize	;      yyFileStackPtr->yyChBufferIndex	= yyChBufferIndex	;      yyFileStackPtr->yyBytesRead	= yyBytesRead		;      yyFileStackPtr->yyFileOffset	= yyFileOffset		;      yyFileStackPtr->yyLineCount	= yyLineCount		;      yyFileStackPtr->yyLineStart	= yyLineStart		;						/* initialize file state */      yyChBufferSize	   = yyInitBufferSize;      MakeArray ((char * *) & yyChBufferPtr, & yyChBufferSize,			(unsigned long) sizeof (char));      if (yyChBufferPtr == NULL) yyErrorMessage (1);      yyChBufferStart	   = & yyChBufferPtr [yyMaxAlign];      yyChBufferStart2	   = (char *) yyChBufferStart;      yyChBufferStart [-1] = yyEolCh;		/* begin of line indicator */      yyChBufferStart [ 0] = yyEobCh;		/* end of buffer sentinel */      yyChBufferStart [ 1] = '\0';      yyChBufferIndex	   = yyChBufferStart;      TokenPtr	   = (char *) yyChBufferStart;      yyEof		   = rfalse;      yyBytesRead	   = 0;      yyFileOffset	   = 0;      yyLineCount	   = 1;      yyLineStart	   = & yyChBufferStart [-1];   }void BeginFile#if defined __STDC__ | defined __cplusplus   (char * yyFileName)#else   (yyFileName) char * yyFileName;#endif   {      yyInitialize ();      yySourceFile = yyFileName == NULL ? StdIn : BeginSource (yyFileName);      if (yySourceFile < 0) yyErrorMessage (3);   }void CloseFile ARGS ((void))   {      if (yyFileStackPtr == yyFileStack) yyErrorMessage (2);      CloseSource (yySourceFile);      ReleaseArray ((char * *) & yyChBufferPtr, & yyChBufferSize,			(unsigned long) sizeof (char));						/* pop file */      yySourceFile	= yyFileStackPtr->yySourceFile		;      yyEof		= yyFileStackPtr->yyEof			;      yyChBufferPtr	= yyFileStackPtr->yyChBufferPtr		;      yyChBufferStart	= yyFileStackPtr->yyChBufferStart	;      yyChBufferStart2	= (char *) yyChBufferStart		;      yyChBufferSize	= yyFileStackPtr->yyChBufferSize	;      yyChBufferIndex	= yyFileStackPtr->yyChBufferIndex	;      yyBytesRead	= yyFileStackPtr->yyBytesRead		;      yyFileOffset	= yyFileStackPtr->yyFileOffset		;      yyLineCount	= yyFileStackPtr->yyLineCount		;      yyLineStart	= yyFileStackPtr->yyLineStart		;      yyFileStackPtr --;      if (yyFileStackPtr == yyFileStack) ResetScanner ();   }#ifdef xxGetWordint GetWord#if defined __STDC__ | defined __cplusplus   (char * yyWord)#else   (yyWord) char * yyWord;#endif   {      register char * yySource		= TokenPtr;      register char * yyTarget			= yyWord;      register char * yyChBufferIndexReg	= (char *) yyChBufferIndex;      while (yySource < yyChBufferIndexReg)	 * yyTarget ++ = * yySource ++;      * yyTarget = '\0';      return (int) (yyChBufferIndexReg - TokenPtr);   }#endif#ifdef xxGetLowerint GetLower#if defined __STDC__ | defined __cplusplus   (char * yyWord)#else   (yyWord) char * yyWord;#endif   {      register unsigned char * yySource	= (unsigned char *) TokenPtr;      register unsigned char * yyTarget		= (unsigned char *) yyWord;      register unsigned char * yyChBufferIndexReg = yyChBufferIndex;      while (yySource < yyChBufferIndexReg)	 * yyTarget ++ = yyToLower [* yySource ++];      * yyTarget = '\0';      return (int) (yyChBufferIndexReg - (unsigned char *) TokenPtr);   }#endif#ifdef xxGetUpperint GetUpper#if defined __STDC__ | defined __cplusplus   (char * yyWord)#else   (yyWord) char * yyWord;#endif   {      register unsigned char * yySource	= (unsigned char *) TokenPtr;      register unsigned char * yyTarget		= (unsigned char *) yyWord;      register unsigned char * yyChBufferIndexReg = yyChBufferIndex;      while (yySource < yyChBufferIndexReg)	 * yyTarget ++ = yyToUpper [* yySource ++];      * yyTarget = '\0';      return (int) (yyChBufferIndexReg - (unsigned char *) TokenPtr);   }#endif#ifdef xxinputstatic char input ARGS ((void))   {      if (yyChBufferIndex == & yyChBufferStart [yyBytesRead]) {	 if (! yyEof) {	    yyLineStart -= yyBytesRead;	    yyChBufferIndex = yyChBufferStart = yyChBufferPtr;	    yyChBufferStart2 = (char *) yyChBufferStart;	    yyFileOffset += yyBytesRead;	    yyBytesRead = GetLine (yySourceFile, (char *) yyChBufferIndex,	       (int) Exp2 (Log2 (yyChBufferSize)));	    if (yyBytesRead <= 0) { yyBytesRead = 0; yyEof = rtrue; }	    yyChBufferStart [yyBytesRead    ] = yyEobCh;	    yyChBufferStart [yyBytesRead + 1] = '\0';	 }      }      if (yyChBufferIndex == & yyChBufferStart [yyBytesRead]) return '\0';      else return * yyChBufferIndex ++;   }#endifstatic void unput#if defined __STDC__ | defined __cplusplus   (char yyc)#else   (yyc) char yyc;#endif   { * (-- yyChBufferIndex) = yyc; }static void yyLess#if defined __STDC__ | defined __cplusplus   (int yyn)#else   (yyn) int yyn;#endif   { yyChBufferIndex -= TokenLength - yyn; TokenLength = yyn; }void BeginScanner ARGS ((void))   {/* line 128 "tcl.rex" */   EOF_reached	= rfalse;   first_word	= rtrue;   KlLvl	= 0;   KPop		= 'X';   KlStack [0]	= 'X';   yyStart (STD);   }void CloseScanner ARGS ((void))   {   }void ResetScanner ARGS ((void))   {      yyChBufferPtr	= yyInitChBuffer;      yyChBufferSize	= 0;      if (yyStateStackSize != 0)	 ReleaseArray ((char * *) & yyStateStack, & yyStateStackSize,			(unsigned long) sizeof (yyStateRange));      yyStateStack	= yyInitStateStack;      yyStateStackSize	= 0;      if (yyFileStackSize != 0)	 ReleaseArray ((char * *) & yyFileStack, & yyFileStackSize,			(unsigned long) sizeof (yytFileStack));      yyFileStackSize	= 0;#if defined xxyyPush | defined xxyyPop      if (yyStStStackSize != 0)	 ReleaseArray ((char * *) & yyStStStackPtr, & yyStStStackSize,			(unsigned long) sizeof (yyStateRange));      yyStStStackSize	= 0;      yyStStStackIdx	= 0;#endif      yyStartState	= STD;      yyPreviousStart	= STD;      yySourceFile	= StdIn;   }static void yyErrorMessage#if defined __STDC__ | defined __cplusplus   (int yyErrorCode)#else   (yyErrorCode) int yyErrorCode;#endif   {      WritePosition (stderr, Attribute.Position);      switch (yyErrorCode) {      case 0: (void) fprintf (stderr, ": Scanner: internal error\n"); break;      case 1: (void) fprintf (stderr, ": Scanner: out of memory\n"); break;      case 2: (void) fprintf (stderr,      ": Scanner: file stack underflow (too many calls of CloseFile)\n");	      break;      case 3: (void) fprintf (stderr,	      ": Scanner: cannot open input file\n"); break;      case 4: (void) fprintf (stderr,      ": Scanner: start stack underflow (too many calls of yyPop)\n"); break;      }      Scanner_Exit ();   }

⌨️ 快捷键说明

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