Commit graph

46 commits

Author SHA1 Message Date
carl 750a6bc684 Better ANSI C compatibility and portability:
+ Addition of function prototypes and include files.
+ Change function definitions to ANSI C style.
+ Initial support for CMake
+ Scripts to generate compiler header is now sed based.
2019-02-19 00:54:23 +08:00
David Given b76352de99 Remove stray #include. 2018-09-02 12:54:53 +02:00
David Given cb983fac44 Rip out the built-in preprocessor from cemcom.ansi, now it's no longer used. 2018-09-02 12:50:50 +02:00
David Given 6931ffa5a4 Disable the built-in preprocessor in cemcom.ansi; the external preprocessor is
always run. Fix a bug in block skipping in the preprocessor.
2018-09-02 12:39:00 +02:00
David Given f8fc5bc3d8 Implement single-line C++-style comments.
Fixes: #118
2018-09-02 12:14:59 +02:00
David Given dd00b81080 Run files through clang-format before editing. 2018-09-02 11:36:15 +02:00
George Koehler 87a2315037 strcmp, strncmp are in <string.h>
*Important:*  Do `make clean` to work around a problem and prevent
infinite rebuilds, https://github.com/davidgiven/ack/issues/68

I edit tokens.g in util/LLgen/src, so I regenerate tokens.c.  The
regeneration script bootstrap.sh can't find LLgen, but I can run the
same command by typing the path to llgen.
2017-11-14 17:35:35 -05:00
George Koehler ca4bd38206 Delete old "assert.h" files; use libc <assert.h>.
Edit build.lua for programs losing their private assert.h, so they
depend on a list of .h files excluding assert.h.

Remove modules/src/assert; it would be a dependency of cpp.ansi but we
didn't build it, so cpp.ansi uses the libc assert.

I hope that libc <assert.h> can better report failed assertions.  Some
old "assert.h" files didn't report the expression.  Some reported a
literal "x", because traditional C expanded the macro parameter x in
"x", but ANSI C89 doesn't expand macro parameters in string literals.
2017-11-09 22:22:13 -05:00
David Given fd91851005 Add enough return types to the K&R C that the ACK builds (on Linux) using clang
now.
2016-11-10 22:04:18 +01:00
David Given c1aca7dae5 First milestone of replacing the build system.
--HG--
branch : dtrg-buildsystem
rename : lang/cem/cpp.ansi/Parameters => lang/cem/cpp.ansi/parameters.h
2013-05-12 20:45:55 +01:00
ceriel 91cb060d10 Replaced a couple of UnGetChar calls with ChPushBack calls. The
UnGetChar call is wrong after skipspaces().
1998-02-09 09:49:00 +00:00
ceriel 8636e9d10a Changed Header into Id 1994-06-27 08:03:14 +00:00
ceriel 2006278a52 A fix for stabs, and define NDEBUG 1993-10-22 14:24:31 +00:00
ceriel 1ad085cfb8 Also skip lint comments in skip_block() 1993-06-09 09:40:54 +00:00
ceriel ebf5153f35 Fix small bug: space following a replacement list was included in the list 1993-01-26 11:58:00 +00:00
ceriel 439ec389a0 found some small leaks with Purify 1993-01-18 15:10:01 +00:00
ceriel d390121280 improved symbol table generation when source file has line directives 1992-07-02 10:23:46 +00:00
ceriel 1de983200b Fixed bug in '#ifdef FALSE || 1 (garbage) 1992-05-26 18:09:11 +00:00
ceriel a38be6605e Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 13:12:22 +00:00
ceriel 950e26815e Fix '#undef' handling 1991-12-16 14:06:09 +00:00
ceriel 2552813eaa Corrected #error and #define 1991-04-11 10:52:52 +00:00
ceriel bd1da2f86c Improved switches, and fixed wrong place indication in error messages 1991-03-01 13:51:37 +00:00
ceriel 72fcc53c49 Check for garbage after #include 1991-01-03 13:45:22 +00:00
eck 007151ef1d improved error-handling on conditionally excluded #-lines 1990-12-10 11:17:34 +00:00
eck d7c15759ee added warning about old-fashioned declarations
cleaned up error reporting
changed implicit declaration handling
1990-11-02 09:23:27 +00:00
eck b4f97588b7 fixed bug with undefined structs
ceriel changed debugging information
1990-10-19 11:50:32 +00:00
eck 02ea4988d1 fixed problems with declaration syntax 1990-09-03 13:46:30 +00:00
ceriel f234f061a1 Added dependency generator, reduced size of type structure 1990-06-08 10:03:47 +00:00
eck dc12b2fa3d warn about ptrdiff_t passed as long on 2-4 machines 1990-04-25 15:09:51 +00:00
eck 64e9d11570 the -U option did not work properly; call do_undef() now 1990-04-18 16:40:17 +00:00
eck ed2516a57a bug fixes after test-suite 1990-03-29 10:41:46 +00:00
eck 5625842582 fixed 2 bugs with line directives 1990-02-02 09:56:35 +00:00
eck c4e0fddf5b MINIX squeezing with strings, fixed small preprocessor bug 1990-01-16 15:21:15 +00:00
eck 00876cd9df added alloction dump
shrunk some data structures
changed some ALLOCDEF's
changed setjmp to __setjmp
1990-01-10 17:33:35 +00:00
eck abcaa3e669 changed UnGetChar() to ChPushBack() in domacro.c 1990-01-05 09:28:54 +00:00
eck 671556cfc4 improved type-checking, fixed preprocessor bug, fixed syntax bug 1989-11-27 11:37:11 +00:00
eck 96da16ce33 fixed bugs, added dynamic buffer allocation to preprocessor 1989-11-22 13:58:36 +00:00
ceriel 67f9f2a74f many little changes: removed some lint complaints; max_int and max_unsigned
are now constants if NOCROSS is defined; added lexstrict and expr_strict,
and changed calls where needed
1989-11-08 16:52:34 +00:00
eck 480de7cafb fixed some bugs, changed warning interface 1989-10-27 13:33:10 +00:00
eck 9286928275 improved domacro when NOPP defined 1989-10-24 15:02:02 +00:00
ceriel e4857c2446 many minor modifications (it still will not fit on Minix!) 1989-10-19 14:53:25 +00:00
eck 8ff400fd0f squeezing for MINIX 1989-10-18 13:12:31 +00:00
eck aa2bfa7738 adjusted sources for NOPP 1989-10-16 12:38:25 +00:00
eck 4bde31f78a minor changes concerning void and pre-processor 1989-09-29 16:20:38 +00:00
eck fa4e6eecb4 lots and lots of changes & improvements 1989-09-19 16:13:23 +00:00
ceriel 926da49d39 Initial revision 1989-02-07 11:04:05 +00:00