作者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