fanf
fd4a464ac4
Sync with up-stream version, including a number of bug-fixes:
...
* The partial-evaluation of #elif sequences was broken and the
spaghetti logic of its implementation was too hard to understand.
I've re-done it using a straight-forward table-driven push-down
automaton.
* The pre-processor line parser did not allow for all of the weird
places that people might put comments, which could have caused it
to add syntax-errors to the output by removing a #if line containing
the start- or end-marker of a comment.
* The lexer didn't need to special-case the handling of string-literals
or character-constants, but it did need to learn about line-continuations
(backslash-newline).
* The input routine was buggy and bit-rotten and trivially replacable
with fgets(). I've also made the program static- and const-safe and
improved the presentation-order. The formatting of the state-transition
tables remains non-stylish.
This commit-messsage was brought to you by code-point 45.
MFC-after: one-week
2002-12-18 20:50:44 +00:00
..
2002-07-17 15:35:31 +00:00
2002-07-14 18:23:22 +00:00
2002-07-14 18:23:22 +00:00
2002-05-30 13:33:59 +00:00
2002-11-26 17:55:41 +00:00
2002-05-10 20:36:21 +00:00
2002-03-22 01:22:50 +00:00
2002-09-04 23:29:10 +00:00
2002-08-16 03:08:25 +00:00
2002-12-12 13:26:32 +00:00
2002-06-02 20:05:59 +00:00
2002-02-01 16:33:40 +00:00
2002-02-08 22:31:43 +00:00
2002-12-11 17:26:53 +00:00
2002-11-19 00:30:38 +00:00
2002-07-28 14:41:26 +00:00
2002-12-13 16:53:51 +00:00
2002-08-25 13:23:09 +00:00
2002-07-28 14:55:59 +00:00
2002-09-04 23:29:10 +00:00
2002-08-27 19:06:44 +00:00
2002-10-29 12:45:32 +00:00
2002-07-28 15:13:17 +00:00
2002-07-28 15:13:17 +00:00
2002-09-04 23:29:10 +00:00
2002-09-04 23:29:10 +00:00
2002-11-26 17:33:37 +00:00
2002-07-28 15:22:43 +00:00
2002-07-28 15:25:15 +00:00
2002-07-28 15:28:38 +00:00
2002-10-16 12:42:15 +00:00
2002-08-14 11:38:30 +00:00
2002-11-26 17:33:37 +00:00
2002-11-26 10:51:47 +00:00
2002-07-28 15:50:38 +00:00
2002-12-12 17:26:04 +00:00
2002-12-12 17:26:04 +00:00
2002-07-02 12:37:09 +00:00
2002-07-11 18:06:09 +00:00
2002-09-04 23:29:10 +00:00
2002-09-04 23:29:10 +00:00
2002-11-26 10:57:57 +00:00
2002-06-30 05:25:07 +00:00
2002-11-27 20:52:07 +00:00
2002-12-12 17:26:04 +00:00
2002-06-30 05:25:07 +00:00
2002-12-12 17:26:04 +00:00
2002-12-02 20:38:12 +00:00
2002-06-30 05:25:07 +00:00
2002-09-04 23:29:10 +00:00
2002-09-04 23:29:10 +00:00
2002-12-12 17:26:04 +00:00
2002-06-30 05:25:07 +00:00
2002-06-15 09:42:17 +00:00
2002-09-13 18:24:59 +00:00
2002-05-29 14:23:10 +00:00
2002-12-12 17:26:04 +00:00
2002-09-04 23:29:10 +00:00
2002-12-10 02:22:01 +00:00
2002-07-23 14:39:20 +00:00
2002-09-04 23:29:10 +00:00
2002-12-05 08:50:00 +00:00
2002-09-04 23:29:10 +00:00
2002-10-16 13:58:39 +00:00
2002-09-04 23:29:10 +00:00
2002-06-30 05:25:07 +00:00
2002-11-26 11:25:04 +00:00
2002-07-05 15:58:27 +00:00
2002-09-16 10:06:02 +00:00
2002-11-11 11:56:28 +00:00
2002-06-30 05:25:07 +00:00
2002-06-30 05:25:07 +00:00
2002-07-15 11:33:30 +00:00
2002-06-30 05:25:07 +00:00
2002-10-06 23:52:06 +00:00
2002-07-01 18:03:30 +00:00
2002-10-30 18:19:59 +00:00
2002-09-04 23:29:10 +00:00
2002-10-19 10:18:29 +00:00
2002-09-04 23:29:10 +00:00
2002-12-18 10:14:01 +00:00
2002-09-09 02:58:42 +00:00
2002-12-12 17:26:04 +00:00
2002-10-16 13:17:18 +00:00
2002-07-29 09:40:17 +00:00
2002-09-04 23:29:10 +00:00
2002-06-30 05:25:07 +00:00
2002-09-04 23:29:10 +00:00
2002-12-04 15:00:10 +00:00
2002-09-04 23:29:10 +00:00
2002-09-04 23:29:10 +00:00
2002-09-24 18:16:36 +00:00
2002-12-12 17:26:04 +00:00
2002-10-30 15:50:00 +00:00
2002-08-25 13:23:09 +00:00
2002-12-17 04:26:22 +00:00
2002-11-18 10:11:22 +00:00
2002-09-04 23:29:10 +00:00
2002-11-26 17:33:37 +00:00
2002-04-20 12:18:28 +00:00
2002-09-04 23:29:10 +00:00
2002-11-26 17:33:37 +00:00
2002-11-01 12:22:41 +00:00
2002-07-16 05:38:26 +00:00
2002-09-04 23:29:10 +00:00
2002-10-15 12:53:29 +00:00
2002-10-02 12:31:10 +00:00
2002-04-28 12:21:31 +00:00
2002-09-04 23:29:10 +00:00
2002-09-05 17:06:51 +00:00
2002-05-30 13:57:35 +00:00
2002-07-14 15:12:00 +00:00
2002-05-09 11:47:42 +00:00
2002-09-04 23:29:10 +00:00
2002-08-19 03:07:56 +00:00
2002-10-16 15:28:20 +00:00
2002-07-14 18:23:22 +00:00
2002-11-26 17:34:25 +00:00
2002-01-03 21:20:29 +00:00
2002-01-03 21:20:29 +00:00
2002-01-03 21:20:29 +00:00
2002-04-20 12:18:28 +00:00
2002-10-16 15:32:16 +00:00
2002-11-26 17:33:37 +00:00
2002-12-15 00:40:47 +00:00
2002-09-04 23:29:10 +00:00
2002-11-26 17:33:37 +00:00
2002-09-04 23:29:10 +00:00
2002-12-12 17:26:04 +00:00
2002-04-28 11:59:43 +00:00
2002-07-14 15:12:00 +00:00
2002-09-04 23:29:10 +00:00
2002-10-16 16:09:05 +00:00
2002-11-26 17:33:37 +00:00
2002-12-16 22:24:26 +00:00
2002-06-07 07:08:06 +00:00
2002-10-16 16:10:46 +00:00
2002-04-28 10:49:15 +00:00
2002-04-28 10:56:09 +00:00
2002-04-28 11:13:20 +00:00
2002-09-04 23:29:10 +00:00
2002-07-01 16:40:33 +00:00
2002-03-22 01:42:45 +00:00
2002-09-04 23:29:10 +00:00
2002-11-26 17:33:37 +00:00
2002-12-12 17:26:04 +00:00
2002-04-20 12:18:28 +00:00
2001-12-14 11:41:22 +00:00
2002-11-26 17:33:37 +00:00
2002-10-30 03:24:16 +00:00
2002-07-15 05:31:55 +00:00
2002-10-25 07:26:36 +00:00
2002-04-20 12:18:28 +00:00
2002-07-29 09:40:17 +00:00
2002-11-26 17:33:37 +00:00
2002-10-17 12:58:14 +00:00
2002-10-23 19:02:17 +00:00
2002-11-26 17:33:37 +00:00
2002-12-15 11:26:57 +00:00
2002-08-19 03:07:56 +00:00
2002-04-20 12:18:28 +00:00
2002-04-20 12:18:28 +00:00
2002-09-04 23:29:10 +00:00
2002-11-20 17:59:20 +00:00
2002-11-26 17:33:37 +00:00
2002-09-04 23:29:10 +00:00
2002-12-12 17:26:04 +00:00
2002-10-02 20:33:52 +00:00
2002-09-04 23:29:10 +00:00
2002-09-04 23:29:10 +00:00
2002-11-26 17:33:37 +00:00
2002-06-20 05:35:40 +00:00
2002-03-22 01:42:45 +00:00
2002-11-26 17:33:37 +00:00
2002-09-04 23:29:10 +00:00
2002-09-04 23:29:10 +00:00
2002-05-29 17:12:30 +00:00
2002-06-02 20:05:59 +00:00
2002-09-04 23:29:10 +00:00
2002-09-23 06:47:39 +00:00
2002-10-04 16:45:25 +00:00
2002-12-18 20:50:44 +00:00
2002-11-26 17:33:37 +00:00
2002-07-28 16:23:28 +00:00
2002-09-04 23:29:10 +00:00
2002-04-22 13:44:47 +00:00
2002-09-04 23:29:10 +00:00
2002-11-01 02:08:51 +00:00
2002-10-20 14:18:25 +00:00
2002-11-01 06:20:14 +00:00
2002-02-17 22:05:07 +00:00
2002-09-24 19:05:40 +00:00
2002-07-29 09:40:17 +00:00
2002-09-04 23:29:10 +00:00
2002-08-09 15:47:43 +00:00
2002-08-23 04:31:58 +00:00
2002-10-11 14:58:34 +00:00
2002-11-26 17:33:37 +00:00
2002-11-26 17:33:37 +00:00
2002-11-26 17:33:37 +00:00
2002-06-30 06:02:39 +00:00
2002-11-26 17:33:37 +00:00
2002-11-26 17:33:37 +00:00
2002-06-03 23:13:11 +00:00
2002-09-04 23:29:10 +00:00
2002-11-13 13:49:29 +00:00
2002-12-12 17:26:04 +00:00
2002-12-11 17:13:09 +00:00
2002-11-01 12:48:28 +00:00
2002-11-26 15:34:18 +00:00
2002-11-09 21:00:39 +00:00
2002-04-20 12:18:28 +00:00
2002-04-20 12:18:28 +00:00
2002-04-20 12:18:28 +00:00
2002-11-27 17:46:26 +00:00
2002-02-06 18:13:12 +00:00