作者halajohn (Wei Hu)
看板PLT
標題[連結] WeiParserGenerator released under GPLv3
時間Sat Nov 24 12:50:27 2007
最近我把之前寫的一個 parser generator 放在 google code 上面 release
出來, 名叫 Wei Parser Generator.
她的 project page 在
http://code.google.com/p/wei-parser-generator/
討論區在
http://groups.google.com/group/wei-parser-generator
詳細的圖文解釋在
http://code.google.com/p/wei-parser-generator/wiki/Chinese_Introduction
你可以從 project page 的 downloads 區下載她的 source code,
也可以直接從 project page 的 Source 區取得使用 svn 下載的方法.
<< 簡介 >>
這個 Wei Parser Generator (wpg) 是一個 LL(k) parser generator,
它具有下列特點:
* 允許使用者自訂想要的 lookahead 深度
* 支援 EBNF (Extended BNF) 語法或純粹的 BNF 語法.
* 如果 grammar 只有使用到單純的 BNF 語法, 那麼便可以命令 wpg 自動的進行:
1. left recursion removal. (使用 Paull's algorithm)
2. left factoring.
* 利用 graphviz 套件, wpg 可以將 grammar 轉成樹狀圖.
Wei Parser Generator 目前支援 Microsoft Visual C++ 2005 (express)
compiler. 但理論上, 任何符合 C++ 標準的 compiler 都可以順利的編譯它.
Wei Parser Generator (wpg) 使用到 C++ (STL) 及 boost library 以及
Wei Common Library, 所以要編譯 wpg 需要一個 C++ compiler (越符合
C++ standard 越好), 以及事先安裝好 boost library 及 Wei Common Library.
* boost:
http://www.boost.org/
* Wei Common Library:
http://code.google.com/p/wei-common-library/
--
http://www.csie.ntu.edu.tw/~r88052/main/tw/frame.html
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.70.75.219
1F:推 godfat:有空時來玩玩看...測測在 g++ 和 comeau 上的相容性 :p 11/24 13:57
2F:→ godfat:稍微翻了一下,看來有不少地方要修修改改才能過... 11/24 14:11
3F:推 halajohn:我在寫 wpg 的時候用到的都是 standard C++ syntax, 11/25 17:59
4F:→ halajohn:而且應該沒有用到 win32 specific header files 11/25 18:00
5F:→ halajohn:maybe definitions 要注意一下. 11/25 18:00
6F:→ halajohn:我懶得替 make 寫 makefile 了.... 11/25 18:00
7F:推 godfat:是全部都看過一次,只是看到 windows.h 和 dll export 11/25 21:06
8F:→ godfat: ^沒 漏字... 11/25 21:07
9F:推 halajohn:喔~ 我有用到 windows.h 喔?... hmmm..... 有點忘了.. 11/25 21:30
10F:推 halajohn:剛剛 review 了一下, windows.h 應該可以從 precompiled 11/25 21:32
11F:→ halajohn:header 中拿掉才對 11/25 21:32
12F:→ halajohn:因為我應該沒用到 windows specific 的 facilities 才對. 11/25 21:32
13F:→ godfat:找不到 wcscpy_s... 查了一下有點像 vc 的東西 11/25 22:51
14F:→ godfat:放棄 :o 應該還會有不少問題沒辦法一下解決 11/25 22:52
15F:→ godfat:每次看到 msdn 寫一堆非標準卻又宣稱標準的東西實在很頭痛 11/25 22:55
16F:推 halajohn:恩, wcscpy_s 這類 _s 的 function, 是定義在 11/26 09:21
17F:→ halajohn:ISO/IEC TR 24731 中, 這些 function 的規範更嚴謹, 11/26 09:22
18F:→ halajohn:好處也更多. 我當初也很驚訝 VC2005 實現了這套. 11/26 09:22
19F:→ halajohn:不只 vc2005 有, openwatcom 1.5 以後也都有. 11/26 09:22
20F:→ halajohn:這算是 c library 的 extension. 跟 compiler 沒關. 11/26 09:23
21F:→ halajohn:要怪就怪 glibc 怎麼進度這麼慢吧. 11/26 09:23
22F:→ halajohn:anyway, 要改回沒有 _s 的方法比加上 _s 還要來的簡單. 11/26 09:24
23F:→ godfat:可以考慮回文 @@; 翻了一下,dinkumware 好像也沒做... 11/26 10:42
24F:→ godfat:改天再查查看有誰做好了 @@ 11/26 10:42
25F:推 sunneo:wcscpy就是一種wchar_t的strcpy對吧=_= 11/27 18:08
26F:→ sunneo:_s版本幾乎跟strncpy做法相同 11/27 18:09