Dec 312017
EMX 0.8f GNU GCC 2.3.3 for OS/2, p2c Pascal front-end for GCC, gives Pascal programmers a 32bit developent system and programming power [ optional module for EMX ]. | |||
---|---|---|---|
File Name | File Size | Zip Size | Zip Type |
DISTRIB | 0 | 0 | stored |
EXAMPLES | 0 | 0 | stored |
BASIC.DOC | 11758 | 4020 | deflated |
BASIC.P | 68823 | 9791 | deflated |
C | 0 | 0 | stored |
CREF.P | 11639 | 2010 | deflated |
BASIC.C | 55744 | 10115 | deflated |
CREF.C | 8085 | 2416 | deflated |
E.C | 2804 | 841 | deflated |
FACT.C | 471 | 295 | deflated |
SELF.C | 1631 | 767 | deflated |
E.P | 2542 | 659 | deflated |
FACT.P | 326 | 177 | deflated |
MAKEFILE | 845 | 370 | deflated |
P2CRC | 849 | 464 | deflated |
README | 1418 | 717 | deflated |
SELF.P | 1123 | 384 | deflated |
HP | 0 | 0 | stored |
IMPORT | 0 | 0 | stored |
ASM.IMP | 1377 | 460 | deflated |
FS.IMP | 5006 | 1214 | deflated |
GENERAL0.IMP | 965 | 334 | deflated |
GENERAL1.IMP | 666 | 278 | deflated |
GENERAL2.IMP | 932 | 315 | deflated |
GENERAL3.IMP | 243 | 187 | deflated |
GENERAL4.IMP | 2028 | 464 | deflated |
HPIB_0.IMP | 806 | 329 | deflated |
HPIB_1.IMP | 1406 | 436 | deflated |
HPIB_2.IMP | 1539 | 453 | deflated |
HPIB_3.IMP | 1224 | 412 | deflated |
IODECL.IMP | 11661 | 2191 | deflated |
MISC.IMP | 2554 | 977 | deflated |
RND.IMP | 228 | 155 | deflated |
SYSDEVS.IMP | 16059 | 4929 | deflated |
SYSGLOBA.IMP | 13342 | 4508 | deflated |
INCLUDE | 0 | 0 | stored |
ASM.H | 1717 | 505 | deflated |
FS.H | 4552 | 1090 | deflated |
GENERAL0.H | 861 | 331 | deflated |
GENERAL1.H | 720 | 285 | deflated |
GENERAL2.H | 894 | 298 | deflated |
GENERAL3.H | 370 | 211 | deflated |
GENERAL4.H | 1541 | 423 | deflated |
HPIB_0.H | 460 | 226 | deflated |
HPIB_1.H | 741 | 294 | deflated |
HPIB_2.H | 970 | 324 | deflated |
HPIB_3.H | 688 | 284 | deflated |
IODECL.H | 6347 | 1705 | deflated |
MISC.H | 2942 | 998 | deflated |
RND.H | 176 | 94 | deflated |
SYSDEVS.H | 12734 | 4176 | deflated |
SYSGLOBA.H | 9063 | 3487 | deflated |
OS2 | 0 | 0 | stored |
COPYING | 12737 | 4815 | deflated |
EMX.DLL | 27730 | 14869 | deflated |
LIBP2C.A | 7804 | 4050 | deflated |
LOC.P2C | 142 | 111 | deflated |
P2C.DOC | 52366 | 17954 | deflated |
P2C.EXE | 396093 | 183179 | deflated |
P2C.H | 13994 | 3906 | deflated |
P2CRC | 81845 | 20194 | deflated |
README | 2767 | 1294 | deflated |
STRING.PAS | 1852 | 532 | deflated |
SYSTEM.IMP | 3910 | 1029 | deflated |
SYSTEM.M2 | 849 | 354 | deflated |
TURBO.IMP | 9726 | 2658 | deflated |
README | 2932 | 1446 | deflated |
README.OS2 | 5526 | 2024 | deflated |
SRC | 0 | 0 | stored |
CITMODS.C | 32572 | 5858 | deflated |
COMMENT.C | 10086 | 3168 | deflated |
COPYING | 12737 | 4815 | deflated |
DECL.C | 150022 | 29938 | deflated |
DIR.C | 5521 | 2112 | deflated |
EXPR.C | 148888 | 25571 | deflated |
FUNCS.C | 149486 | 23620 | deflated |
HISTORY | 27064 | 9240 | deflated |
HPMODS.C | 3322 | 1112 | deflated |
LEX.C | 90771 | 16893 | deflated |
LOC.P2C | 142 | 111 | deflated |
LOCP2CLB.C | 191 | 152 | deflated |
MAKEFILE | 3372 | 1362 | deflated |
MAKEPROT.C | 16898 | 3420 | deflated |
NOTES | 33543 | 9725 | deflated |
OUT.C | 37154 | 9773 | deflated |
P2C.CAT | 85750 | 20213 | deflated |
P2C.H | 13994 | 3906 | deflated |
P2C.HDR | 32797 | 5295 | deflated |
P2C.MAN | 49075 | 16868 | deflated |
P2C.PRO | 20439 | 3182 | deflated |
P2CLIB.C | 19244 | 5398 | deflated |
PARSE.C | 130777 | 25607 | deflated |
PEXPR.C | 113222 | 18536 | deflated |
README | 3094 | 1460 | deflated |
STRING.PAS | 1852 | 532 | deflated |
STUFF.C | 14372 | 3769 | deflated |
SYS.P2C | 81845 | 20194 | deflated |
SYSTEM.IMP | 3910 | 1029 | deflated |
SYSTEM.M2 | 849 | 354 | deflated |
TAGS | 34708 | 11840 | deflated |
TRANS.C | 43216 | 9765 | deflated |
TRANS.H | 82140 | 20132 | deflated |
TURBO.IMP | 9726 | 2658 | deflated |
Download File P2C4OS2.ZIP Here
Contents of the README file
This directory contains examples for "p2c", a Pascal to C translator.
"p2c" Copyright 1989, 1990, 1991 Free Software Foundation, Inc.
Written and maintained by: Dave Gillespie
256-80 Caltech
Pasadena CA 91125
[email protected], cit-vax!daveg
Here are some sample programs you can run through p2c. The Makefile
for this directory knows how to translate and compile all programs.
The "c" subdirectory contains pre-translated files you can compare
with your p2c output.
To translate only: nmake trans or just nmake
To translate and compile: nmake comp
These programs have been culled from various places around the Caltech
C.S. educational lab. All programs are by Dave Gillespie except as
noted, and are in the HP Pascal dialect.
fact.p The obligatory recursive factorial program. Try this
one first: "make fact.c" to translate, or "make fact"
to translate and compile.
e.p Program for computing "e" to high precision.
(Courtesy of Scott Hemphill.)
self.p A self-printing program in Pascal. Try translating,
running, and diff'ing the output with self.p.
cref.p A cross-referencer for Pascal programs. Enter source
file name(s), then a blank line, then output file name.
basic.p An interpreter for the Basic language, just for kicks!
See "basic.doc" for documentation.
This directory contains "p2c", a Pascal to C translator for OS/2 v 2.0.
"p2c" Copyright 1989, 1990, 1991 Free Software Foundation, Inc.
Written and maintained by: Dave Gillespie
256-80 Caltech
Pasadena CA 91125
[email protected], cit-vax!daveg
Ported to OS/2 by : Bernt Karasch
Ruhr-Universitaet Bochum
Institut fuer Mineralogie
Universitaetsstrasse 150
W-4630 Bochum 1
Federal Republic of Germany
[email protected]
This program is distributed under the terms of the GNU License Agreement.
See the file src/COPYING for details.
The GNU License Agreement restrictions do _not_ apply to code generated
by p2c, nor to the p2c run-time files "p2clib.c" and "p2c.h".
The file "system.imp" contains declarations for "predefined" functions
like "sqrt". These generally have custom translation code in funcs.c.
Functions with irregular syntaxes have their symbol table entries built
directly in funcs.c; they do not appear here. The default p2crc
(\emx\p2c\p2crc) causes p2c to read system.imp at the beginning of every job.
The file "system.m2" contains declarations for predefined Modula-2
functions. It should be substituted for "system.imp" when translating
Modula-2 programs.
The file "turbo.imp" contains declarations for all the Turbo Pascal
standard units like dos and crt. (These are very incomplete at
present.) The default p2crc (\emx\p2c\p2crc) causes p2c to read
turbo.imp as soon as any Turbo standard unit is used.
The file "string.pas" implements the Oregon Software dynamic strings
package. These are translated pretty completely into native C strings
using only the FuncMacro mechanism of p2c---no custom C code was
written to support these functions.
NO WARRANTY:
The program in this directory was developed for internal use at
Caltech and thus absolutely no guarantee is made that the program
will compile or run on other systems or that it will produce correct
code. P2c is _not_ a compiler, it is a translator; it strives to
produce correct code but reserves the right to sacrifice correctness
in extreme cases for readability in the general case. P2c is designed
to be extended (see funcs.c, hpmods.c and citmods.c for examples), but
some of the main code is pretty messy since the translator has grown
considerably beyond its original planned scale. Bug reports are
welcome at [email protected], but I may not have time to respond
to them immediately. Suggestions are welcome, too!
This directory contains "p2c" version 1.20, a Pascal to C translator.
"p2c" Copyright 1989, 1990, 1991 Free Software Foundation, Inc.
Written and maintained by: Dave Gillespie
256-80 Caltech
Pasadena CA 91125
[email protected], cit-vax!daveg
This program is distributed under the terms of the GNU License Agreement.
See the file src/COPYING for details.
The GNU License Agreement restrictions do _not_ apply to code generated
by p2c, nor to the p2c run-time files "p2clib.c" and "p2c.h".
The "examples" subdirectory contains a few sample Pascal programs and
a Makefile to translate and compile them.
HP Pascal Workstation System users will want to copy all of .\hp\include
into the p2c include directory (\emx\include), and copy all of .\HP\import
into the p2c home directory (\emx\p2c). You will have to write emulations
for the functions you use out of these modules.
!!! Incomplete interface texts for standard Turbo units are !!!
!!! included in turbo.imp. Turbo users will have to flesh these !!!
!!! out and write emulations for whatever parts of the Turbo runtime !!!
!!! library they need. !!!
If you wish to edit various system-wide configuration parameters, it is
better to put them in \emx\p2c\loc.p2c than in \emx\p2c\p2crc. As an
example, on a Turbo-oriented environment you may wish to add
Language Turbo
to the \emx\p2c\loc.p2c file to replace the normal default (HP Pascal).
PORTABILITY
P2c was originally developed on a homebrew C compiler on the HP Pascal
Workstation operating system. Current development takes place on HP-UX,
which is System V based. The translator has also been compiled and used
on Sun-3's, so presumably it is fairly portable among 32-bit Unix machines.
Many parts of the code will have to be adjusted in order for p2c to work
on a machine with 16-bit ints. I have never had reason or opportunity to
track these down since I don't have access to such a machine. Please note
that code _generated_ by p2c works with either size of int even though p2c
itself does not.
If your compiler supports ANSI prototypes, most of the 16-bit portability
problems will go away except for possible %d/%ld sloppiness in sprintf control
strings. There may be places where p2c tries to cast a pointer into an
int, but I believe all such cases use longs consistently. You will have
a problem if your long type is not large enough to store a pointer.
Because p2c was developed to run under Unix, it is sloppy about memory
allocation. Some data structures are allocated but never freed. Profiles
show that the waste is not too great in most cases, but if it is a problem
you may have to write a garbage collector (this shouldn't be too hard if you
only run the collector after translating each procedure).
This directory contains "p2c", a Pascal to C translator.
"p2c" Copyright 1989, 1990, 1991 Free Software Foundation, Inc.
Written and maintained by: Dave Gillespie
256-80 Caltech
Pasadena CA 91125
[email protected], cit-vax!daveg
This program is distributed under the terms of the GNU License Agreement.
See the file src/COPYING for details.
The GNU License Agreement restrictions do _not_ apply to code generated
by p2c, nor to the p2c run-time files "p2clib.c" and "p2c.h".
The file "trans.c" includes an overview of the source files of p2c.
All p2c source files include the header "trans.h".
The file "dir.c" is intended to be modified by the user to install
code for custom translations of certain procedures. To add your own
custom code to p2c, modify CUSTSRCS and CUSTDEFS in the Makefile,
then recompile dir.c.
The file "system.imp" (copied to %H/system.imp) contains declarations
for "predefined" functions like "sqrt". These generally have custom
translation code in funcs.c. Functions with irregular syntaxes have
their symbol table entries built directly in funcs.c; they do not
appear here. The default sys.p2crc causes p2c to read system.imp at
the beginning of every job.
The file "system.m2" contains declarations for predefined Modula-2
functions. It should be substituted for "system.imp" when translating
Modula-2 programs.
The file "turbo.imp" contains declarations for all the Turbo Pascal
standard units like dos and crt. (These are very incomplete at
present.) The default sys.p2crc causes p2c to read turbo.imp as
soon as any Turbo standard unit is used.
The file "string.pas" implements the Oregon Software dynamic strings
package. These are translated pretty completely into native C strings
using only the FuncMacro mechanism of p2c---no custom C code was
written to support these functions.
The file "NOTES" contains the author's current bugs-and-plans list.
The file "HISTORY" contains the revision history of the program.
The "makeproto" program is an independent utility for scanning a large
C program with old-style declarations and building function prototypes
for all its functions. The "trans.h" file #includes the prototype
files for all of p2c.
NO WARRANTY:
The program in this directory was developed for internal use at
Caltech and thus absolutely no guarantee is made that the program
will compile or run on other systems or that it will produce correct
code. P2c is _not_ a compiler, it is a translator; it strives to
produce correct code but reserves the right to sacrifice correctness
in extreme cases for readability in the general case. P2c is designed
to be extended (see funcs.c, hpmods.c and citmods.c for examples), but
some of the main code is pretty messy since the translator has grown
considerably beyond its original planned scale. Bug reports are
welcome at [email protected], but I may not have time to respond
to them immediately. Suggestions are welcome, too!
December 31, 2017
Add comments