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

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

?? eval_expr_to_rpn.php

?? 用PHP編寫的表達式計算器
?? PHP
字號:
<?php
/* 

運算符表:
------------------------------
| 優先級 | 結合性 |  運算符  |
------------------------------
|   4    |   R    | ^        |
|   3    |   N    | - +(一元)|
|   2    |   L    | * / %    |
|   1    |   L    | + -      |
------------------------------

文法:

A -> BA'
A'-> +BA'| -BA'| e

B -> CB'
B'-> *CB'| /CB'| %CB'| CB'| e

C -> +C | -C | D

D -> X^D | X^+C | X^-C | X

F -> A,F | A

X -> (A) | digit | fun(F) | fun()


fun -> /^[a-zA-Z_][0-9a-zA-Z_]*$/
digit -> /^(([0-9]+[\.]?[0-9]*)|([0-9]*[\.]?[0-9]+))$/

*/

function get_token_array($string)
{
	/* 構造記號流*/
	$token = array();
	$pos = array();
	$str_len = 0;
	while (true)
	{
		if (1 === preg_match('/^([%,\\^\\+\\-\\*\\/\\(\\)]).*$/',$string,$sub))
		{
			array_push($token,$sub[1]);
			array_push($pos,$str_len);
			$string = substr($string,strlen($sub[1]));
			$str_len += strlen($sub[1]);
			continue;
		}
		elseif (1 === preg_match('/^(([0-9]+[\\.]?[0-9]*)|([0-9]*[\\.]?[0-9]+)).*$/',$string,$sub))
		{
			array_push($token,floatval($sub[1]));
			array_push($pos,$str_len);
			$string = substr($string,strlen($sub[1]));
			$str_len += strlen($sub[1]);
			continue;
		}
		elseif (1 === preg_match('/^([a-zA-Z_][0-9a-zA-Z_]*\\().*$/',$string,$sub))
		{
			array_push($token,$sub[1]);
			array_push($pos,$str_len);
			$string = substr($string,strlen($sub[1]));
			$str_len += strlen($sub[1]);
			continue;
		}
		elseif (1 === preg_match('/^(\\s+).*$/',$string,$sub))
		{
			$string = substr($string,strlen($sub[1]));
			$str_len += strlen($sub[1]);
			continue;
		}
		else 
		{
			break;
		}
	}
	array_push($pos,$str_len);
	if ($string != '') 
	{
		return $str_len;
	}
	return array($token,$pos);
}

function current_token()
{
	global $g_count,$g_token;
	return $g_token[$g_count];
}

function next_token()
{
	global $g_count,$g_token;
	if (isset($g_token[$g_count+1]))
	{
		$g_count++;
		return $g_token[$g_count];
	}
	else 
	{
		return false;
	}
}

function error_pos()
{
	global $g_count,$g_pos;
	return $g_pos[$g_count];
}

function eval_expr_to_rpn($string)
{
	global $g_count,$g_token,$g_pos,$g_error;
	$g_error = null;
	$g_count = 0;
	$info = get_token_array($string);
	if (!is_array($info))
	{
		error(25,$info);
	}
	else 
	{
		$g_token = $info[0];
		$g_pos = $info[1];
//		print_r($info);
		array_push($g_token,'End');
		$ans = Fun_A();
		if ($g_count != sizeof($g_token)-1)
		{
			error(24,error_pos());
		}
		return $ans;
	}
}

function Fun_A()
{
	$ans_1 = Fun_B();
	$ans_2 = Fun_A_();
	if ($ans_1 === false or $ans_2 === false) 
	{
		error(1,error_pos());
		return false;
	}
	if ($ans_2 === '')
	{
		return $ans_1;
	}
	else 
	{
		return $ans_1.' '.$ans_2;
	}
}

function Fun_A_()
{
	if ('+' === current_token() or '-' === current_token())
	{
		$op = current_token();
		if ($op === '+')
		{
			$op = 'ADD';
		}
		elseif ($op === '-')
		{
			$op = 'SUB';
		}
		if (false === next_token())
		{
			error(2,error_pos());
			return false;
		}
		else 
		{
			$ans_1 = Fun_B();
			$ans_2 = Fun_A_();
			if ($ans_1 === false or $ans_2 === false) 
			{
				error(3,error_pos());
				return false;
			}
			if ($ans_2 === '')
			{
				return $ans_1.' '.$op;
			}
			else 
			{
				return $ans_1.' '.$op.' '.$ans_2;
			}
		}
	}
	else 
	{
		return '';
	}
}

function Fun_B()
{
	$ans_1 = Fun_C();
	$ans_2 = Fun_B_();
	if ($ans_1 === false or $ans_2 === false) 
	{
		error(4,error_pos());
		return false;
	}
	if ($ans_2 === '')
	{
		return $ans_1;
	}
	else 
	{
		return $ans_1.' '.$ans_2;
	}
}

function Fun_B_()
{
	if ('*' === current_token() or '/' === current_token() or '%' === current_token())
	{
		$op = current_token();
		if ($op === '*')
		{
			$op = 'MUL';
		}
		elseif ($op === '/')
		{
			$op = 'DIV';
		}
		elseif ($op === '%')
		{
			$op = 'MOD';
		}
		if (false === next_token())
		{
			error(5,error_pos());
			return false;
		}
		else 
		{
			$ans_1 = Fun_C();
			$ans_2 = Fun_B_();
			if ($ans_1 === false or $ans_2 === false) 
			{
				error(6,error_pos());
				return false;
			}
			if ($ans_2 === '')
			{
				return $ans_1.' '.$op;
			}
			else 
			{
				return $ans_1.' '.$op.' '.$ans_2;
			}
		}
	}
	elseif ( 1 === preg_match('/^[\\+\\-]?(([0-9]+[\\.]?[0-9]*)|([0-9]*[\\.]?[0-9]+))([eE][+-]?[0-9]+)?$/',current_token()) 
			or '(' === current_token()
			or 1 === preg_match('/^([a-zA-Z_][0-9a-zA-Z_]*\\()$/',current_token())
			)
	{
		$ans_1 = Fun_C();
		$ans_2 = Fun_B_();
		if ($ans_1 === false or $ans_2 === false)
		{
			error(30,error_pos());
			return false;
		}
		if ($ans_2 === '')
		{
			return $ans_1.' '.'MUL';
		}
		else
		{
			return $ans_1.' '.'MUL'.' '.$ans_2;
		}
	}
	else 
	{			
		return '';
	}
}

function Fun_C()
{
	if ('-' === current_token() or '+' === current_token())
	{
		if ('-' === current_token())
		{
			$op = ' NEC';
		}
		if ('+' === current_token())
		{
			$op = '';
		}
		if (false === next_token())
		{
			error(7,error_pos());
			return false;
		}
		$ans = Fun_C();
		if ($ans === false)
		{
			error(8,error_pos());
			return false;
		}
		else
		{
			return $ans.$op;
		}
	}
	else 
	{
		$ans = Fun_D();
		if ($ans === false)
		{
			error(9,error_pos());
			return false;
		}
		else
		{
			return $ans;
		}
	}
}

function Fun_D()
{
	$ans_1 = Fun_X();
	if ($ans_1 === false)
	{
		error(10,error_pos());
		return false;
	}
	if ('^' === current_token())
	{
		if (false === next_token())
		{
			error(11,error_pos());
			return false;
		}
		if ('-' === current_token() or '+' === current_token())
		{
			$ans_2 = Fun_C();
			if ($ans_2 === false)
			{
				error(12,error_pos());
				return false;
			}
			return $ans_1.' '.$ans_2.' '.'POW';
		}
		else 
		{
			$ans_2 = Fun_D();
			if ($ans_2 === false)
			{
				error(13,error_pos());
				return false;
			}
			return $ans_1.' '.$ans_2.' '.'POW';
		}
	}
	else 
	{
		return $ans_1;
	}
}

function Fun_F()
{
	$ans_1 = Fun_A();
	if ($ans_1 === false)
	{
		error(14,error_pos());
		return false;
	}
	if (',' === current_token())
	{
		if (false === next_token())
		{
			error(15,error_pos());
			return false;
		}
		$ans_2 = Fun_F();
		if ($ans_2 === false)
		{
			error(16,error_pos());
			return false;
		}
		return $ans_1.' '.$ans_2;
	}
	else 
	{
		return $ans_1;
	}
}

function Fun_X()
{
	if ( '(' === current_token() ) 
	{
		if (false === next_token())
		{
			error(17,error_pos());
			return false;
		}
		$ans = Fun_A();
		if ($ans === false)
		{
			error(18,error_pos());
			return false;
		}
		if ( ')' != current_token() )
		{
			error(19,error_pos());
			return false;
		}
		next_token();
		return $ans;
	}
	elseif ( 1 === preg_match('/^[\\+\\-]?(([0-9]+[\\.]?[0-9]*)|([0-9]*[\\.]?[0-9]+))([eE][+-]?[0-9]+)?$/',current_token()) )
	{
		$ans = current_token();
		next_token();
		return $ans;
	}
	elseif ( 1 === preg_match('/^([a-zA-Z_][0-9a-zA-Z_]*\\()$/',current_token()) )
	{
		$fun_name = substr(current_token(),0,-1);
		if (false === next_token())
		{
			error(20,error_pos());
			return false;
		}
		if (')' === current_token()) 
		{
			if (false === next_token())
			{
				error(26,error_pos());
				return false;
			}
			return '()'.$fun_name;
		}
		else 
		{
			$ans = Fun_F();
			if ($ans === false)
			{
				error(21,error_pos());
				return false;
			}
			if ( ')' != current_token() )
			{
				error(22,error_pos());
				return false;
			}
			next_token();
			return '( '.$ans.' )'.$fun_name;
		}
	}
	else 
	{
		error(23,error_pos());
		return false;
	}
}

function error($info,$pos)
{
	global $g_error;
	if ($g_error === null)
	{
		$g_error = array($info,$pos);
	}
}

function get_error_info()
{
	global $g_error;
	$info_array = array
	(
		19 => '缺少右括號',
		22 => '缺少右括號',
		23 => '語法錯誤',
		24 => '語法錯誤',
		25 => '輸入錯誤'
	);
	if (array_key_exists($g_error[0],$info_array))
	{
		return $info_array[$g_error[0]];
	}
	else 
	{
		if ($g_error === null)
		{
			return null;
		}
		else 
		{
			return "錯誤:#{$g_error[0]}";
		}
	}
}
function get_error_pos()
{
	global $g_error;
	if ($g_error === null) 
	{
		return null;
	}
	else 
	{
		return $g_error[1];
	}
}
//$rpn = eval_expr_to_rpn('345sin(45656 123)');
//echo $rpn;
//echo "\n";
//$info = get_error_info();
//$pos = get_error_pos();
//var_dump($info);
//var_dump($pos);
//echo 214748364743541;
?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品高清| 国内精品视频666| 麻豆精品一区二区综合av| 成人免费av资源| 日韩视频免费直播| 亚洲精品国产品国语在线app| 午夜av区久久| 在线亚洲精品福利网址导航| 久久综合九色综合久久久精品综合| 亚洲精品久久7777| 国产伦精品一区二区三区视频青涩 | 洋洋av久久久久久久一区| 久久精品国产久精国产爱| 91免费视频大全| 中文字幕久久午夜不卡| 韩国精品一区二区| 91精选在线观看| 亚洲国产精品久久人人爱| 波波电影院一区二区三区| 2024国产精品| 国产一区二区三区视频在线播放| 91麻豆精品久久久久蜜臀| 亚洲妇女屁股眼交7| 色先锋久久av资源部| 日韩久久一区二区| 91网站最新地址| 久久电影网电视剧免费观看| 欧美色欧美亚洲另类二区| 亚洲视频中文字幕| 99久久国产综合精品麻豆| 久久久久九九视频| 国产伦理精品不卡| 国产精品视频在线看| 国产精品亚洲一区二区三区在线| 久久精品一区二区三区不卡| 久久66热re国产| 国产亚洲一区二区三区四区| 国产伦精品一区二区三区视频青涩 | 日本一区二区电影| 成人高清视频在线观看| 亚洲天堂精品在线观看| 91精彩视频在线| 亚洲大片免费看| 欧美va亚洲va在线观看蝴蝶网| 久久国产精品色婷婷| 久久久久国产精品麻豆| 不卡在线视频中文字幕| 亚洲综合激情另类小说区| 欧美日韩高清在线| 国产最新精品免费| 国产精品视频在线看| 色播五月激情综合网| 亚洲成人福利片| 亚洲动漫第一页| 欧美一级日韩一级| 国产精品综合久久| 亚洲日本在线观看| 91精品综合久久久久久| 国产69精品一区二区亚洲孕妇 | 91亚洲精品乱码久久久久久蜜桃| 一区二区三区免费网站| 欧美一区二区网站| 不卡电影一区二区三区| 亚洲成av人片一区二区梦乃| 日韩精品一区二区三区视频播放| 懂色av一区二区三区蜜臀| 亚洲激情综合网| 欧美电影精品一区二区| 99re热这里只有精品视频| 日本aⅴ亚洲精品中文乱码| 久久久精品国产免费观看同学| 91蜜桃婷婷狠狠久久综合9色| 午夜电影久久久| 国产女同互慰高潮91漫画| 欧美日韩一区视频| 国产91精品欧美| 日产精品久久久久久久性色| 色综合一区二区| 亚洲成人资源网| 《视频一区视频二区| 欧美丰满少妇xxxxx高潮对白| 国产精品 欧美精品| 亚洲电影欧美电影有声小说| 亚洲国产精华液网站w| 欧美福利一区二区| 色综合色综合色综合 | 欧美一级片免费看| 99久久99久久精品免费观看| 欧美怡红院视频| 东方aⅴ免费观看久久av| 蜜桃视频免费观看一区| 亚洲午夜一区二区| 亚洲视频在线一区| 国产精品日韩成人| 精品人伦一区二区色婷婷| 欧美三日本三级三级在线播放| a在线播放不卡| 国产999精品久久久久久| 免费成人结看片| 日本不卡123| 肉色丝袜一区二区| 视频一区在线视频| 亚洲小说春色综合另类电影| 亚洲日本一区二区三区| 亚洲国产精品v| 久久久亚洲精华液精华液精华液| 欧美成人午夜电影| 日韩欧美一二三| 欧美va亚洲va香蕉在线| 日韩欧美色电影| 日韩欧美一区二区免费| 欧美一区二区三区啪啪| 在线不卡中文字幕| 日韩一区二区三区视频| 日韩视频在线你懂得| 日韩午夜av电影| 精品国产露脸精彩对白| 日韩精品一区二区三区在线| 日韩精品一区二区在线| 精品乱人伦小说| 国产日本欧美一区二区| 国产精品五月天| 中文字幕一区二区三区不卡| 最近中文字幕一区二区三区| 亚洲人成7777| 亚洲成av人片www| 久久精品72免费观看| 国产一区二区三区免费看| 国产成人aaa| 99精品久久免费看蜜臀剧情介绍| 一本一道久久a久久精品综合蜜臀| 在线观看欧美精品| 欧美一三区三区四区免费在线看| 日韩精品专区在线影院重磅| 欧美精品一区二区高清在线观看| 国产片一区二区三区| 亚洲精品久久久久久国产精华液| 天天av天天翘天天综合网 | 日本韩国精品在线| 欧美精品色综合| 国产视频一区二区三区在线观看| 国产三级三级三级精品8ⅰ区| 国产精品传媒视频| 天堂在线一区二区| 国产99久久久国产精品潘金| 色吊一区二区三区| 日韩免费一区二区| 国产精品电影院| 蜜臀久久99精品久久久画质超高清| 国产一区二区女| 欧美日韩精品三区| 亚洲国产精华液网站w | 樱花影视一区二区| 捆绑变态av一区二区三区| 成人18精品视频| 91精品国产欧美日韩| 国产精品你懂的| 麻豆freexxxx性91精品| eeuss鲁一区二区三区| 91精品国产色综合久久不卡蜜臀| 国产精品你懂的| 狠狠色丁香久久婷婷综合_中| 91日韩在线专区| 久久久久久久久久久黄色| 亚洲国产视频a| 93久久精品日日躁夜夜躁欧美| 日韩你懂的在线播放| 一区二区三区在线播| 大白屁股一区二区视频| 日韩一二三四区| 亚洲精品成a人| 99久久精品情趣| www国产成人| 青青草原综合久久大伊人精品优势 | 日韩伦理av电影| 国产美女av一区二区三区| 欧美一区二区免费| 亚洲香肠在线观看| 99久久免费视频.com| 国产欧美精品日韩区二区麻豆天美| 日韩专区一卡二卡| 欧美日韩精品免费| 亚洲尤物视频在线| 欧洲av在线精品| 亚洲精品va在线观看| 97精品电影院| 中文字幕一区二区三区不卡在线| 成人一区二区在线观看| 欧美精品一区二区三区很污很色的 | 亚洲一区欧美一区| 91丨porny丨户外露出| 国产午夜精品福利| 国产成人在线电影| 久久久久久黄色| 国产成人在线电影| 国产精品久久久久久久久搜平片 | 91原创在线视频| 成人欧美一区二区三区1314| 成人黄色国产精品网站大全在线免费观看 | 欧美日韩国产一级|