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

📄 parser.yy.c

📁 蒙特卡罗模拟光子成像C语言版,代码简洁专业
💻 C
📖 第 1 页 / 共 5 页
字号:
return N;
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 59 "parser.l"
return DETECTOR;
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 60 "parser.l"
return DETECTOR;
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 61 "parser.l"
return SOURCE;
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 62 "parser.l"
return SOURCE;
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 64 "parser.l"
return SDPOS;
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 65 "parser.l"
return SDPOS;
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 66 "parser.l"
return SDDIR;
	YY_BREAK
case 22:
YY_RULE_SETUP
#line 67 "parser.l"
return SDDIR;
	YY_BREAK
case 23:
YY_RULE_SETUP
#line 68 "parser.l"
return SDRAD;
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 69 "parser.l"
return SDRAD;
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 70 "parser.l"
return SDNA;
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 72 "parser.l"
return IMGX;
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 73 "parser.l"
return IMGY;
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 74 "parser.l"
return IMGZ;
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 75 "parser.l"
return IMGX;
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 76 "parser.l"
return IMGY;
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 77 "parser.l"
return IMGZ;
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 79 "parser.l"
return DX;
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 80 "parser.l"
return DY;
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 81 "parser.l"
return DZ;
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 83 "parser.l"
return NXSTEP;
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 84 "parser.l"
return NYSTEP;
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 85 "parser.l"
return NZSTEP;
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 87 "parser.l"
return SETFLAG;
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 88 "parser.l"
return FTWOPT;
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 89 "parser.l"
return FSMOVE;
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 90 "parser.l"
return FDMOVE;
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 91 "parser.l"
return FXMOVE;
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 92 "parser.l"
return FXTIME;
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 93 "parser.l"
return FMATLAB;
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 94 "parser.l"
return FMIRROR;
	YY_BREAK
/* Quoted filenames must start with a normal */
/*  FILENAME character but may contain embedded */
/*  special characters (space, etc.) after that */
case 46:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 99 "parser.l"
BEGIN(INQ);
	YY_BREAK
case 47:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 100 "parser.l"
{ yylval.string = yytext; BEGIN(ENDQ);
                          return FILENAME; }
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 102 "parser.l"
BEGIN(INITIAL);
	YY_BREAK
/* Primitives */
case 49:
YY_RULE_SETUP
#line 105 "parser.l"
{ yylval.integer = atoi(yytext); return DECNUMBER; }
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 106 "parser.l"
{ yylval.real    = atof(yytext); return REALNUMBER; }
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 107 "parser.l"
{ yylval.string  = yytext;       return FILENAME; }
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 109 "parser.l"
return '[';	/* begin vector */
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 110 "parser.l"
return ']';	/* end   vector */
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 111 "parser.l"
return '{';	/* begin grouping */
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 112 "parser.l"
return '}';	/* end   grouping */
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 114 "parser.l"
/* IGNORE: optional separator */
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 115 "parser.l"
/* IGNORE: optional assignment */
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 116 "parser.l"
/* IGNORE: comment */
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 117 "parser.l"
/* IGNORE: whitespace */
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 118 "parser.l"
linenumber++;     /* End of line */
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(INQ):
case YY_STATE_EOF(ENDQ):
#line 119 "parser.l"
return 0;         /* Done, returns zero */
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 120 "parser.l"
yyerror("Unrecognized token");
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 122 "parser.l"
ECHO;
	YY_BREAK
#line 1446 "lex.yy.c"

	case YY_END_OF_BUFFER:
		{
		/* Amount of text matched not including the EOB char. */
		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;

		/* Undo the effects of YY_DO_BEFORE_ACTION. */
		*yy_cp = yy_hold_char;
		YY_RESTORE_YY_MORE_OFFSET

		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed yyin at a new source and called
			 * yylex().  If so, then we have to assure
			 * consistency between yy_current_buffer and our
			 * globals.  Here is the right place to do so, because
			 * this is the first action (other than possibly a
			 * back-up) that will match for the new input source.
			 */
			yy_n_chars = yy_current_buffer->yy_n_chars;
			yy_current_buffer->yy_input_file = yyin;
			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
			}

		/* Note that here we test for yy_c_buf_p "<=" to the position
		 * of the first EOB in the buffer, since yy_c_buf_p will
		 * already have been incremented past the NUL character
		 * (since all states make transitions on EOB to the
		 * end-of-buffer state).  Contrast this with the test
		 * in input().
		 */
		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
			{ /* This was really a NUL. */
			yy_state_type yy_next_state;

			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state();

			/* Okay, we're now positioned to make the NUL
			 * transition.  We couldn't have
			 * yy_get_previous_state() go ahead and do it
			 * for us because it doesn't know how to deal
			 * with the possibility of jamming (and we don't
			 * want to build jamming into it because then it
			 * will run more slowly).
			 */

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = yytext_ptr + YY_MORE_ADJ;

			if ( yy_next_state )
				{
				/* Consume the NUL. */
				yy_cp = ++yy_c_buf_p;
				yy_current_state = yy_next_state;
				goto yy_match;
				}

			else
				{
				yy_cp = yy_c_buf_p;
				goto yy_find_action;
				}
			}

		else switch ( yy_get_next_buffer() )
			{
			case EOB_ACT_END_OF_FILE:
				{
				yy_did_buffer_switch_on_eof = 0;

				if ( yywrap() )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * yytext, we can now set up
					 * yy_c_buf_p so that if some total
					 * hoser (like flex itself) wants to
					 * call the scanner after we return the
					 * YY_NULL, it'll still work - another
					 * YY_NULL will get returned.
					 */
					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

				else
					{
					if ( ! yy_did_buffer_switch_on_eof )
						YY_NEW_FILE;
					}
				break;
				}

			case EOB_ACT_CONTINUE_SCAN:
				yy_c_buf_p =
					yytext_ptr + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state();

				yy_cp = yy_c_buf_p;
				yy_bp = yytext_ptr + YY_MORE_ADJ;
				goto yy_match;

			case EOB_ACT_LAST_MATCH:
				yy_c_buf_p =
				&yy_current_buffer->yy_ch_buf[yy_n_chars];

				yy_current_state = yy_get_previous_state();

				yy_cp = yy_c_buf_p;
				yy_bp = yytext_ptr + YY_MORE_ADJ;
				goto yy_find_action;
			}
		break;
		}

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
	} /* end of yylex */


/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *	EOB_ACT_LAST_MATCH -

⌨️ 快捷键说明

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