This is the current development version of the p5c and p5x pascal compilers

This directory contains the sources, build scripts and test code for p5c

The p5x compiler is in the directory p5x

building and testing is quite automated, and assumes a gnu environment.

For windows users, cygwin (preferred) or mingw with msys should provide this.


to build and test p5c from scratch:
-----------------------------------

type ./gen from the command line

p5c pascal is itself written in pascal so you need a working iso standard
pascal compiler to start.
If you don't have gnu pascal, gen will create a pascal compiler from the
current pre-compiled version of p5c.

Once it has built p5c, it will run a long series of acceptance tests and
rejection tests.


contents of this directory
------------------------

gen		script to build and test p5c

pcom.pas	the p5c compiler

p5c-good.c	tested version of p5c, used to build pcom.pas if gnu pascal
                is not found.

tp5c.pas	main p5c test program

tp5c.out        reference output of tp5c

tfile.pas       test p5c external file bindings

guide.txt	user guide

p5c.h		header file for all p5c compiled programs

r               script to compile and run a pascal program in gnu environment

pc              script to compile a pascal program in gnu environment

clib.inc.pas    include this file to use many standard c functions
                see info inside this file

cstr.inc.pas    include this file to use standard c str functions
                see info inside this file

tclib.pas       test/demo program for clib.inc.pas & cstr.inc.pas

assert.inc.pas  add assertions to check your code, like in c

pan             a pascal static analyser
                checks pascal source code for a variety of programming errors,
                eg variable unused, not initialised, etc

tpan.pas        test program for pan

tpan.rpt        sample report of errors found in tpan.pas.

ppr             prints a colourised pascal program with bold formatting for
                identifiers, comments in italics, etc for easier reading.

p5c.ssh         ppr control file for pascal p5c

tcov.sh         example file to run test coverage analysis

rv              run your pascal program under valgrind (linux only)
                so you can identify hard-to-find bugs

examples/       benchmark programs, example code, demos

*-tests/        directories containing test code.

std-tests/      tests for standard pascal
iso7185-tests   acceptance tests from p5 project
rej-tests/      rejection tests
m-tests/        try to break the compiler by feeding it mutated source code

p5x/            the p5x pascal compiler
