锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久九九兔免费精品6,91精品国产91久久久久福利,久久国产一片免费观看http://m.shnenglu.com/dancefire/archive/2011/03/09/fix-bad-superblock-in-linux.htmlDancefireDancefireTue, 08 Mar 2011 19:30:00 GMThttp://m.shnenglu.com/dancefire/archive/2011/03/09/fix-bad-superblock-in-linux.htmlhttp://m.shnenglu.com/dancefire/comments/141389.htmlhttp://m.shnenglu.com/dancefire/archive/2011/03/09/fix-bad-superblock-in-linux.html#Feedback3http://m.shnenglu.com/dancefire/comments/commentRss/141389.htmlhttp://m.shnenglu.com/dancefire/services/trackbacks/141389.html闃呰鍏ㄦ枃

Dancefire 2011-03-09 03:30 鍙戣〃璇勮
]]>
涔熻皥琛ㄨ揪寮忓垎鏋愬拰璁$畻http://m.shnenglu.com/dancefire/archive/2009/02/04/72964.htmlDancefireDancefireWed, 04 Feb 2009 04:02:00 GMThttp://m.shnenglu.com/dancefire/archive/2009/02/04/72964.htmlhttp://m.shnenglu.com/dancefire/comments/72964.htmlhttp://m.shnenglu.com/dancefire/archive/2009/02/04/72964.html#Feedback5http://m.shnenglu.com/dancefire/comments/commentRss/72964.htmlhttp://m.shnenglu.com/dancefire/services/trackbacks/72964.html鐜嬪崥鐐?/a> Blog涓?a href="http://m.shnenglu.com/d3d/archive/2009/02/03/72851.html">浜旇繘鍒躲?/a>榪欑瘒鏂囩珷銆傚叾涓叧浜?榪涘埗鍒?0榪涘埗鐨勮漿鎹㈣嚜鐒舵病鏈変粈涔堟剰鎬濓紝榪欑瘒鏂囩珷緇欑殑浠g爜涓昏鏄璁哄浣曡繘琛岃〃杈懼紡鍒嗘瀽鍜岃綆楃殑銆備綔鑰呰嚜鍒朵簡(jiǎn)涓涓猄tack錛屽茍涓旂敤鍏跺艦鎴愪簡(jiǎn)涓や釜鍫嗘爤鍒嗗埆鐢ㄤ簬瀛樺偍鏁板煎拰榪愮畻絎︺傛瘮杈冨吀鍨嬬殑琛ㄨ揪寮忓鐞嗙殑鏂規(guī)硶銆備粠瀹炵幇涓婄湅錛屼唬鐮佹湁浜涜噧鑲匡紝鑰屼笖蹇呰鐨勪紭鍖栧緢灝戯紝鍙﹀灝辨槸娌℃湁鍏呭垎鍒╃敤鏍囧噯鎻愪緵鐨勪究鍒┿傛瘮濡傞偅涓猄tack瀹屽叏娌℃湁蹇呰鑷埗錛孲TL鎻愪緵鐨剆td::stack<T>鍙互寰堝ソ鐨勫畬鎴愪換鍔°?br>
鑰屼粖澶╂垜瑕佸仛鐨勬槸錛屼嬌鐢╞oost::spirit鏉ュ疄鐜板悓鏍風(fēng)殑琛ㄨ揪寮忓垎鏋愬拰璁$畻銆備紬鎵鍛ㄧ煡錛宐oost鏄疌++涓川閲忓緢楂樼殑搴擄紝琚О涓哄噯鏍囧噯搴擄紝鍥犱負(fù)鍏跺瓨鍦ㄧ殑涓涓緢閲嶈鐨勭洰鐨勫氨鏄負(fù)涓嬩竴浠++搴撴彁渚涢妗堛傜洰鍓嶅凡緇忔湁澶ч噺鐨刡oost搴撴垚涓轟簡(jiǎn)C++鏍囧噯搴撶殑涓閮ㄥ垎銆傛垜鐜板湪瑕佺敤鐨勬槸Boost鐨凷pirit搴?/a>銆傝繖涓簱鍙互鐩存帴鍦–++浠g爜涓挵鍐橢BNF銆傚榪囩紪璇戝師鐞嗙殑鏈嬪弸搴旇瀵規(guī)閮藉緢鐔熸?zhèn)夊Q岃繖鏄竴縐嶆瘮鍫嗘爤鏇寸伒媧葷殑瑙f瀽琛ㄨ揪寮忕敋鑷崇▼搴忕殑鏂瑰紡銆?br>
濡傛灉鎴戜滑瑕佸鐞嗗洓鍒欒繍綆楃殑琛ㄨ揪寮忥紝閭d箞鎴戜滑鍙渶瑕佸湪C++涓啓鍏ヤ笅鍒桬BNF鐨勫畾涔夛細(xì)

    group       = '(' >> expression >> ')';
    factor      
= integer | group;
    term        
= factor >> *(('*' >> factor) | ('/' >> factor));
    expression  
= term >> *(('+' >> term) | ('-' >> term));

鎴戜滑灝辨瀯鎴愪簡(jiǎn)榪欎釜琛ㄨ揪寮忕殑鏍煎紡瀹氫箟錛屽畠鍙互寰堣交鏉劇殑澶勭悊涓嬪垪琛ㄨ揪寮忕殑榪愮畻錛?br>
    12345
    
-12345
    
+12345
    
1 + 2
    
1 * 2
    
1/2 + 3/4
    
1 + 2 + 3 + 4
    
1 * 2 * 3 * 4
    (
1 + 2* (3 + 4)
    (
-1 + 2* (3 + -4)
    
1 + ((6 * 200- 20/ 6
    (
1 + (2 + (3 + (4 + 5))))

寰堢畝鍗曞惂錛?br>
浣跨敤榪噛acc鎴栬?lex鐨勬湅鍙嬪榪欑被瀹氫箟鑲畾寰堢啛鎮(zhèn)夈備絾鏄墍涓嶅悓鐨勬槸錛屼粬浠兘鏄鐢ㄦ埛鍐欎竴涓ā鏉匡紝鐒跺悗鐢▂acc鎴栬?lex澶勭悊妯℃澘鐢熸垚鐩稿簲璇█鐨勭▼搴忋傜▼搴忚噧鑲夸笖寰堥毦闃呰銆傝屼笖鐢變簬涓嶆槸鑷繁鍐欑殑紼嬪簭錛岃皟鏁磋搗鏉ユ昏緇忚繃涓姝ユ墜緇紝姣旇緝綣佺悙銆?br>
鑰屼嬌鐢–++鐨勬湅鍙嬪垯涓嶇敤鏈夎繖縐嶇儲(chǔ)鎭鹼紝Boost鐨凷pirit鍏呭垎鍒╃敤浜?jiǎn)C++寮哄ぇ鐨勮娉曞姛鑳姐傛垜浠彲浠ョ洿鎺ュ湪紼嬪簭涓啓鍏ヤ笂榪扮殑琛ㄨ揪寮忓畾涔夛紝鐒跺悗鎴戜滑鐨勭▼搴忓氨鏀寔榪欎簺琛ㄨ揪寮忕殑澶勭悊浜?jiǎn)銆備笉闇瑕佷換浣曢澶栫殑紼嬪簭澶勭悊銆傛墍闇瑕佺殑浠呬粎鏄痠nclude涓浜涘ご鏂囦歡鑰屽凡銆傛槸鐨勶紝浠呬粎鏄痠nclude涓浜涘ご鏂囦歡銆備笉瑕佹媴蹇?jī)闇瑕佸畨瑁呬粈涔堥澶栫殑涓滆タ錛屾垨鑰呴渶瑕侀摼鎺ヤ粈涔堝簱錛屽洜涓篠pirit鐨勫疄鐜板畬鍏ㄦ槸澶存枃浠剁粍鎴愮殑錛屾垜浠笉闇瑕侀摼鎺ヤ換浣曞簱銆傛妸boost鐨勫ご鏂囦歡璺緞鏀懼埌緙栬瘧鏈熶腑錛岀洿鎺ョ紪璇戝氨ok浜?jiǎn)銆傚緢杞誨閥銆?br>
涓嬮潰灝辨槸鎴戠敤Boost Spirit瀹炵幇鐨勫洓鍒欒繍綆楄〃杈懼紡鐨勪唬鐮侊紝鐢變簬鎴戠殑閲嶇偣鏄〃杈懼紡鐨勮В鏋愬拰璁$畻錛屽洜姝ゆ垜娌℃湁鐗瑰埆澶勭悊浜旇繘鍒跺埌鍗佽繘鍒剁殑杞崲闂銆備絾鏄坊鍔犺搗鏉ユ樉鐒朵笉楹葷儲(chǔ)銆傛垜鍙粰鍑轟簡(jiǎn)涓涓簲榪涘埗鏁存暟閮ㄥ垎鐨勮緭鍑恒傚鏋滆〃杈懼紡鍑洪敊錛屽彲浠ョ洿鎺ョ敤綆ご鎸囧嚭鍝噷鏈夐敊銆傚緢鏂逛究璋冭瘯錛氾級(jí) 鑰屼笖浠g爜閲忔槸鍘熸枃绔犵殑浜斿垎涔嬩竴銆傜紪璇戝悗涔熶粎浠呮槸35KB錛屼篃涓嶆槸寰堣噧鑲跨殑銆?br>
澶у澶氫簡(jiǎn)瑙f爣鍑嗗簱錛屽浜?jiǎn)瑙oost錛孋++鐨勭紪鐮佷篃鏄緢鏈夎叮鍛崇殑銆?br>
#include <boost/config/warning_disable.hpp>
#include 
<boost/spirit/include/qi.hpp>
#include 
<boost/spirit/include/phoenix_operator.hpp>

#include 
<iostream>
#include 
<string>
#include 
<cmath>
#include 
<limits>

using namespace boost::spirit;
using namespace boost::spirit::qi;
using namespace boost::spirit::ascii;
using namespace boost::spirit::arg_names;

template 
<typename Iterator>
struct calculator : grammar<Iterator, double(), space_type>
{
    calculator() : calculator::base_type(expression)
    {
        expression 
= term[_val = _1]
        
>> *( ('+' >> term[_val += _1]) | ('-' >> term[_val -= _1]) );

        term 
= factor[_val = _1]
        
>> *( ('*' >> factor[_val *= _1]) | ('/' >> factor[_val /= _1]) );

        factor 
= double_[_val = _1]    | '(' >> expression[_val = _1] >> ')'
            
|   ('-' >> factor[_val = -_1]) | ('+' >> factor[_val = _1]);
    }

    rule
<Iterator, double(), space_type> expression, term, factor, number;
};

//    http://www.jb.man.ac.uk/~slowe/cpp/itoa.html
std::string itoa(int value, int base) {
    
const int MAX_DIGITS = 35;
    
const char* DIGITS = "0123456789abcdefghijklmnopqrstuvwxyz";
    std::
string buf;
    buf.reserve( MAX_DIGITS ); 
// Pre-allocate enough space.
    if (base < 2 || base > 36return buf;
    
int quotient = value;
    
do {
        buf.push_back(DIGITS[ std::abs(quotient 
% base) ]);
        quotient 
/= base;
    } 
while ( quotient );
    
if ( value < 0) buf.push_back('-');
    std::reverse( buf.begin(), buf.end() );
    
return buf;
}

int main(int argc, char* argv[])
{
    std::cout 
<< "璇瘋緭鍏ヤ竴涓〃杈懼紡錛屽錛?+2.5*(6-25/4)-8.32" << std::endl << std::endl;
    std::cout 
<< "鎴栬緭鍏閫鍑恒?/span>" << std::endl << std::endl;
    std::cout 
<< "";
    calculator
<std::string::const_iterator> calc;

    std::
string str;
    
double result;
    
while (std::getline(std::cin, str))
    {
        
if (str.empty() || str[0== 'q' || str[0== 'Q')
            
break;

        std::
string::const_iterator iter = str.begin();
        std::
string::const_iterator end = str.end();
        
bool r = phrase_parse(iter, end, calc, result, space);

        
if (r && iter == end)
        {
            std::cout 
<< "杈撳叆璇硶姝g‘錛岃〃杈懼紡鐨勫間負(fù)錛?/span>";

            
if (result == std::numeric_limits<double>::infinity())
                std::cout 
<< "";
            
else if (result == std::numeric_limits<double>::quiet_NaN())
                std::cout 
<< "緇撴灉闈炴暟鍊?/span>";
            
else
            {
                std::cout 
<< result << std::endl;
                std::cout 
<< "鏁存暟閮ㄥ垎杞崲涓?榪涘埗涓猴細(xì)" << itoa(static_cast<int>(result), 5);
            }
            std::cout 
<< std::endl;

        }
        
else
        {
            std::cout 
<< "[杈撳叆鐨勮〃杈懼紡閿欒]" << std::endl;
            std::cout 
<< str << std::endl;
            std::cout 
<< std::string(iter - str.begin(), '-'<< "^" << std::endl;
        }
        std::cout 
<< std::endl << "";
    }
    
return 0;
}




榪愯緇撴灉濡備笅錛?br>
璇瘋緭鍏ヤ竴涓〃杈懼紡錛屽錛?/span>3+2.5*(6-25/4)-8.32

鎴栬緭鍏閫鍑恒?br>
> 3+2.5*(6-25/4)-8.32
杈撳叆璇硶姝g‘錛岃〃杈懼紡鐨勫間負(fù)錛?/span>-5.945
鏁存暟閮ㄥ垎杞崲涓?榪涘埗涓猴細(xì)
-10

> -6
杈撳叆璇硶姝g‘錛岃〃杈懼紡鐨勫間負(fù)錛?/span>-6
鏁存暟閮ㄥ垎杞崲涓?榪涘埗涓猴細(xì)
-11

> 6
杈撳叆璇硶姝g‘錛岃〃杈懼紡鐨勫間負(fù)錛?/span>6
鏁存暟閮ㄥ垎杞崲涓?榪涘埗涓猴細(xì)
11

> 1/0
杈撳叆璇硶姝g‘錛岃〃杈懼紡鐨勫間負(fù)錛?#8734;

> 23 + 4 ((5)-3* 6+ (-1)
[杈撳叆鐨勮〃杈懼紡閿欒]
23 + 4 ((5)-3* 6+ (-1)
-------^

> 23 + 4 ( ( 5-3*6+1)
[杈撳叆鐨勮〃杈懼紡閿欒]
23 + 4 ( ( 5-3*6+1)
-------^

> 23 + 4 + ( -5 *3)
杈撳叆璇硶姝g‘錛岃〃杈懼紡鐨勫間負(fù)錛?/span>12
鏁存暟閮ㄥ垎杞崲涓?榪涘埗涓猴細(xì)
22

>




Dancefire 2009-02-04 12:02 鍙戣〃璇勮
]]>
成人综合伊人五月婷久久| 久久涩综合| 久久亚洲AV成人出白浆无码国产| 亚洲第一极品精品无码久久| 久久99精品久久久久婷婷| 99久久国产亚洲高清观看2024| 久久综合给合综合久久| 国产69精品久久久久APP下载| 7777久久久国产精品消防器材| 2020久久精品亚洲热综合一本| 国产亚洲综合久久系列| 久久久精品波多野结衣| 久久久一本精品99久久精品66| 国产福利电影一区二区三区久久老子无码午夜伦不 | 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久久精品人妻无码专区不卡| 理论片午午伦夜理片久久 | 欧美黑人激情性久久| 99久久99久久精品国产片果冻 | 久久精品www人人爽人人| 久久亚洲中文字幕精品一区| 久久久久久久97| 欧美伊人久久大香线蕉综合| 7国产欧美日韩综合天堂中文久久久久| 久久亚洲AV无码精品色午夜 | 久久久久噜噜噜亚洲熟女综合| 奇米影视7777久久精品| 国产精品久久久久久久app | 九九久久自然熟的香蕉图片| 久久天天躁狠狠躁夜夜2020老熟妇| 亚洲中文字幕无码久久2017| 2020久久精品亚洲热综合一本| 污污内射久久一区二区欧美日韩 | 欧美精品一本久久男人的天堂| 亚洲AV无码久久寂寞少妇| 中文字幕无码av激情不卡久久| 污污内射久久一区二区欧美日韩| 狠狠久久综合| 色婷婷久久久SWAG精品| 青青草原综合久久大伊人导航 | 久久久久久久亚洲Av无码|