程序讓生活更美好
半畝方塘 天光云影
C++博客
:: ::
新隨筆
::
聯系
:: ::
管理
::
55 隨筆 :: 4 文章 :: 202 評論 :: 0 Trackbacks
公告
本人文章,隨便轉載
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(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環境中配置go語言開發環境
2.?Qt程序Release模式編譯
3.?使用jpeglib庫實現bmp轉jpg (轉)
4.?VC6.0下的GDI+配置(轉)
5.?Linux下QT程序字體設定錯誤造成程序中文亂碼
6.?C 代碼優化(轉)
7.?C 高效編程忠告(轉)
8.?UNIX下編譯SQLite3.3.6
9.?*.bff文件的安裝
10.?重裝系統后ORACLE的恢復的幾種方法(轉載)
11.?Solaris環境下編譯頭文件的注意事項
12.?簡單介紹UNIX下編寫定時器程序
13.?主流UNIX命令對比表
14.?XMananger不能登錄AIX的問題分析
15.?AIX中的inittab 文件(轉)
16.?crontab命令詳解(轉帖)
17.?QT Designer中安裝QWT插件
18.?C實現轉動的短棒
19.?C語言獲取目錄中文件名
20.?Broadcom NetXtrem II網卡Linux安裝指南(轉載)
積分與排名
積分 - 271388
排名 - 95
最新隨筆
1.?在windows環境中配置go語言開發環境
2.?Qt程序Release模式編譯
3.?使用jpeglib庫實現bmp轉jpg (轉)
4.?VC6.0下的GDI+配置(轉)
5.?Linux下QT程序字體設定錯誤造成程序中文亂碼
6.?C 代碼優化(轉)
7.?C 高效編程忠告(轉)
8.?UNIX下編譯SQLite3.3.6
9.?*.bff文件的安裝
10.?重裝系統后ORACLE的恢復的幾種方法(轉載)
11.?Solaris環境下編譯頭文件的注意事項
12.?簡單介紹UNIX下編寫定時器程序
13.?主流UNIX命令對比表
14.?XMananger不能登錄AIX的問題分析
15.?AIX中的inittab 文件(轉)
16.?crontab命令詳解(轉帖)
17.?QT Designer中安裝QWT插件
18.?C實現轉動的短棒
19.?C語言獲取目錄中文件名
20.?Broadcom NetXtrem II網卡Linux安裝指南(轉載)
最新評論
1.?re: 左值和右值
@wu
因為自增和自減運算符是有副作用的
--hj
2.?re: UNIX下編譯SQLite3.3.6
你好博主,我在aix6.1上編譯sqlite遇到了問題,能請教你嗎?492217330@qq.com謝謝
--莊
3.?re: C++中的內存對齊[未登錄]
看過好幾個內存對齊了,你的最直觀!!!
--燕子
4.?re: C++中的內存對齊[未登錄]
解釋的十分精辟!
--zc
5.?re: C++中的內存對齊
@牛在藍天
補充的很好,謝謝~
--coat white
Lex和Yacc真不錯
Lex和Yacc真不錯
這兩天一直在忙著寫論文,論文中需要用到Lex和Yacc的一些東西,看了一些相關的資料,發現Lex和Yacc兩個工具還真是非常有意思的東西,有了它們做一些此法語法方面的東西還真是不錯,可以用來幫助設計編譯器了。等忙玩這一陣子之后,如果有空再上來寫一點相關的東西。
posted on 2007-04-13 21:47
北風之神007
閱讀(5957)
評論(3)
編輯
收藏
引用
所屬分類:
Other
評論
#
re: Lex和Yacc真不錯
2007-06-14 01:40
fny
我正在編寫一個語法分析器。目的是把像a[]c[f[]n[]]這樣的數據變換成[‘TREE',[],a] ['TREE',[ ['TREE",[],f] ['TREE',[],n] ], c]這樣的數據。也就是任意個樹形數據結構的形式變換。目前對于只有嵌套的數據可以成功的變換,既a[], a[b[c[]]]這樣的數據。可是對于并列的數據卻無法變換,即a[]b[], a[b[]c[]]這樣的數據。請教,有沒有好的主意?
回復
更多評論
#
re: Lex和Yacc真不錯
2008-03-14 17:34
暗金裝備
難度還可以,呵呵,編譯原理的時候學過,用棧可以實現此功能:
第一次要先判斷整個表達的正確性,
在此基礎上開始進行轉換:
如a[b[]c[]]:
讀入字符,壓入棧,直到遇到 [(也壓入棧),這時開始構造:['TREE', [
再次讀入,壓入棧,當遇到 ](不壓入棧),彈出棧頂,如果是 ],則構造成:
['TREE', [], 再次彈出棧頂,直到棧頂是[或者棧空,構造成['TREE', [],b]
以此類推即可,權當參考
回復
更多評論
#
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; // 保存結果
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', ["; // 樹結構的前半部分
}
} else { // 是],說明一個樹或者一個子樹已經結束,那么構造完這棵樹
if ('$' == stack.top()) {
break;
}
// 處理[時的構造結構
if ('[' == stack.top()) {
result += "], ";
stack.pop();
}
// 片面是處理樹的名字,在這里用了最簡單的處理,只處理了一個字母的
// 其實名字應該是可以有多個字母,這時,用一個循環來解決,而且要注意
// 的是壓入棧的,所以讀出來的時候名字是反的,所以再反過來就好了.
result.append(1, stack.top());
result += "]";
stack.pop();
}
}
std::cout << result << std::endl;
return EXIT_SUCCESS;
}
輸出結果:
['TREE', [], a]['TREE', [['TREE', [['TREE', [], f]], c]['TREE', [], d]], b]
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
在windows環境中配置go語言開發環境
UNIX下編譯SQLite3.3.6
重裝系統后ORACLE的恢復的幾種方法(轉載)
Broadcom NetXtrem II網卡Linux安裝指南(轉載)
C++各大有名庫的介紹(轉載)
Lex和Yacc真不錯
軟件測試的14種類型(轉載)
C++Primer第四版下載
《C和指針》書里面的源程序
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 北風之神007
国产精品久久久久久久人人看
|
9191精品国产免费久久
|
AV无码久久久久不卡网站下载
|
97香蕉久久夜色精品国产
|
久久精品aⅴ无码中文字字幕不卡
|
久久强奷乱码老熟女网站
|
欧美激情精品久久久久久久
|
久久久久国产精品嫩草影院
|
乱亲女H秽乱长久久久
|
国产高清美女一级a毛片久久w
|
久久亚洲电影
|
国产亚洲美女精品久久久久狼
|
欧美久久天天综合香蕉伊
|
成人久久精品一区二区三区
|
青春久久
|
国产亚洲精品美女久久久
|
久久99这里只有精品国产
|
久久99国产精品久久久
|
久久婷婷五月综合色奶水99啪
|
精品一区二区久久
|
思思久久好好热精品国产
|
久久亚洲精品中文字幕三区
|
欧美精品国产综合久久
|
久久夜色撩人精品国产小说
|
91精品国产综合久久婷婷
|
久久WWW免费人成一看片
|
久久久综合香蕉尹人综合网
|
久久国产精品-久久精品
|
欧洲成人午夜精品无码区久久
|
2019久久久高清456
|
人人狠狠综合久久亚洲高清
|
精品久久久久久国产
|
久久青青草原亚洲av无码app
|
久久久国产99久久国产一
|
久久一区二区免费播放
|
久久亚洲2019中文字幕
|
久久久久久国产a免费观看不卡
|
国产精品免费久久久久电影网
|
亚洲国产精品久久久久
|
9999国产精品欧美久久久久久
|
国内精品久久久久久久coent
|