Code::Blocks Forums
Developer forums (C::B DEVELOPMENT STRICTLY!) => Development => CodeCompletion redesign => Topic started by: wangdong1226 on March 28, 2011, 01:53:32 pm
-
Dear CodeBlocks core developers,
I've found a new parsing tool -- Goldie, it is a series of flexible and comprehensive open-source parsing tools.
Goldie: http://www.semitwist.com/goldie (http://www.semitwist.com/goldie)
I know that codeblocks team will not spend too much time to produce a new parsing tool or engine for D languages or others, but please be kindly to look over this new parsing tool (engine) --- Goldie.
== Some of Goldie's benefits: (most are thanks to Goldie's compatibility with GOLD Parser Builder) ==
- Grammars are fully-reusable: No need to create a new grammar for every use and every host language. Many grammars are already available.
- Grammar-agnostic engine: One lexer/parser engine can be used for all grammars.
- Engines for nearly any language or platform: A cross-platform D v2.x engine is included via GoldieLib. Engines for many other platforms are also available. New engines are easy to write.
- Dynamic-Style: Dynamic-style lets you write programs that support user-created grammars.
- Static-Style: Static-style provides compile-time checks and extra type-safety.
- Lexing and parsing: Lexing and parsing are defined in the same file and handled by one unified tool.
- Many tools available.
Goldie is fully-usable and has been tested on both Windows and Linux (it
should also work on OSX and any other platform supported by DMD, but has not
been tested), although GoldieLib's API is still subject to change. Goldie is
licensed under The zlib/libpng License.
I think, it also can be used or modified as C or C++ parser engine.
It is recommended that codeblocks team should evaluate it, and consider whether it's valued to integrate into CodeBlocks.
Sincerely yours,
David.
-
It is written in D, so it is pretty useless(unusable by) for C::B...
As far as I know there is no stable 64bit D compiler for Linux...
-
I know that codeblocks team will not spend too much time to produce a new parsing tool or engine for D languages or others, but please be kindly to look over this new parsing tool (engine) --- Goldie.
I doubt this will be easy (compatible). Did you notice that Goldie is written in D while C::B is written in C/C++?
-
Goldie: How To Use Goldie (http://www.semitwist.com/goldie/Start/HowToUse/)
from this page:
Goldie uses the LALR(1) and DFA algorithms to parse source. Both of these algorithms can be driven completely by tables of raw data, so Goldie requires grammars be compiled into these tables before they can be used. This provides certain benefits:
but c++ can not parsed by LALR(1) grammar, c++ need infinite look ahead, most c++ compiler use recursive descent parser (gcc, clang).
-
It is written in D, so it is pretty useless(unusable by) for C::B...
As far as I know there is no stable 64bit D compiler for Linux...
I don't think so.
Please view http://www.digitalmars.com/d/2.0/changelog.html (http://www.digitalmars.com/d/2.0/changelog.html)
------
....
....
Under Construction
1. Shared libraries for Linux
Version D 2.052 Feb 17, 2011
New/Changed Features
* 64 bit support for Linux
* Implemented exception chaining, as described in TDPL. Currently Windows-only.
* std.random: Added Xorshift random generator
....
....
------
And I'm using this 64bit DMD compiler in my Fedora 14 x86_64 system via CodeBlocks.
I use CodeBlocks to compile the .d source file in 64bit, I got info:
------
---------------- Build: Release in DTraining ----------------
dmd -O -m64 -I/opt/dmd2/src/phobos -c _1_4_Arrays_64bit.d -ofobj/Release/_1_4_Arrays_64bit.o
gcc -lrt -o bin/Release/DTraining obj/Release/_1_4_Arrays_64bit.o /opt/dmd2/linux/lib64/libphobos2.a -lpthread -lm
Output size is 762.96 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)
------
BTW, now DMD2 version is dmd v2.053.
The latest versions and changes you can find here:
https://github.com/D-Programming-Language (https://github.com/D-Programming-Language)