category: macro preprocessors


Description:
These are tools that expand macros for another language.


Language:
C preprocessor
Package:
amc
Version:
1.0
Parts:
compiler
Author:
myg@din.net
Location:
http://www.din.net/amc
Description:
Gives languages like C a module structure more akin to TurboPascal. Support for a more dynamic form of OOP is still in development, although the hooks are here. Some documentation is really needed, any voulanteers?
Features:
well written code (IMHO), can easily add your own extensions and integrated them with little effort.
Bugs:
It could do a better job of copying C code rather than using MACRO's. Later.
Restrictions:
See license agreement, not many. Just E-mail author about anything not in agreement with License.
Ports:
HP-UX, Linux, Solaris, NeXTStep
Contact:
myg@din.net
Updated:
June 2nd, 1997

Language:
C-Refine, C++-Refine, *-Refine
Package:
crefine
Version:
3.0
Parts:
pre-processor, documentation
Author:
Lutz Prechelt <prechelt@ira.uka.de>
Location:
aquire from any comp.sources.reviewed archive
Description:
C-Refine is a preprocessor for C and languages that vaguely resemble C's syntax. It allows symbolic naming of code fragments so as to redistribute complexity and provide running commentary.
Ports:
unix, msdos, atari, amiga.
Portability:
high
Updated:
July 16th, 1992

Language:
C preprocessor
Package:
Decus cpp
Version:
?
Parts:
pre-processor
Author:
Martin Minow
Location:
included in the X11R5 distribution as contrib/util/cpp
Description:
An almost-ANSI C preprocessor. It is shipped with X11R5 because some systems don't have a working cpp.
Ports:
VMS (Vax C, Decus C), RSX-11M, RSTS/E, P/OS, and RT11, A/UX, Apollo Domain/IX 9.6, etc.
Portability:
very high
Updated:
?

Language:
gema
Package:
gema
Version:
1.1
Parts:
macro processor, documentation, examples.
Author:
David N. Gray <DGray@acm.org>
Location:
FTP://ftp.ugcs.caltech.edu/pub/gema/gema.tar.gz MS-DOS executable in file exe.zip

To just view doc: http://www.ugcs.caltech.edu/gema/

Description:
A general-purpose macro processor that uses pattern matching and replacement. It can be used as a pre-processor or to translate one language to another, or to extract selected information from files.
Features:
  • Does not impose any particular syntax for macro calls.
  • No built-in assumptions about input language syntax.
  • Can recognize patterns spanning multiple lines.
  • Handles recursive patterns, such as matching pairs of nested parentheses.
  • Different sets of rules can be used in different contexts.
  • Easy to ignore redundant white space.
Requires:
ANSI C compiler
Ports:
Unix, MS-DOS, Windows/NT
Updated:
May 23rd, 1995

Language:
C, C++, Objective-C, RTL
Package:
GNU CC (gcc)
Version:
2.7.1
Parts:
compiler, runtime, examples, documentation Library listed separately
Author:
Richard Stallman and others
Location:
ftp://gatekeeper.dec.com/gcc-2.X.X.tar.gz or any other GNU archive site
msdos:
ftp://oak.oakland.edu/pub/msdos/djgpp/*
6811:
ftp://netcom.com/pub/coactive/gcc-6811-beta.tar.gz (these are diffs from 2.5.8 distribution)
Description:
A very high quality, very portable compiler for C, C++, Objective-C. The compiler is designed to support multiple front-ends and multiple back-ends by translating first into RTL (Register Transfer Language) and from there into assembly for the target architecture. Front ends for Ada, Pascal, and Fortran are all under development. There is a bounds checking port based on gcc 2.7.1. Patches for this port are available at: ftp://dse.doc.ic.ac.uk/pub/misc/bcc
Conformance:
C: superset of K&R C and ANSI C.

C++: supports most ARM features; exceptions supported only on some platforms. Supports "bool". Alpha-level RTTI implementation included. Not yet supported: member templates, namespaces. Developers are tracking the draft ANSI/ISO standard and are committee members.

Objective-C: Complies with NeXT proposed (ANSI?) standard.

Bugs:
gnu.gcc.bug (for C/Objective-C), gnu.g++.bug (for C++)
Restriction:
GNU General Public License
Ports:
3b1, a29k, aix385, alpha, altos3068, amix, arm, convex, crds, elxsi, fx2800, fx80, genix, hp320, clipper, i386-{dos,isc,sco,sysv.3,sysv.4,mach,bsd,linux,windows,OS/2}, iris,i860, i960, irix4, m68k, m88ksvsv.3, mips-news, mot3300, next, ns32k, nws3250-v.4, hp-pa, pc532, plexus, pyramid, romp, rs6000, sparc-sunos, freebsd sparc-solaris2, sparc-sysv.4, spur, sun386, tahoe, tow, umpis, vax-vms, vax-bsd, we32k, hitachi-{SH,8300}, 6811
Portability:
very high
Status:
actively developed
Discussion:
gnu.gcc.help (for C/Objective-C), gnu.g++.help (for C++)
Announcements:
gnu.gcc.announce (for C/Objective-C), gnu.g++.announce (for C++)
Updated:
1995

Language:
C, C++, Objective-C, RTL
Package:
GNU CC (gcc) - unsupported Macintosh port
Version:
1.37
Parts:
compiler, runtime, examples, documentation Library listed separately
Author:
?
Location:
mpw-gcc-1.37.1r14 from ?
Description:
This is an unsupported port of the GNU C compiler to the Macintosh environment. [If anyone knows who the author is please let me know - ed]
Bugs:
?
Restriction:
GNU General Public License
Ports:
Macintosh
Portability:
very high
Status:
?
Updated:
November 27th, 1993

Language:
m4
Package:
GNU m4
Version:
1.4
Parts:
interperter
Author:
Francois Pinard <pinard@iro.umontreal.ca>
Location:
ftp://gatekeeper.dec.com/m4-1.4.tar.gz or any other GNU archive site
macintosh:
ftp://nic.switch.ch/pub/software/mac/src/mpw-c/*
Description:
A macro preprocessor, more flexible than cpp.

It copies its input to the output, expanding macros. Macros are either built-in or user-defined. `m4' has built-in functions for including files, running Unix commands, doing integer arithmetic, manipulating text in various ways, recursing, etc. `m4' can be used either as a front-end to a compiler or as a macro processor in its own right.

Conformance:
Mostly SVR4 compatible with a few extensions.
Restriction:
GNU General Public License
Updated:
November 6th, 1994

Language:
C (ANSI), lcc intermediate format
Package:
lcc
Version:
3.4b
Parts:
compiler, test suite, documentation
Authors:
Chris Fraser <cwf@research.att.com> Dave Hanson <drh@cs.princeton.edu>
Location:
ftp://ftp.cs.princeton.edu/pub/lcc/*
Description:
  • hand coded C parser (faster than yacc)
  • retargetable
  • code "nearly as good as GCC"
Ports:
x86, MIPS, SPARC
Status:
small-scale production use
Discussion:
email "subscribe lcc" to majordomo@cs.princeton.edu
Updated:
Febuary 1st, 1995

Language:
m4
Package:
pd/bsd m4
Version:
?
Parts:
interpreter, man page
Author:
Ozan Yigit <oz@sis.yorku.ca>, Richard A. O'Keefe <ok@goanna.cs.rmit.OZ.AU>
Location:
ftp from any 386BSD, NetBSD, or FreeBSD archive
Description:
A macro preprocessor, more flexible than cpp
Conformance:
?
Updated:
November 3rd, 1993

This site is supported by David Sharnoff and Bryan Miller with some help from Google Adwords.

Please send updates to free-compilers@sharnoff.org

The HTML is maintained by David Muir Sharnoff and the entries themselves are currently maintained by Bryan Miller.

Copyright (c) 1992-1998 David Muir Sharnoff, All Rights Reserved
Copyright (c) 1994-1996, Steven Allen Robenalt, All Rights Reserved