Here you'll find the sources and binaries available for my patched version of the PCCTS 1.33MR33 distribution. The original is available at www.polhode.com. I hope you'll enjoy PCCTS as much as I do.
Several command line options have been added so any of the pccts tools integrates better with your Win32 development environment. From the antlr 'manpage':
|
-rsp <filename> |
Specify a 'response file' which contains additional command line parameters. This is for those folks out these still developing on crippled command line systems, such as DOS. Borland and Microsoft make/nmake offer additional make commands to generate these response files from the makefile itself. Very handy if you wish to specify many options and/or files, overflowing the 127-character command line barrier on DOS-compatible systems. I have used this in '98 (compiled the sources with BC 5.02 in 32-bit extender mode). Not tested since. |
|
-ebcc |
Output errors in Borland C/C++ IDE compatible format to stdout. This allows you to run antlr/dlg/sorcerer as custom actions from your Borland Project and catch the warnings and errors in the report window so you can double-click to jump to the offending line. Compatible with BC++4 and BC++5. Not tested with later versions but should work as well. |
|
-emsvc |
Output errors in Microsoft Visual C/C++ compatible format to stderr. This allows you to run antlr/dlg/sorcerer as custom actions from your Visual C++ Project and catch the warnings and errors in the report window so you can double-click to jump to the offending line. Compatible with VC4, VC5, VC6 and .NET development environments. |
|
-empw |
Output errors in Macintosh Programmers Workshop compatible format to stderr. NOTE: this option has not recently been tested. Your mileage may vary. |
ANTLR grammar exception handling in 'C' mode has been improved when you use a grammar without ASTs but with Attrib attributes.
a few ultra-minor changes to code output (formatting).
NOTE: if you wish to obtain the documentation available with the packages, you must download the 'full-src' source packages as the binary distributions do not contain documentation (or very little).
|
pccts-1.33MR33.i_a.bin-win32.exe (250KB) |
The compiled Win32 binaries of antlr 1.33, dlg and sorcerer. TBD: add cperf binary. Now only in the full-src and cperf packages below. TBD: add linux binaries for download. |
|
pccts-1.33MR33.i_a.full-src.exe (8.1MB) |
The complete source distribution, including all sources and documentation for pccts (antlr/dlg/sorcerer), cperf and accompanying examples. Makefiles for UNIX are provided. Up to date Visual Studio .NET (VC7) and 6 are also included so you'll be able to instantly recompile these sources on your Win32 platform. (Visual Studio VC6 SR5 or Visual Studio .NET are preferred. Older Borland C+ 5.02 project files are also in here, but those haven't been verified recently.) NOTE: Also included is are the various pieces of documentation in both PostScript and PDF format, including Tom Moog's Notes, the original thesis paper by Terrence Parr and a copy of the book he wrote about PCCTS. Several workshop papers are also in here. |
|
pccts-1.33MR33.i_a.src.exe (6.9MB) pccts-1.33MR33.i_a.src.tar.bz2 (7.6MB) |
Everything the full-src distro's got, except my own example code and the cperf sources. |
|
The sources of my own examples of PCCTS usage. (Really this is one example: the second one is a slightly modified copy used for testing the ANTLR grammar exception feature for parser error recovery. A very nice feature by the way :-)
|
|
cperf-2.1a.full-src.exe (1.2MB) cperf-2.1a.full-src.tar.bz2 (1.6MB) |
cperf is a perfect hash table generator, which can be used to, for instance, generate look-up tables and accompanying code for fast 'reserved words' lookup, used by lexers. The complete cperf 2.1a (patched) source code distribution, documentation and Win32 binary. |
|
btyacc-3.0.4.i_a-v2.bin-win32.exe (270K) btyacc-3.0.4.i_a-v2.bin-win32.tar.bz2 (190KB) or btyacc-3.0.4.i_a-v2.full-src.exe (1.0MB) btyacc-3.0.4.i_a-v2.full-src.tar.bz2 (1.0MB) Older versions are still available here: btyacc-3.0.4.i_a.bin-win32.exe (110K) btyacc-3.0.4.i_a.bin-win32.tar.bz2 (64KB) or btyacc-3.0.4.i_a.full-src.exe (0.6MB) |
YACC derivative: BTYACC is BackTracking YACC, backwards compatible with YACC and a very suitable alternative to BISON as BTYACC handles shift/reduce problems in your grammar much better (due to the added backtracking).
Update: per april/2008, the Win32 binaries include executables compiled for 64-bit Windows platforms Itanium and x64 (AMD64). The source code comes with MSVC2005SP1 project files and solutions for when you want to compile your tools from source. |
|
flex-2.5.4.i_a.bin-win32.exe (247KB) flex-2.5.4.i_a.bin-win32.tar.bz2 (55KB) or flex-2.5.4.i_a.full-src.exe (0.6MB) flex-2.5.4.i_a.full-src.tar.bz2 (0.7MB) |
LEX derivative: FLEX is a very powerful RegularExpression based lexical scanner. |
|
iburg-1.0.i_a.bin-win32.exe (89KB) iburg-1.0.i_a.bin-win32.tar.bz2 (40KB) or iburg-1.0.i_a.full-src.exe (1.3MB) iburg-1.0.i_a.full-src.tar.bz2 (1.4MB) |
IBURG: Code Generator Generator - used for the construction of the very back of the backend of your compiler (or P-code interpreter). One of the more widespread BURG derivatives. IBURG is compatible with BURG. Both programs accept a (constant-)cost-augmented tree grammar and emit a C program that discovers an optimal parse of trees in the language described by the grammar. They have been used to construct fast optimal instruction selectors for use in code generation. IBURG uses BURS (Bottom-Up Rewrite System) technology. IBURG's matchers do dynamic programming at compile time, generating smaller code generators than BURG. A variant of IBURG (LBURG, see below) is used in the well-known LCC compiler to generate the machine code generators from the IR AST (Intermediate Representation Abstract Syntax Tree) for the various supported CPUs. NOTE: a few simple samples have been included for your convenience. |
|
lburg-1.0.i_a.bin-win32.exe (86KB) lburg-1.0.i_a.bin-win32.tar.bz2 (37KB) or lburg-1.0.i_a.full-src.exe (1.1MB) lburg-1.0.i_a.full-src.tar.bz2 (1.1MB) |
LBURG: Code Generator Generator - used for the construction of the very back of the backend of your compiler (or P-code interpreter). Used by the well-known LCC compiler to generate the machine code from the IR AST (Intermediate Representation Abstract Syntax Tree) for the various supported CPUs. LBURG is compatible with BURG. Both programs accept a cost-augmented tree grammar and emit a C program that discovers an optimal parse of trees in the language described by the grammar. They have been used to construct fast optimal instruction selectors for use in code generation. LBURG uses BURS (Bottom-Up Rewrite System) technology. LBURG's matchers do dynamic programming at compile time, generating smaller code generators than BURG. The advantage of LBURG over IBURG or BURG is that LBURG accepts cost-expressions, next to the usual cost-constants. This means that you may specify cost-calculus code to calculate the exact cost of an expression at run-time, allowing you to specify costs which depend on context (pipeline constraints et al) for your expressions in a flexible and maintainable fashion. NOTE: a few simple samples have been included for your convenience. NOTE: This LBURG available here however is a slightly modified copy of the LCC LBURG: the LCC-specific rescan-hack has been removed and a few other items that were tightly coupled to the other LCC software have been replaced. |
(c)Copyright 2001-2009, Gerrit E.G. Hobbelt (Ger Hobbelt a.k.a. [i_a] ) - Hebbut.Net