亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mql.ypp

?? 件主要用于幫助計算機愛好者學習蟻群算法時做有關蟻群算法的試驗。蟻群算法作為一種優秀的新興的算法
?? YPP
?? 第 1 頁 / 共 2 頁
字號:
%{/******************************************************************************Meridian prototype distributionCopyright (C) 2005 Bernard WongThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.The copyright owner can be contacted by e-mail at bwong@cs.cornell.edu*******************************************************************************/using namespace std;#include <stdio.h>#include <stdlib.h>#include <signal.h>//#include <setjmp.h>#include <unistd.h>#include <fcntl.h>#include <sys/socket.h>#include <ucontext.h>#include "Marshal.h"#include "MQLState.h"#include "MeridianDSL.h"#define YYPARSE_PARAM param#define YYLEX_PARAM paramucontext_t global_env_thread;	// For ending an intepreter immediately//jmp_buf global_env_pc;		// For switching between threads//ucontext_t* global_env_pc = NULL;void yyerror(const char *str) {	DSL_ERROR( "%s: line %d\n", str, g_parser_line);}int yylex(YYSTYPE* next_token, void* in_parser) {	if (in_parser == NULL) {		return 0;	}		ParserState* cur_parser = static_cast<ParserState*>(in_parser);	cur_parser->set_parse_result(next_token);	return cur_parser->get_lex()->scan(cur_parser);}%}%union{	double 	 	d_val;	int		 	i_val;	string*  	s_val;	ASTType		v_val;	ASTNode*	n_val;};%token<s_val> IDENTIFIER STRING_LITERAL%token<i_val> INT_CONSTANT %token<d_val> DOUBLE_CONSTANT%token INT DOUBLE STRING IF ELSE AND_OP OR_OP LEFT_OP RIGHT_OP LE_OP GE_OP%token SIN COS POW PRINT ROUND CEIL FLOOR EQ_OP NE_OP WHILE VOID DBL TAN ASIN%token ACOS ATAN CONTINUE BREAK RETURN STRUCT RPC ARRAY_SIZE LOG_OP EXP%token DNS_LOOKUP DNS_ADDR GET_SELF RING_GT RING_GE RING_LT RING_LE%token GET_DISTANCE_TCP GET_DISTANCE_DNS GET_DISTANCE_PING PUSH_BACK POP_BACK%token ARRAY_INTERSECT FOR PRINTLN ARRAY_AVG ARRAY_MAX ARRAY_MIN %token ARRAY_MAX_OFFSET ARRAY_MIN_OFFSET ARRAY_UNION GET_DISTANCE_ICMP%type<v_val> type%type<n_val> primary_expression postfix_expression unary_expression%type<n_val> multiplicative_expression additive_expression assign_expression%type<n_val> expression declaration_statement statement statement_list%type<n_val> expression_statement compound_statement selection_statement%type<n_val> and_expression iteration_statement jump_statement%type<n_val> exclusive_or_expression%type<n_val> inclusive_or_expression%type<n_val> logical_and_expression expression_sep parameter_sep%type<n_val> logical_or_expression relational_expression shift_expression%type<n_val> input_state global_declaration parameter_array_fixed%type<n_val> equality_expression parameter_list parameter parameter_adt%start start_state%pure-parser%%start_state	: input_state 		{ 	ParserState* ps = static_cast<ParserState*>(param);			ps->set_start($1);		}	;input_state	:	/* Empty */		{ $$ = static_cast<ParserState*>(param)->empty_token(); }	| input_state global_declaration 		{ $$ = mk_node_list(static_cast<ParserState*>(param), $2, $1); }	;		global_declaration	: IDENTIFIER IDENTIFIER '(' parameter_sep ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(ps, ADT_TYPE, $1, EMPTY_TYPE, $2, $4, $7); 		}	| IDENTIFIER IDENTIFIER '(' ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(				ps, ADT_TYPE, $1, EMPTY_TYPE, $2, ps->empty_token(), $6); 		}					| type IDENTIFIER '(' parameter_sep ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(ps, $1, NULL, EMPTY_TYPE, $2, $4, $7); 		}	| type IDENTIFIER '(' ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(				ps, $1, NULL, EMPTY_TYPE, $2, ps->empty_token(), $6); 		}	| IDENTIFIER '[' ']' IDENTIFIER '(' parameter_sep ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(ps, ARRAY_TYPE, $1, ADT_TYPE, $4, $6, $9); 		}	| IDENTIFIER '[' ']' IDENTIFIER '(' ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(				ps, ARRAY_TYPE, $1, ADT_TYPE, $4, ps->empty_token(), $8); 		}					| type '[' ']' IDENTIFIER '(' parameter_sep ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(ps, ARRAY_TYPE, NULL, $1, $4, $6, $9); 		}	| type '[' ']' IDENTIFIER '(' ')' '{' statement_list '}'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_function_declare(				ps, ARRAY_TYPE, NULL, $1, $4, ps->empty_token(), $8); 		}			| STRUCT IDENTIFIER '{' parameter_list '}' ';'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_adt(ps, $2, $4);		}		;	parameter	: type IDENTIFIER		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_var(ps, $1, $2); 		}			| type IDENTIFIER '[' ']'  					{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_var_array(ps, $1, $2, mk_int(ps, 0)); 		}	;		parameter_array_fixed	: parameter { $$ = $1; }	| type IDENTIFIER '[' INT_CONSTANT ']'  					{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_var_array(ps, $1, $2, mk_int(ps, $4)); 		}	;	// Parameter list cannot contain ADTs// Can contain fixed size arraysparameter_list	: parameter_array_fixed ';'			{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_sep_list(ps, $1); 		}	 	| parameter_list parameter_array_fixed ';'		{ 	$1->val.p_val.p_vector->push_back($2);			$$ = $1; 		}	;parameter_adt	: parameter	{ $$ = $1; }	| IDENTIFIER IDENTIFIER				{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_adt_var(ps, $1, $2); 		}	| IDENTIFIER IDENTIFIER '[' ']'				{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_adt_var_array(ps, $1, $2, mk_int(ps, 0)); 		}			;// Can contain ADTs// Can only contain 0 sized arraysparameter_sep	: parameter_adt			{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_sep_list(ps, $1); 		}		| parameter_sep ',' parameter_adt		{ 	$1->val.p_val.p_vector->push_back($3);			$$ = $1; 		}	;	expression_sep	: expression		{ 	ParserState* ps = static_cast<ParserState*>(param);				$$ = mk_sep_list(ps, $1);		}	| expression_sep ',' expression		{ 	$1->val.p_val.p_vector->push_back($3);			$$ = $1; 		}	;statement_list	: /* Empty */						{ $$ = static_cast<ParserState*>(param)->empty_token(); }	| statement_list statement			{ $$ = mk_node_list(static_cast<ParserState*>(param), $2, $1); }	;		type	: INT 						{ $$ = INT_TYPE; }	| DOUBLE					{ $$ = DOUBLE_TYPE; }	| STRING					{ $$ = STRING_TYPE; }	| VOID						{ $$ = VOID_TYPE; }	;//	Making declaration a statement in this languagedeclaration_statement	: parameter_adt ';' 	{$$ = $1;}	| type IDENTIFIER '[' expression ']' ';'  					{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_var_array(ps, $1, $2, $4); 		}			| IDENTIFIER IDENTIFIER '[' expression']' ';'				{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_adt_var_array(ps, $1, $2, $4); 		}		| type IDENTIFIER '=' expression ';'			{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_var_assign(ps, $1, $2, $4); 		}	| IDENTIFIER IDENTIFIER '=' expression ';'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_adt_var_assign(ps, $1, $2, $4); 		}	| IDENTIFIER IDENTIFIER '=' '{' expression_sep '}' ';'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_adt_var_assign(ps, $1, $2, $5); 		}	| type IDENTIFIER '[' ']' '=' expression ';'			{ 	ParserState* ps = static_cast<ParserState*>(param);					$$ = mk_new_var_array_assign(ps, $1, $2, $6, mk_int(ps, 0)); 		}	| type IDENTIFIER '[' ']' '=' '{' expression_sep '}' ';'			{ 	ParserState* ps = static_cast<ParserState*>(param);					$$ = mk_new_var_array_assign(ps, $1, $2, $7, mk_int(ps, 0)); 		}			| IDENTIFIER IDENTIFIER '[' ']' '=' expression ';'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_adt_var_array_assign(ps, $1, $2, $6, mk_int(ps, 0)); 		}	| IDENTIFIER IDENTIFIER '[' ']' '=' '{' expression_sep '}' ';'		{ 	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_new_adt_var_array_assign(ps, $1, $2, $7, mk_int(ps, 0)); 		}			;		statement	: compound_statement		{ $$ = $1; }		| selection_statement		{ $$ = $1; }	| expression_statement		{ $$ = $1; }	| declaration_statement		{ $$ = $1; }	| iteration_statement		{ $$ = $1; }	| jump_statement			{ $$ = $1; }	;	jump_statement	: CONTINUE ';'						{	ParserState* ps = static_cast<ParserState*>(param);			$$ = ps->continue_token();		}	| BREAK ';'		{	ParserState* ps = static_cast<ParserState*>(param);			$$ = ps->break_token();		}	| RETURN expression ';'		{			ParserState* ps = static_cast<ParserState*>(param);						$$ = mk_return(ps, $2);		}	| RETURN ';'		{			ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_return(ps, ps->empty_token());		}	;	iteration_statement	: WHILE '(' expression ')' compound_statement		{	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_loop(ps, $3, $5);					}	| FOR '(' statement expression_statement expression ')' compound_statement		{	ParserState* ps = static_cast<ParserState*>(param);			// Give the for loop it's own context			$$ = mk_context(ps, mk_for_loop(ps, $3, $4, $5, $7));				}	;		selection_statement	: IF '(' expression ')' compound_statement		{	ParserState* ps = static_cast<ParserState*>(param);			$$ = mk_selection(ps, $3, $5, ps->empty_token());		}	| IF '(' expression ')' compound_statement ELSE compound_statement 		{	ParserState* ps = static_cast<ParserState*>(param);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩中文久久| 亚洲v中文字幕| 亚洲尤物在线视频观看| 国产一区二区三区精品欧美日韩一区二区三区| 丁香天五香天堂综合| 日韩欧美亚洲国产另类| 亚洲国产视频直播| 99久久精品国产一区| 精品电影一区二区| 秋霞成人午夜伦在线观看| 日本精品免费观看高清观看| 国产日韩欧美精品在线| 国产一区不卡在线| 精品国产sm最大网站免费看| 日韩激情视频网站| 欧美精品自拍偷拍动漫精品| 亚洲综合小说图片| 91麻豆swag| 亚洲色图一区二区三区| 成人免费毛片高清视频| 中文字幕久久午夜不卡| 国产高清不卡一区| 国产日韩欧美电影| 成人午夜视频福利| 性久久久久久久久久久久| 91美女蜜桃在线| 国产精品三级av| 成人激情免费网站| 国产精品美女久久久久高潮| caoporen国产精品视频| 国产精品欧美综合在线| youjizz久久| 亚洲精品成人在线| 欧美日韩综合不卡| 青青草91视频| 精品久久久久久久久久久久包黑料 | 日韩视频一区二区三区| 蜜桃精品在线观看| 国产亚洲一二三区| 成人免费三级在线| 亚洲精品久久久久久国产精华液| 99精品国产视频| 亚洲一区二区三区四区在线观看| 欧美性受极品xxxx喷水| 日韩中文字幕不卡| 久久综合久久综合久久综合| 国产精品中文欧美| 日韩毛片在线免费观看| 欧美色图片你懂的| 久久99在线观看| 国产精品第四页| 欧美日韩一区二区三区视频| 久久99久久精品| 国产精品国产三级国产aⅴ中文| 色哟哟日韩精品| 热久久免费视频| 国产日韩欧美高清在线| 在线亚洲高清视频| 蜜桃视频在线观看一区二区| 国产婷婷精品av在线| 在线观看中文字幕不卡| 久久99精品久久久久婷婷| 自拍偷自拍亚洲精品播放| 欧美日韩一区中文字幕| 国产一区福利在线| 一区二区在线免费观看| 精品国产免费人成在线观看| 91九色02白丝porn| 激情欧美日韩一区二区| 亚洲夂夂婷婷色拍ww47| 久久精品亚洲国产奇米99| 欧美日精品一区视频| 国产suv精品一区二区883| 亚洲国产aⅴ天堂久久| 精品剧情在线观看| 欧美午夜视频网站| 成人黄色综合网站| 久久精品72免费观看| 一区二区在线观看免费| 国产日产欧美精品一区二区三区| 91 com成人网| 91国产免费观看| 成人国产精品视频| 日本vs亚洲vs韩国一区三区二区| 亚洲视频网在线直播| 国产日本一区二区| 日韩一区和二区| 欧美日韩成人一区二区| 成人av网址在线观看| 国产一区二区电影| 伦理电影国产精品| 性做久久久久久| 亚洲国产乱码最新视频| 国产精品天天看| 日韩av网站免费在线| 亚洲精品一二三| 国产午夜亚洲精品不卡| 亚洲精品一区二区三区四区高清 | 成人性生交大片免费看中文网站| 奇米精品一区二区三区在线观看| 一区二区三区精密机械公司| 国产精品丝袜一区| 国产精品午夜久久| 国产亚洲欧美日韩俺去了| 久久香蕉国产线看观看99| 精品久久久久久久久久久院品网 | 国产真实乱偷精品视频免| 视频一区欧美精品| 亚洲韩国精品一区| 亚洲一区二区三区中文字幕在线| 亚洲视频网在线直播| 亚洲视频免费在线观看| 亚洲人成伊人成综合网小说| 国产精品国产三级国产aⅴ中文| 国产精品污www在线观看| 中文字幕在线不卡视频| 1000精品久久久久久久久| 亚洲欧美激情视频在线观看一区二区三区| 中文字幕欧美国产| 亚洲丝袜精品丝袜在线| 亚洲精品免费在线| 亚洲成a人片综合在线| 亚洲成人免费看| 久久99热国产| 国产精品一区二区在线看| 岛国精品在线观看| 在线一区二区视频| 91精品国产品国语在线不卡| 欧美精品一区二区三区一线天视频| 精品国产一二三| 国产精品欧美一级免费| 亚洲已满18点击进入久久| 婷婷开心久久网| 国产伦精品一区二区三区免费迷| 不卡的看片网站| 欧美性受xxxx黑人xyx性爽| 日韩女同互慰一区二区| 国产精品网站在线| 午夜成人在线视频| 国产真实乱偷精品视频免| 97久久超碰精品国产| 欧美久久久久久蜜桃| 久久久久久久久久美女| 亚洲美女少妇撒尿| 久久av资源网| 91毛片在线观看| 日韩三级免费观看| 亚洲女子a中天字幕| 美女一区二区在线观看| av一区二区三区在线| 制服丝袜一区二区三区| 中文字幕精品综合| 日韩中文欧美在线| 99久久er热在这里只有精品15| 777亚洲妇女| 综合久久给合久久狠狠狠97色| 美日韩一区二区三区| 色综合久久天天综合网| 精品国产乱码久久久久久免费| 亚洲欧美综合网| 精品一区二区免费在线观看| 色综合久久综合网97色综合| 亚洲国产日韩一区二区| 国产成人av影院| 欧美二区三区的天堂| 亚洲三级在线看| 国产高清精品在线| 91精品久久久久久久91蜜桃| 综合久久给合久久狠狠狠97色| 久久成人羞羞网站| 欧美肥胖老妇做爰| 一区二区三区丝袜| 成人免费视频网站在线观看| 欧美大白屁股肥臀xxxxxx| 亚洲黄一区二区三区| 不卡免费追剧大全电视剧网站| 精品卡一卡二卡三卡四在线| 日本在线不卡视频| 欧美日韩国产123区| 亚洲卡通动漫在线| 99久久99久久综合| 欧美国产日韩亚洲一区| 韩日欧美一区二区三区| 日韩一卡二卡三卡国产欧美| 亚洲成人午夜影院| 91官网在线免费观看| 亚洲视频电影在线| 99国产精品一区| 亚洲人成伊人成综合网小说| 99久久er热在这里只有精品66| 国产精品无人区| www.日韩av| 日韩毛片一二三区| 色8久久精品久久久久久蜜| 亚洲天堂av老司机| 91网站最新网址| 亚洲美女区一区| 欧美午夜一区二区三区免费大片| 亚洲高清一区二区三区| 欧美日韩精品欧美日韩精品一|