程序讓生活更美好
半畝方塘 天光云影
C++博客
:: ::
新隨筆
::
聯(lián)系
:: ::
管理
::
55 隨筆 :: 4 文章 :: 202 評論 :: 0 Trackbacks
公告
本人文章,隨便轉(zhuǎn)載
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(11)
給我留言
查看公開留言
查看私人留言
隨筆分類
(58)
Boost
(rss)
c/c++(28)
(rss)
Office
(rss)
Other(9)
(rss)
QT(8)
(rss)
STL(1)
(rss)
Templates(1)
(rss)
Tools(3)
(rss)
UNIX(8)
(rss)
文章分類
(4)
SQLite(4)
(rss)
c++
STL中文站
Boost
C/C++ Reference
cplusplus
最新隨筆
1.?在windows環(huán)境中配置go語言開發(fā)環(huán)境
2.?Qt程序Release模式編譯
3.?使用jpeglib庫實現(xiàn)bmp轉(zhuǎn)jpg (轉(zhuǎn))
4.?VC6.0下的GDI+配置(轉(zhuǎn))
5.?Linux下QT程序字體設(shè)定錯誤造成程序中文亂碼
6.?C 代碼優(yōu)化(轉(zhuǎn))
7.?C 高效編程忠告(轉(zhuǎn))
8.?UNIX下編譯SQLite3.3.6
9.?*.bff文件的安裝
10.?重裝系統(tǒng)后ORACLE的恢復的幾種方法(轉(zhuǎn)載)
11.?Solaris環(huán)境下編譯頭文件的注意事項
12.?簡單介紹UNIX下編寫定時器程序
13.?主流UNIX命令對比表
14.?XMananger不能登錄AIX的問題分析
15.?AIX中的inittab 文件(轉(zhuǎn))
16.?crontab命令詳解(轉(zhuǎn)帖)
17.?QT Designer中安裝QWT插件
18.?C實現(xiàn)轉(zhuǎn)動的短棒
19.?C語言獲取目錄中文件名
20.?Broadcom NetXtrem II網(wǎng)卡Linux安裝指南(轉(zhuǎn)載)
積分與排名
積分 - 272464
排名 - 95
最新隨筆
1.?在windows環(huán)境中配置go語言開發(fā)環(huán)境
2.?Qt程序Release模式編譯
3.?使用jpeglib庫實現(xiàn)bmp轉(zhuǎn)jpg (轉(zhuǎn))
4.?VC6.0下的GDI+配置(轉(zhuǎn))
5.?Linux下QT程序字體設(shè)定錯誤造成程序中文亂碼
6.?C 代碼優(yōu)化(轉(zhuǎn))
7.?C 高效編程忠告(轉(zhuǎn))
8.?UNIX下編譯SQLite3.3.6
9.?*.bff文件的安裝
10.?重裝系統(tǒng)后ORACLE的恢復的幾種方法(轉(zhuǎn)載)
11.?Solaris環(huán)境下編譯頭文件的注意事項
12.?簡單介紹UNIX下編寫定時器程序
13.?主流UNIX命令對比表
14.?XMananger不能登錄AIX的問題分析
15.?AIX中的inittab 文件(轉(zhuǎn))
16.?crontab命令詳解(轉(zhuǎn)帖)
17.?QT Designer中安裝QWT插件
18.?C實現(xiàn)轉(zhuǎn)動的短棒
19.?C語言獲取目錄中文件名
20.?Broadcom NetXtrem II網(wǎng)卡Linux安裝指南(轉(zhuǎn)載)
最新評論
1.?re: 左值和右值
@wu
因為自增和自減運算符是有副作用的
--hj
2.?re: UNIX下編譯SQLite3.3.6
你好博主,我在aix6.1上編譯sqlite遇到了問題,能請教你嗎?492217330@qq.com謝謝
--莊
3.?re: C++中的內(nèi)存對齊[未登錄]
看過好幾個內(nèi)存對齊了,你的最直觀!!!
--燕子
4.?re: C++中的內(nèi)存對齊[未登錄]
解釋的十分精辟!
--zc
5.?re: C++中的內(nèi)存對齊
@牛在藍天
補充的很好,謝謝~
--coat white
Lex和Yacc真不錯
Lex和Yacc真不錯
這兩天一直在忙著寫論文,論文中需要用到Lex和Yacc的一些東西,看了一些相關(guān)的資料,發(fā)現(xiàn)Lex和Yacc兩個工具還真是非常有意思的東西,有了它們做一些此法語法方面的東西還真是不錯,可以用來幫助設(shè)計編譯器了。等忙玩這一陣子之后,如果有空再上來寫一點相關(guān)的東西。
posted on 2007-04-13 21:47
北風之神007
閱讀(5970)
評論(3)
編輯
收藏
引用
所屬分類:
Other
評論
#
re: Lex和Yacc真不錯
2007-06-14 01:40
fny
我正在編寫一個語法分析器。目的是把像a[]c[f[]n[]]這樣的數(shù)據(jù)變換成[‘TREE',[],a] ['TREE',[ ['TREE",[],f] ['TREE',[],n] ], c]這樣的數(shù)據(jù)。也就是任意個樹形數(shù)據(jù)結(jié)構(gòu)的形式變換。目前對于只有嵌套的數(shù)據(jù)可以成功的變換,既a[], a[b[c[]]]這樣的數(shù)據(jù)。可是對于并列的數(shù)據(jù)卻無法變換,即a[]b[], a[b[]c[]]這樣的數(shù)據(jù)。請教,有沒有好的主意?
回復
更多評論
#
re: Lex和Yacc真不錯
2008-03-14 17:34
暗金裝備
難度還可以,呵呵,編譯原理的時候?qū)W過,用棧可以實現(xiàn)此功能:
第一次要先判斷整個表達的正確性,
在此基礎(chǔ)上開始進行轉(zhuǎn)換:
如a[b[]c[]]:
讀入字符,壓入棧,直到遇到 [(也壓入棧),這時開始構(gòu)造:['TREE', [
再次讀入,壓入棧,當遇到 ](不壓入棧),彈出棧頂,如果是 ],則構(gòu)造成:
['TREE', [], 再次彈出棧頂,直到棧頂是[或者棧空,構(gòu)造成['TREE', [],b]
以此類推即可,權(quán)當參考
回復
更多評論
#
re: Lex和Yacc真不錯
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('$'); // 開始的標志,可用可不用
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', ["; // 樹結(jié)構(gòu)的前半部分
}
} else { // 是],說明一個樹或者一個子樹已經(jīng)結(jié)束,那么構(gòu)造完這棵樹
if ('$' == stack.top()) {
break;
}
// 處理[時的構(gòu)造結(jié)構(gòu)
if ('[' == stack.top()) {
result += "], ";
stack.pop();
}
// 片面是處理樹的名字,在這里用了最簡單的處理,只處理了一個字母的
// 其實名字應(yīng)該是可以有多個字母,這時,用一個循環(huán)來解決,而且要注意
// 的是壓入棧的,所以讀出來的時候名字是反的,所以再反過來就好了.
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ā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
在windows環(huán)境中配置go語言開發(fā)環(huán)境
UNIX下編譯SQLite3.3.6
重裝系統(tǒng)后ORACLE的恢復的幾種方法(轉(zhuǎn)載)
Broadcom NetXtrem II網(wǎng)卡Linux安裝指南(轉(zhuǎn)載)
C++各大有名庫的介紹(轉(zhuǎn)載)
Lex和Yacc真不錯
軟件測試的14種類型(轉(zhuǎn)載)
C++Primer第四版下載
《C和指針》書里面的源程序
網(wǎng)站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 北風之神007
久久精品视频网
|
婷婷综合久久中文字幕蜜桃三电影
|
久久午夜无码鲁丝片秋霞
|
国产欧美久久久精品影院
|
亚洲国产成人乱码精品女人久久久不卡
|
国产Av激情久久无码天堂
|
99久久国产综合精品成人影院
|
久久久久国产精品麻豆AR影院
|
久久精品国产99久久香蕉
|
亚洲精品国产第一综合99久久
|
久久综合狠狠综合久久
|
国产亚洲美女精品久久久
|
国产精品青草久久久久婷婷
|
久久综合九色综合欧美就去吻
|
热久久国产欧美一区二区精品
|
精品乱码久久久久久久
|
久久国产精品77777
|
久久久久女人精品毛片
|
亚洲第一永久AV网站久久精品男人的天堂AV
|
亚洲午夜精品久久久久久app
|
免费精品99久久国产综合精品
|
久久人人爽人人爽人人片av麻烦
|
国产成人无码精品久久久免费
|
久久久久国产精品
|
丰满少妇高潮惨叫久久久
|
亚洲精品高清久久
|
久久人人爽人人澡人人高潮AV
|
午夜精品久久影院蜜桃
|
国产精品99久久久精品无码
|
国产成人精品综合久久久久
|
999久久久免费精品国产
|
国内精品久久久久影院日本
|
久久国产精品久久
|
伊人久久大香线蕉AV色婷婷色
|
久久精品国产精品亚洲精品
|
国产成人精品三上悠亚久久
|
yy6080久久
|
久久亚洲国产精品123区
|
日本欧美久久久久免费播放网
|
久久久九九有精品国产
|
日韩欧美亚洲综合久久
|