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

📄 scanner.c

📁 这是一个Linux下的集成开发环境
💻 C
📖 第 1 页 / 共 4 页
字号:
	unsigned int	yyLineCount	;	unsigned char *	yyLineStart	;	}		yytFileStack	;static	yytFileStack *	yyFileStack	;static	unsigned long	yyFileStackSize	= 0;static	yytFileStack *	yyFileStackPtr	;int GetToken ARGS ((void)){   register	yyStateRange	yyState;   register	yyStateRange *	yyStatePtr;   register	unsigned char * yyChBufferIndexReg;   register	yyCombType * *	yyBasePtrReg = yyBasePtr;/* line 95 "tcl.rex" */  char word [256];/* * Abbau des Stacks ge鰂fneter Klammern bis zur n鋍hsten passenden Klammerebene. * d.h. ggf werden im Source nicht vorhandene Klammerzu-Zeichen zur點kgeliefert. * aus {[} --> {[end_of_command]end_of_command} * der Parser kann bei Bedarf die 'unechten' Tokens an einem Attribut erkennen. */  if (KPop != 'X') {  L_KlPop:    switch (KlStack [KlLvl]) {    case '"' : KlStack [KlLvl] = 'A';    	       first_word = rtrue; return 15;    case '{' : KlStack [KlLvl] = '}';    	       first_word = rtrue; return 15;    case '[' : KlStack [KlLvl] = ']';    	       first_word = rtrue; return 15;    case 'A' : if (KlStack [KlLvl --] == KPop) { KPop = 'X'; }    	       first_word = rfalse; return 5;    case '}' : if (KlStack [KlLvl --] == KPop) { KPop = 'X'; }    	       first_word = rfalse; return 9;    case ']' : if (KlStack [KlLvl --] == KPop) { KPop = 'X'; }    	       first_word = rfalse; return 7;    }  }  if (EOF_reached) return EofToken;yyBegin:   yyState		= yyStartState;		/* initialize */   yyStatePtr		= & yyStateStack [1];   yyChBufferIndexReg	= yyChBufferIndex;   TokenPtr		= (char *) yyChBufferIndexReg;   /* ASSERT yyChBuffer [yyChBufferIndex] == first character */yyContinue:		/* continue after sentinel or skipping blanks */   for (;;) {		/* execute as many state transitions as possible */			/* determine next state and get next character */      register yyCombType * yyTablePtr =			(yyBasePtrReg [yyState] + * yyChBufferIndexReg ++);      if (yyTablePtr->yyCheck == yyState) {	 yyState = yyTablePtr->yyNext;	 * yyStatePtr ++ = yyState;		/* push state */	 goto yyContinue;      }      yyChBufferIndexReg --;			/* reconsider character */      if ((yyState = yyDefault [yyState]) == yyDNoState) break;   }   for (;;) {				/* search for last final state */      TokenLength =	    (int) (yyChBufferIndexReg - (unsigned char *) TokenPtr);      yyChBufferIndex = yyChBufferIndexReg;switch (* -- yyStatePtr) {case 5:;case 31:;case 33:;case 43:;/* line 155 "tcl.rex" */{ yyPrevious; } yyy1: goto yyBegin;case 29:;yySetPosition/* line 157 "tcl.rex" */{ yyPrevious; yyEol (0); first_word = rtrue; return 15; } yyy2: goto yyBegin;case 12:;yySetPosition/* line 160 "tcl.rex" */{ char * p = strchr (TokenPtr, '\n');		    yyEol (TokenPtr + TokenLength - p - 1);		    return 13;		  } yyy3: goto yyBegin;case 46:;yySetPosition/* line 165 "tcl.rex" */{ if (first_word && ! is_open (r_brace)) {		       yyStart (Comment);		    } else {		       Attribute.character.text = '#';		       first_word = rfalse; return 2;		    }		  } yyy4: goto yyBegin;case 45:;yySetPosition/* line 173 "tcl.rex" */{ if (is_open ('"')) {		       KPop = 'A'; goto L_KlPop;		    } else {		       push ('"'); first_word = rfalse; return 4;		    }		  } yyy5: goto yyBegin;case 44:;yySetPosition/* line 180 "tcl.rex" */{ if (is_open (* TokenPtr)) {		       KPop = * TokenPtr; goto L_KlPop;		    } else {		       Attribute.character.text = * TokenPtr;		       first_word = rfalse; return 2;		    }		  } yyy6: goto yyBegin;case 42:;yySetPosition/* line 180 "tcl.rex" */{ if (is_open (* TokenPtr)) {		       KPop = * TokenPtr; goto L_KlPop;		    } else {		       Attribute.character.text = * TokenPtr;		       first_word = rfalse; return 2;		    }		  } yyy7: goto yyBegin;case 41:;yySetPosition/* line 188 "tcl.rex" */{ first_word = rtrue; return 15; } yyy8: goto yyBegin;case 9:;case 28:;yySetPosition/* line 190 "tcl.rex" */{ yyEol (0); first_word = rtrue; return 15; } yyy9: goto yyBegin;case 8:;case 17:;case 30:;case 32:;yySetPosition/* line 192 "tcl.rex" */{ return 13; } yyy10: goto yyBegin;case 40:;yySetPosition/* line 194 "tcl.rex" */{ push ('{'); first_word = rfalse; return 8; } yyy11: goto yyBegin;case 39:;yySetPosition/* line 195 "tcl.rex" */{ push ('['); first_word = rfalse; return 6; } yyy12: goto yyBegin;case 38:;yySetPosition/* line 196 "tcl.rex" */{ first_word = rfalse; return 11; } yyy13: goto yyBegin;case 37:;yySetPosition/* line 197 "tcl.rex" */{ first_word = rfalse; return 12; } yyy14: goto yyBegin;case 36:;yySetPosition/* line 198 "tcl.rex" */{ first_word = rfalse; return 3; } yyy15: goto yyBegin;case 14:;yySetPosition/* line 199 "tcl.rex" */{ first_word = rfalse; return 10; } yyy16: goto yyBegin;case 35:;yySetPosition/* line 200 "tcl.rex" */{ first_word = rfalse; return 10; } yyy17: goto yyBegin;case 7:;yySetPosition/* line 202 "tcl.rex" */{ Attribute.ident.ident = MakeIdent (TokenPtr, TokenLength);		    first_word = rfalse; return 1;		  } yyy18: goto yyBegin;case 11:;case 19:;case 24:;yySetPosition/* line 207 "tcl.rex" */{ unsigned int i;		    GetWord (word);		    sscanf (word + 1, "%o", & i);		    Attribute.character.text = i;		    first_word = rfalse; return 2;		  } yyy19: goto yyBegin;case 13:;case 20:;yySetPosition/* line 215 "tcl.rex" */{ unsigned int i;		    GetWord (word);		    sscanf (word + 2, "%x", & i);		    Attribute.character.text = i;		    first_word = rfalse; return 2;		  } yyy20: goto yyBegin;case 10:;case 18:;case 23:;yySetPosition/* line 222 "tcl.rex" */{ Attribute.character.text = TokenPtr [1];		    first_word = rfalse; return 2;		  } yyy21: goto yyBegin;case 6:;case 16:;case 22:;case 34:;yySetPosition/* line 226 "tcl.rex" */{ Attribute.character.text = * TokenPtr;		    first_word = rfalse; return 2;		  } yyy22: goto yyBegin;case 1:;case 2:;case 3:;case 4:;case 15:;case 21:;case 25:;	 /* non final states */	 yyChBufferIndexReg --;			/* return character */	 break;case 27:	 yySetPosition      /* TokenLength   = 1; */	 yyChBufferIndex = ++ yyChBufferIndexReg;	 {/* line 138 "tcl.rex" */   MessageI ("illegal character", xxError, Attribute.Position,      xxCharacter, TokenPtr);	 }	 goto yyBegin;      case yyDNoState:	 goto yyBegin;case 26:	 yyChBufferIndex = -- yyChBufferIndexReg; /* undo last state transit */	 if (-- TokenLength == 0) {		/* get previous state */	    yyState = yyStartState;	 } else {	    yyState = * (yyStatePtr - 1);	 }	 if (yyChBufferIndex != & yyChBufferStart [yyBytesRead]) {					/* end of buffer sentinel in buffer */	    if ((yyState = yyEobTrans [yyState]) == yyDNoState) continue;	    yyChBufferIndexReg ++;	    * yyStatePtr ++ = yyState;		/* push state */	    goto yyContinue;	 }						/* end of buffer reached */	 if (! yyEof) {	    register char * yySource;	    register char * yyTarget;	    unsigned long yyChBufferFree;	    if (yyChBufferSize == 0) {	       yyInitialize ();	       yyChBufferIndexReg = yyChBufferIndex;	    }	    yySource = TokenPtr - 1;	    yyTarget = (char *) & yyChBufferPtr		[(yyMaxAlign - 1 - TokenLength) & (yyMaxAlign - 1)];	    yyChBufferFree = Exp2 (Log2 (yyChBufferSize - 4 -		yyMaxAlign - TokenLength));		/* copy initial part of token in front of the input buffer */	    if (yySource > yyTarget) {	       TokenPtr = yyTarget + 1;	       do * yyTarget ++ = * yySource ++;	       while (yySource < (char *) yyChBufferIndexReg);	       yyLineStart += (unsigned char *) yyTarget - yyChBufferStart -				yyBytesRead;	       yyChBufferStart = (unsigned char *) yyTarget;

⌨️ 快捷键说明

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