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

📄 directives.c

📁 这是一个Linux下的集成开发环境
💻 C
📖 第 1 页 / 共 3 页
字号:
		  yyNonterminal = yyLeftHandSide [yyState - yyFirstReduceState];	       }#endifswitch (yyState) {case 24:YYACCEPT;case 25:case 13: /* directive : SET SOURCEFORMAT xx_directive_1_3 \string */yyDecrement (4) yySetNT (yyNTdirective) {} break;case 26: /* directive : SET name literal */yyDecrement (3) yySetNT (yyNTdirective) {} break;case 27: /* directive : SET name */yyDecrement (2) yySetNT (yyNTdirective) {} break;case 28:case 14: /* directive : DISPLAY string */yyDecrement (2) yySetNT (yyNTdirective) {} break;case 29:case 15: /* directive : ELSE */yyDecrement (1) yySetNT (yyNTdirective) {} break;case 30:case 16: /* directive : END */yyDecrement (1) yySetNT (yyNTdirective) {} break;case 31: /* directive : IF literal operator literal */yyDecrement (4) yySetNT (yyNTdirective) {} break;case 32: /* directive : IF literal NOT operator literal */yyDecrement (5) yySetNT (yyNTdirective) {} break;case 33:case 17: /* directive : IF literal DEFINED */yyDecrement (3) yySetNT (yyNTdirective) {} break;case 34:case 18: /* directive : IF literal NOT DEFINED */yyDecrement (4) yySetNT (yyNTdirective) {} break;case 35: /* xx_directive_1_3 : */yySetNT (yyNTxx_directive_1_3) {/* line 47 "directives.lrk" */ ;{  char s [256]; StGetString (Attribute.string.Value, s);		       if (strncmp (s + 1, "FREE", 4) == 0) {			  free_format = rtrue; MaxColumn = 1024;		       } else if (strncmp (s + 1, "FIXED", 5) == 0) {			  free_format = rfalse; MaxColumn = 72;		       }		; } ;} break;case 36:case 19: /* literal : unsigned_integer */yyDecrement (1) yySetNT (yyNTliteral) {} break;case 37:case 20: /* literal : string */yyDecrement (1) yySetNT (yyNTliteral) {} break;case 38:case 21: /* operator : '<' */yyDecrement (1) yySetNT (yyNToperator) {} break;case 39:case 22: /* operator : '>' */yyDecrement (1) yySetNT (yyNToperator) {} break;case 40:case 23: /* operator : '=' */yyDecrement (1) yySetNT (yyNToperator) {} break;default: switch (yyState) {case 1: goto yyAbort;case 2: goto yyRead;case 3: goto yyReduce;}}       /* SPEC State = Next (Top (), Nonterminal); nonterminal transition */#ifdef YYNDefault	       yyState = * yyStateStackPtr ++;	       for (;;) {		  register yytComb * yyNCombPtr =				yyNBasePtr [yyState] + (int) yyNonterminal;		  if (yyNCombPtr->Check == yyState) {		     yyState = yyNCombPtr->Next; break;		  }		  yyState = yyNDefault [yyState];	       }#else	       yyState = yyNBasePtr [* yyStateStackPtr ++] [yyNonterminal];#endif	       * yyAttrStackPtr ++ = yySynAttribute;	       if (yyState < yyFirstFinalState) goto yyParseLoop;							/* read reduce ? */#ifdef YYDEBUG	       yyStateStackPtr [0] = yyStateStackPtr [-1];#endif	    }	 } else {					/* read */   yyRead:  yyStateStackPtr ++;	    yyGetAttribute (yyAttrStackPtr ++, Attribute);	    yyTerminal = yyGetToken ();#ifdef YYDEBUG	    if (directives_Debug) {	       yyPrintState (yyStateStackPtr [-1]);	       (void) fprintf (yyTrace, "shift   %s, lookahead: %s",		  directives_TokenName [yyPrevTerminal],		  directives_TokenName [yyTerminal]); yyNl ();	       yyPrevTerminal = yyTerminal;	    }#endif	    yyIsRepairing = rfalse;	 }      }   yyAbort:#ifdef YYDEBUG      if (directives_Debug) {	 yyPrintState (* yyStateStackPtr);	 (void) fprintf (yyTrace, "fail    parse started at %ld", yyStartCount);	 yyNl ();      }#endif      return ++ yyErrorCount;   yyAccept:#ifdef YYDEBUG      if (directives_Debug) {	 yyPrintState (* yyStateStackPtr);	 (void) fprintf (yyTrace, "accept  parse started at %ld", yyStartCount);	 yyNl ();      }#endif      return yyErrorCount;   }#ifndef NO_RECOVERstatic void yyErrorRecovery#if defined __STDC__ | defined __cplusplus   (yySymbolRange * yyTerminal, yyStateRange * yyStateStack, short yyStackPtr)#else   (yyTerminal, yyStateStack, yyStackPtr)   yySymbolRange *	yyTerminal	;   yyStateRange *	yyStateStack	;   short		yyStackPtr	;#endif   {#define	yyContinueSize	5000      rbool	yyTokensSkipped	;      tSet	yyContinueSet	;      tSet	yyRestartSet	;      int	yyLength	;      char	yyContinueString [yyContinueSize + 2];      if (yyControl.yyMessages) {   /* 1. report an error */	 ErrorMessage (xxSyntaxError, xxError, Attribute.Position);   /* 2. report the offending token */	 (void) strcpy (yyContinueString, directives_TokenName [* yyTerminal]);#ifdef SPELLING	 if (strncmp (yyContinueString, TokenPtr, TokenLength)) {	    yyContinueString [yyLength = strlen (yyContinueString)] = ' ';	    (void) GetWord (& yyContinueString [++ yyLength]);	 }#endif	 ErrorMessageI (xxTokenFound, xxInformation, Attribute.Position,	    xxString, yyContinueString);   /* 3. report the set of expected terminal symbols */	 MakeSet (& yyContinueSet, (short) yyLastTerminal);	 yyComputeContinuation (yyStateStack, yyStackPtr, & yyContinueSet);	 yyLength = 0;	 yyContinueString [0] = '\0';	 while (! IsEmpty (& yyContinueSet)) {	    char * yyTokenString = directives_TokenName [Extract (& yyContinueSet)];	    int yyl = strlen (yyTokenString);	    if (yyLength + yyl >= yyContinueSize) break;	    (void) strcpy (& yyContinueString [yyLength], yyTokenString);	    yyLength += yyl;	    yyContinueString [yyLength ++] = ' ';	 }	 yyContinueString [-- yyLength] = '\0';	 ErrorMessageI (xxExpectedTokens, xxInformation, Attribute.Position,	    xxString, yyContinueString);	 ReleaseSet (& yyContinueSet);      }   /* 4. compute the set of terminal symbols for restart of the parse */      MakeSet (& yyRestartSet, (short) yyLastTerminal);      yyComputeRestartPoints (yyStateStack, yyStackPtr, & yyRestartSet);   /* 5. skip terminal symbols until a restart point is reached */      yyTokensSkipped = rfalse;      while (! IsElement (* yyTerminal, & yyRestartSet)) {#ifdef YYDEBUG	 yySymbolRange yyPrevTerminal = * yyTerminal;#endif	 * yyTerminal = yyGetToken ();	 yyTokensSkipped = rtrue;#ifdef YYDEBUG	 if (directives_Debug) {	    yyPrintState (yyStateStack [yyStackPtr]);	    (void) fprintf (yyTrace, "skip    %s, lookahead: %s",	       directives_TokenName [yyPrevTerminal],	       directives_TokenName [* yyTerminal]); yyNl ();	 }#endif      }      ReleaseSet (& yyRestartSet);   /* 6. report the restart point */      if (yyTokensSkipped & yyControl.yyMessages)	 ErrorMessage (xxRestartPoint, xxInformation, Attribute.Position);   }/*   compute the set of terminal symbols that can be accepted (read)   in a given stack configuration (eventually after reduce actions)*/static void yyComputeContinuation#if defined __STDC__ | defined __cplusplus   (yyStateRange * yyStack, short yyStackPtr, tSet * yyContinueSet)#else   (yyStack, yyStackPtr, yyContinueSet)   yyStateRange *	yyStack		;   short		yyStackPtr	;   tSet *		yyContinueSet	;#endif   {      register yySymbolRange	yyTerminal;      register yyStateRange	yyState = yyStack [yyStackPtr];      AssignEmpty (yyContinueSet);      for (yyTerminal = yyFirstTerminal; yyTerminal <= yyLastTerminal;							yyTerminal ++) {	 if (yyNext (yyState, yyTerminal) != yyNoState &&	    yyIsContinuation (yyTerminal, yyStack, yyStackPtr)) {	    Include (yyContinueSet, (short) yyTerminal);	 }      }   }/*   check whether a given terminal symbol can be accepted (read)   in a certain stack configuration (eventually after reduce actions)*/static rbool yyIsContinuation#if defined __STDC__ | defined __cplusplus   (yySymbolRange yyTerminal, yyStateRange * yyStateStack, short yyStackPtr)#else   (yyTerminal, yyStateStack, yyStackPtr)   yySymbolRange	yyTerminal	;   yyStateRange *	yyStateStack	;   short		yyStackPtr	;#endif   {      register yyStateRange	yState		;      register yytNonterminal	yyNonterminal	;      while (yyStackPtr >= (short) yyIsContStackSize)  /* pass Stack by value */	 ExtendArray ((char * *) & yyIsContStackPtr, & yyIsContStackSize,			  (unsigned long) sizeof (yyStateRange));#ifdef BCOPY      bcopy ((char *) yyStateStack, (char *) yyIsContStackPtr,		 (int) sizeof (yyStateRange) * (yyStackPtr + 1));#else      (void) memcpy ((char *) yyIsContStackPtr, (char *) yyStateStack,			 (int) sizeof (yyStateRange) * (yyStackPtr + 1));#endif      yState = yyIsContStackPtr [yyStackPtr];      for (;;) {	 yyIsContStackPtr [yyStackPtr] = yState;	 yState = yyNext (yState, yyTerminal);	 if (yState == yyNoState) return rfalse;	 do {						/* reduce */	    if (yState > yyLastReduceState) {		/* dynamic ? */	       yState = yyCondition [yState - yyLastReduceState];	    }	    if (yState <= yyLastStopState) { /* read, read reduce, or accept? */	       return rtrue;	    } else {					/* reduce */	       yyStackPtr -= yyLength [yState - yyFirstReduceState];	       yyNonterminal = yyLeftHandSide [yState - yyFirstReduceState];	    }	    yState = yyNext (yyIsContStackPtr [yyStackPtr],				(yySymbolRange) yyNonterminal);	    if (yyStackPtr >= (short) yyIsContStackSize)	       ExtendArray ((char * *) & yyIsContStackPtr, & yyIsContStackSize,				(unsigned long) sizeof (yyStateRange));	    yyStackPtr ++;	 } while (yState >= yyFirstFinalState);      }   }/*   compute a set of terminal symbols that can be used to restart   parsing in a given stack configuration. we simulate parsing until   end of file using a suffix program synthesized by the function (array)   yyContinuation. All symbols acceptable in the states reached during   the simulation can be used to restart parsing.*/static void yyComputeRestartPoints#if defined __STDC__ | defined __cplusplus   (yyStateRange * yyStateStack, short yyStackPtr, tSet * yyRestartSet)#else   (yyStateStack, yyStackPtr, yyRestartSet)   yyStateRange *	yyStateStack	;   short		yyStackPtr	;   tSet *		yyRestartSet	;#endif   {      register yyStateRange	yState		;      register yytNonterminal	yyNonterminal	;	       tSet		yyContinueSet	;      while (yyStackPtr >= (short) yyCompResStackSize) /* pass Stack by value */	 ExtendArray ((char * *) & yyCompResStackPtr, & yyCompResStackSize,			  (unsigned long) sizeof (yyStateRange));#ifdef BCOPY      bcopy ((char *) yyStateStack, (char *) yyCompResStackPtr,		 (int) sizeof (yyStateRange) * (yyStackPtr + 1));#else      (void) memcpy ((char *) yyCompResStackPtr, (char *) yyStateStack,			 (int) sizeof (yyStateRange) * (yyStackPtr + 1));#endif      MakeSet (& yyContinueSet, (short) yyLastTerminal);      AssignEmpty (yyRestartSet);      yState = yyCompResStackPtr [yyStackPtr];      for (;;) {	 if (yyStackPtr >= (short) yyCompResStackSize)	    ExtendArray ((char * *) & yyCompResStackPtr, & yyCompResStackSize,			     (unsigned long) sizeof (yyStateRange));	 yyCompResStackPtr [yyStackPtr] = yState;	 yyComputeContinuation (yyCompResStackPtr, yyStackPtr, & yyContinueSet);	 Union (yyRestartSet, & yyContinueSet);	 yState = yyNext (yState, yyContinuation [yState]);	 if (yState >= yyFirstFinalState) {		/* final state ? */	    if (yState <= yyLastReadReduceState) {	/* read reduce ? */	       yyStackPtr ++;	       yState = yyFinalToProd [yState - yyFirstReadReduceState];#ifdef YYDCRP	       yyCompResStackPtr [yyStackPtr] =					yyCompResStackPtr [yyStackPtr - 1];	       (void) fprintf (yyTrace, "%5d shift   %s\n",		  yyCompResStackPtr [yyStackPtr],		  directives_TokenName [yyContinuation [yyCompResStackPtr		  [yyStackPtr]]]);#endif	    }	    do {					/* reduce */	       if (yState > yyLastReduceState) {	/* dynamic ? */#ifdef YYDCRP		  (void) fprintf (yyTrace, "%5d dynamic decision %d\n",		  yyCompResStackPtr [yyStackPtr], yState - yyLastReduceState);#endif		  yState = yyCondition [yState - yyLastReduceState];	       }	       if (yyFirstReduceState <= yState &&		   yState <= yyLastStopState) {		/* accept */#ifdef YYDCRP		  (void) fprintf (yyTrace, "%5d accept\n",		     yyCompResStackPtr [yyStackPtr]);#endif		  ReleaseSet (& yyContinueSet);		  return;	       } else if (yState < yyFirstFinalState) {	/* read */		  goto yyRead;	       } else {					/* reduce */#ifdef YYDCRP		  (void) fprintf (yyTrace, "%5d reduce  %s\n",		     yyCompResStackPtr [yyStackPtr],		     yyRule [yState - yyLastReadReduceState]);#endif		  yyStackPtr -= yyLength [yState - yyFirstReduceState];		  yyNonterminal = yyLeftHandSide [yState - yyFirstReduceState];	       }	       yState = yyNext (yyCompResStackPtr [yyStackPtr],				(yySymbolRange) yyNonterminal);	       yyStackPtr ++;	    } while (yState >= yyFirstFinalState);	 } else {					/* read */yyRead:#ifdef YYDCRP	    (void) fprintf (yyTrace, "%5d shift   %s\n",	       yyCompResStackPtr [yyStackPtr],	       directives_TokenName [yyContinuation [yyCompResStackPtr [yyStackPtr]]]);#endif	    yyStackPtr ++;	 }      }   }/* access the parse table:   Next : State x Symbol -> Action */static yyStateRange yyNext#if defined __STDC__ | defined __cplusplus   (yyStateRange yyState, yySymbolRange yySymbol)#else   (yyState, yySymbol) yyStateRange yyState; yySymbolRange yySymbol;#endif   {      if (yySymbol <= yyLastTerminal) {	 for (;;) {	    register yytComb * yyTCombPtr = yyTBasePtr [yyState] + yySymbol;#if defined YYTDefault & defined YYaccDefault	    register unsigned long * yylp;#endif	    if (yyTCombPtr->Check == yyState) return yyTCombPtr->Next;#ifdef YYTDefault#ifdef YYaccDefault	    return (yylp = yyDefaultLook [yyState]) &&	       (yylp [yySymbol >> 5] >> (yySymbol & 0x1f)) & 1 ?		  yyTDefault [yyState] : yyNoState;#else	    if ((yyState = yyTDefault [yyState]) == yyNoState) return yyNoState;#endif#else	    return yyNoState;#endif	 }      }#ifdef YYNDefault      for (;;) {	 register yytComb * yyNCombPtr = yyNBasePtr [yyState] + yySymbol;	 if (yyNCombPtr->Check == yyState) return yyNCombPtr->Next;	 yyState = yyNDefault [yyState];      }#else      return yyNBasePtr [yyState] [yySymbol];#endif   }#endifvoid Begindirectives ARGS ((void))   {/* line 18 "directives.lrk" */   }void Closedirectives ARGS ((void))   {/* line 21 "directives.lrk" */   }

⌨️ 快捷键说明

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