程序讓生活更美好
半畝方塘 天光云影
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安裝指南(轉載)
積分與排名
積分 - 271880
排名 - 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
閱讀(5961)
評論(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
狠狠色伊人久久精品综合网
|
新狼窝色AV性久久久久久
|
大香伊人久久精品一区二区
|
久久久无码精品亚洲日韩京东传媒
|
国产亚州精品女人久久久久久
|
无码伊人66久久大杳蕉网站谷歌
|
久久久久亚洲av无码专区
|
久久精品中文字幕有码
|
yy6080久久
|
久久国产精品免费一区二区三区
|
尹人香蕉久久99天天拍
|
狠狠色丁香久久综合五月
|
亚洲伊人久久成综合人影院
|
久久99精品久久久久久hb无码
|
国产精品九九久久免费视频
|
人妻少妇久久中文字幕
|
久久这里有精品视频
|
国产精品视频久久久
|
性做久久久久久久
|
无码任你躁久久久久久老妇
|
久久精品中文字幕久久
|
嫩草伊人久久精品少妇AV
|
亚洲伊人久久成综合人影院
|
国产激情久久久久影院小草
|
国产亚洲综合久久系列
|
人人狠狠综合久久88成人
|
香蕉99久久国产综合精品宅男自
|
久久乐国产精品亚洲综合
|
亚洲中文字幕无码久久综合网
|
久久久国产精华液
|
国产精品成人无码久久久久久
|
国产日产久久高清欧美一区
|
亚洲AV日韩精品久久久久久久
|
偷窥少妇久久久久久久久
|
亚洲精品tv久久久久
|
久久久久国产视频电影
|
精品久久久久久国产免费了
|
品成人欧美大片久久国产欧美
|
国产精品久久久久…
|
色综合久久中文综合网
|
久久久久久综合一区中文字幕
|