青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

程序讓生活更美好

半畝方塘 天光云影

  C++博客 ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
  55 隨筆 :: 4 文章 :: 202 評(píng)論 :: 0 Trackbacks

Lex和Yacc真不錯(cuò)

這兩天一直在忙著寫(xiě)論文,論文中需要用到Lex和Yacc的一些東西,看了一些相關(guān)的資料,發(fā)現(xiàn)Lex和Yacc兩個(gè)工具還真是非常有意思的東西,有了它們做一些此法語(yǔ)法方面的東西還真是不錯(cuò),可以用來(lái)幫助設(shè)計(jì)編譯器了。等忙玩這一陣子之后,如果有空再上來(lái)寫(xiě)一點(diǎn)相關(guān)的東西。

posted on 2007-04-13 21:47 北風(fēng)之神007 閱讀(5970) 評(píng)論(3)  編輯 收藏 引用 所屬分類(lèi): Other

評(píng)論

# re: Lex和Yacc真不錯(cuò) 2007-06-14 01:40 fny
我正在編寫(xiě)一個(gè)語(yǔ)法分析器。目的是把像a[]c[f[]n[]]這樣的數(shù)據(jù)變換成[‘TREE',[],a] ['TREE',[ ['TREE",[],f] ['TREE',[],n] ], c]這樣的數(shù)據(jù)。也就是任意個(gè)樹(shù)形數(shù)據(jù)結(jié)構(gòu)的形式變換。目前對(duì)于只有嵌套的數(shù)據(jù)可以成功的變換,既a[], a[b[c[]]]這樣的數(shù)據(jù)。可是對(duì)于并列的數(shù)據(jù)卻無(wú)法變換,即a[]b[], a[b[]c[]]這樣的數(shù)據(jù)。請(qǐng)教,有沒(méi)有好的主意?  回復(fù)  更多評(píng)論
  

# re: Lex和Yacc真不錯(cuò) 2008-03-14 17:34 暗金裝備
難度還可以,呵呵,編譯原理的時(shí)候?qū)W過(guò),用棧可以實(shí)現(xiàn)此功能:
第一次要先判斷整個(gè)表達(dá)的正確性,
在此基礎(chǔ)上開(kāi)始進(jìn)行轉(zhuǎn)換:
如a[b[]c[]]:
讀入字符,壓入棧,直到遇到 [(也壓入棧),這時(shí)開(kāi)始構(gòu)造:['TREE', [
再次讀入,壓入棧,當(dāng)遇到 ](不壓入棧),彈出棧頂,如果是 ],則構(gòu)造成: 
['TREE', [], 再次彈出棧頂,直到棧頂是[或者棧空,構(gòu)造成['TREE', [],b]

以此類(lèi)推即可,權(quán)當(dāng)參考  回復(fù)  更多評(píng)論
  

# re: Lex和Yacc真不錯(cuò) 2008-03-14 17:59 暗金裝備
#include <iostream>
#include <cstdlib>
#include <stack>

/**
* Application entry
*/
int main(int argc, char *argv[]) {
std::string str = "a[]b[c[f[]]d[]]";
std::string result; // 保存結(jié)果
std::stack<char> stack;

stack.push('$'); // 開(kāi)始的標(biāo)志,可用可不用
size_t index = 0;
size_t length = str.size();
for (index = 0; index < length; ++index) {
// 如果不是],則壓入棧中
if (str.at(index) != ']') {
stack.push(str.at(index));

if ('[' == str.at(index)) {
result += "['TREE', ["; // 樹(shù)結(jié)構(gòu)的前半部分
}
} else { // 是],說(shuō)明一個(gè)樹(shù)或者一個(gè)子樹(shù)已經(jīng)結(jié)束,那么構(gòu)造完這棵樹(shù)
if ('$' == stack.top()) {
break;
}

// 處理[時(shí)的構(gòu)造結(jié)構(gòu)
if ('[' == stack.top()) {
result += "], ";
stack.pop();
}

// 片面是處理樹(shù)的名字,在這里用了最簡(jiǎn)單的處理,只處理了一個(gè)字母的
// 其實(shí)名字應(yīng)該是可以有多個(gè)字母,這時(shí),用一個(gè)循環(huán)來(lái)解決,而且要注意
// 的是壓入棧的,所以讀出來(lái)的時(shí)候名字是反的,所以再反過(guò)來(lái)就好了.
result.append(1, stack.top());
result += "]";
stack.pop();
}
}

std::cout << result << std::endl;

return EXIT_SUCCESS;
}

輸出結(jié)果:
['TREE', [], a]['TREE', [['TREE', [['TREE', [], f]], c]['TREE', [], d]], b]  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一级免费视频| 亚洲精品老司机| 久久成人18免费观看| 亚洲一区二区欧美| 国产视频欧美| 欧美成人日本| 欧美精品三级| 亚洲欧美精品在线观看| 欧美一区免费| 亚洲欧洲精品成人久久奇米网 | 亚洲高清久久| 亚洲高清视频一区二区| 欧美成人r级一区二区三区| 一区二区三区精品国产| 亚洲一区二区欧美日韩| 国内一区二区三区| 亚洲啪啪91| 国产一二三精品| 欧美日本免费一区二区三区| 国产喷白浆一区二区三区| 午夜精品久久久久久久久久久久久 | 亚洲视频精选| 国产欧美精品一区二区色综合 | 亚洲精品永久免费| 国产欧美一区二区三区另类精品 | 久久夜色精品国产亚洲aⅴ| 欧美成人午夜激情在线| 久久av一区二区| 欧美v日韩v国产v| 亚洲欧美国产高清va在线播| 久久综合色播五月| 午夜日韩视频| 欧美激情一区二区三区在线视频 | 久久成人免费网| 欧美另类99xxxxx| 牛牛影视久久网| 国产精品乱人伦中文| 亚洲国产精品va在看黑人| 国产午夜精品久久久久久久| 99这里有精品| 亚洲精品久久久一区二区三区| 欧美尤物一区| 欧美在线一区二区三区| 欧美午夜激情小视频| 亚洲国产精品999| 在线看片成人| 久久精彩视频| 久久激情五月丁香伊人| 国产精品久久网| 99天天综合性| 亚洲少妇诱惑| 欧美日韩成人激情| 亚洲欧洲精品一区二区三区| 亚洲国产高清一区二区三区| 久久不射中文字幕| 欧美一区免费视频| 国产精品无码永久免费888| 99精品福利视频| 日韩一区二区福利| 欧美日韩成人一区| 亚洲欧洲久久| 99国产精品99久久久久久| 欧美大片一区二区三区| 亚洲第一页自拍| 亚洲精品小视频在线观看| 免费在线播放第一区高清av| 欧美国产日韩二区| 亚洲经典在线| 欧美福利电影在线观看| 亚洲精品在线观| 亚洲一区二区视频在线| 国产精品久久久久影院色老大| 亚洲一区在线直播| 久久精品视频在线| 黄色日韩在线| 亚洲国产日韩精品| 国产欧美一区二区精品忘忧草 | 一区精品在线| 久久一区中文字幕| 亚洲国产天堂网精品网站| 一本色道久久综合亚洲精品不卡| 欧美激情综合亚洲一二区| 夜夜精品视频| 久久精品国产欧美亚洲人人爽| 国内精品久久久久久久97牛牛| 久久免费偷拍视频| 99精品热6080yy久久 | 亚洲国内欧美| 欧美色网在线| 久久精品视频网| 亚洲精品视频免费| 久久se精品一区二区| 亚洲国产一区二区三区高清| 欧美日韩一区二区欧美激情| 午夜欧美视频| 亚洲国产精品福利| 午夜精品久久久久影视| 亚洲第一精品夜夜躁人人躁| 欧美三级视频| 久久夜色精品国产噜噜av| 99国产精品久久久久久久久久 | 久久一区二区三区av| 亚洲免费观看高清完整版在线观看熊 | 亚洲神马久久| 国产自产v一区二区三区c| 欧美日韩黄色一区二区| 欧美在线亚洲在线| 一本久久综合亚洲鲁鲁五月天| 欧美一区视频| av成人毛片| 在线欧美电影| 国产女人水真多18毛片18精品视频| 嫩草国产精品入口| 欧美一区二区三区视频免费播放| 日韩视频中文字幕| 欧美第一黄网免费网站| 久久久久高清| 欧美一区综合| 亚洲一区二区在线视频| 亚洲精品一区二区三区婷婷月| 韩国精品一区二区三区| 国产精品成人一区二区网站软件| 欧美成人免费全部| 久久久国产精品一区| 性色av一区二区怡红| 一区二区三区四区五区视频 | 亚洲人成绝费网站色www| 久久夜色精品亚洲噜噜国产mv| 亚洲欧美日韩国产精品| 中文av一区二区| 99在线热播精品免费99热| 91久久线看在观草草青青| 在线免费观看视频一区| 激情综合电影网| 国产在线精品一区二区中文| 国产日韩欧美视频在线| 国产九九视频一区二区三区| 国产精品看片资源| 国产精品久久久久久久免费软件| 亚洲成在线观看| 夜夜精品视频| 一区二区三区回区在观看免费视频| 亚洲国产一区二区视频| 在线看国产一区| 91久久国产综合久久蜜月精品| 在线观看中文字幕不卡| 亚洲福利免费| 亚洲精品久久久久| 日韩一区二区精品葵司在线| 中国av一区| 亚洲欧美激情四射在线日| 欧美一区二区三区在线观看视频| 欧美淫片网站| 欧美.www| 亚洲黄色一区| 亚洲另类春色国产| 这里只有精品在线播放| 亚洲制服少妇| 久久久在线视频| 欧美日韩国产91| 国产精品一级| 亚洲大胆女人| 亚洲一区欧美二区| 久久久久久国产精品一区| 欧美成人免费一级人片100| 欧美激情精品久久久久久久变态| 欧美激情国产精品| 亚洲午夜久久久| 久久福利一区| 欧美 日韩 国产 一区| 国产精品成人午夜| 伊人春色精品| 亚洲欧美国产另类| 欧美成人自拍视频| 亚洲视频在线一区观看| 久久久噜久噜久久综合| 欧美视频精品一区| 狠狠久久亚洲欧美| 日韩一区二区免费看| 久久久久亚洲综合| 99天天综合性| 欧美va日韩va| 国产日韩在线亚洲字幕中文| 亚洲精品久久久蜜桃| 欧美一区二区黄色| 亚洲精品欧美极品| 久久人人97超碰精品888| 国产精品高精视频免费| 最新日韩在线视频| 久久精品人人做人人爽| av不卡在线| 欧美国产日韩一区| 国语自产在线不卡| 亚洲午夜视频在线观看| 欧美激情国产日韩| 久久精品国产亚洲一区二区| 国产精品久久二区二区| 一区二区三区国产| 亚洲电影在线| 老司机免费视频久久|