Change log for parsing.fs and parsing-test.fs.

Unattributed changes are by the initial author/modifier,
David N. Williams.  The revision date(s) in the source files
may be more recent than the most recent date here, when only
cosmetic changes have been made.

Version 1.0.0
18Oct10 * Fixed S-SEPARATE to work around SEARCH ambiguity for
	  empty pat.s.
	* Updated comments.
19Oct10	* Updated host conditionals and ttester-display in
	  parsing-test.fs.
22Oct10	* Added comment to parsing-test noting that
	  exhaustion of the parse area for empty string output
	  by PARSE-NAME is tested.
	* Made PARSE-NAME compilation conditional.  The native
	  pfe and gforth versions pass the tests.  Added an
	  IFORTH-HOST switch for cases in parsing-test where the
	  iForth version produces an empty string but not the
	  right empty string, which is legal.
26Oct10 * Added {}INDEX and tests.  Rearranged grouping of tests.

Version 0.8.4
 5Apr08 * Added {}PARSE, with tests.
27Apr10 * Noted that Wil Baden's Tool Belt is really public
	  domain.  Replaced "ToolBelt" by "Tool Belt".
 5Aug10 * Updated ANSI color support to 1.0.1 in
	  parsing-test.fs.
	* Removed conditional compilation for "((" and "---"
	  tests in parsing-test.fs, and used special test names
	  "t((" and "t---".  Also avoids a name clash with
	  iForth's "((".

Version 0.8.3
24Jul08 * Bumped version to 0.8.3 to agree with mstrings.fs.
30Jul08	* Restored PARSE-NAME-AWAY.  It's only a two-word
	  definition, but it's an essential companion to
	  PREPARSE-NAME.
	* Added PARSING-LIB-S library string.
31Jul08	* Added tests for input stream position after:
	    PARSE-NAME  PARSE-NAME-AWAY  NEXT-INSTREAM-NAME
	    |S|-SEEK-INSTREAM
	  They discriminate against a one-off bug found in the
	  first three in parsing-ext.c (but not in parsing.fs)
	  by testing with dstrings.fs.
	* Made specs more explicit about parsing away the first
	  trailing whitespace delimiter in the first three words
	  above.
20Nov08 * Revised parsing-test.fs to use ttester.fs, gforth cvs
	  revision 1.13, instead of tester-plus.fs.  Added
	  conditional ANSI terminal color modes.
26Nov08 * Comment tweaks.  Removed commented out char impure
	  lines.
27Feb09 * Added to "Not implemented" list:
          {}PARSE  S-PARSE  PARSE-AWAY  {}PARSE-AWAY
22Mar09 * Removed comment about tests that use SEARCH with the
	  empty string as pattern, because Ed pointed out that
	  SwiftForth now agrees with common practice.  Removed
	  the corresponding SEARCH tests from parsing-test.fs,
	  but it doesn't actually use SEARCH at all!

Version 0.8.2
18Jun08 * Bumped minor version number to 8 to agree with
	  mstrings.fs.
	* Removed ALLOW-EMBEDDED-WHITE switch and moved
	  WHITE-DELIMITED? to string extensions section.  All
	  searches allow embedded whitespace.
	* Started making parsing.fs character clean, including
	  comments.
	* Added specification for some words that empty search
	  patterns are found.
19Jun08 * Added utility words CHARS+ and CHAR/.
21Jun08 * Finished character cleaning, including tests, just by
	  inspection; don't have a good test for character
	  purity.
	* Added empty string tests for SEARCH and
	  WHITE-DELIMITED, and cleaned S-SEPARATE tests to
	  assume the empty pattern behavior in the SEARCH tests.
22Jun08 * Removed ALLOW-EMBEDDED-WHITE from tests.
23Jun08 * Added table of contents.
	* Added WHITE? tests.
	* Added S-SCAN-INPUT and S-INPUT-AFTER tests with
	  embedded whitespace.
24Jun08 * Changed the terminology "buf" and "/buf" to "cbuf" and
	  "#cbuf", where #cbuf is characters, not address units.
27Jun08	* Cleaned up conditional loads in parsing-test.fs.
20Jul08 * Fixed END-C@, which was still not character clean.
	* Added SEEK, to inaugurate new naming scheme for words
	  that scan past rather than to and also leave a flag. 
	  Added tests.
	* Rewrote |S|-INPUT-AFTER to use S-INPUT-AFTER, and
	  S-INPUT-AFTER to avoid using S-SCAN-INPUT.
	* Renamed:  {}SCAN-PAST as {}SEEK
	* Removed:  PARSE-AWAY  PARSE-NAME-AWAY  S-SCAN-INPUT
	* Added utility word CHARS-.
21Jul08 * Renamed:
	  old			new
	  NEXT-INPUT-NAME	NEXT-INSTREAM-NAME  	
	  S-INPUT-AFTER		S-SEEK-INSTREAM
	  |S|-INPUT-AFTER	|S|-SEEK-INSTREAM
	  STARTS?		S-STARTS
	  ENDS?			S-ENDS
	  {}STARTS?		{}STARTS
22Jul08 * Added {}ENDS with tests.
24Jul08 * Improved code for >IN++ and >IN--.

Version 0.7.1
 8Apr08 * Added ?EMIT-CR, and revised NEXT-INPUT-NAME to use it.
 9Apr08 * Revised remaining across-line words to use it, except
	  for \\.
	* Removed all multiline "(...)" comments from
	  parsing-test.fs, so it can be pasted into a terminal
	  window for testing across-line words with terminal
	  input.  Revealed a problem with one of the
	  |S|-INPUT-AFTER, tests, namely, tabs are not inserted
	  into the input buffer when pasted into pfe's terminal,
	  which removes whitespace around the target string so
	  it's never found.  Maybe because the pfe terminal
	  intercepts tabs for autocompletion.  Added a switch
	  to replace the test with tabs by one with spaces in
	  terminal mode.
	* Pasted tests don't work at all with gforth 0.6.9. 
	  Maybe pasted LF's don't act as expected.
10Apr08	* Tests work with gforth 0.6.2.
	* The test with tabs now works both in terminal and file
	  mode, both in gforth and pfe.  Can't reproduce the tab
	  problem with pfe mentioned above.
	* Removed terminal mode switch from parsing-test.fs. 
	  Problem reappeared for pfe.  Turns out the search was
	  finding its target in the commented out version of the
	  test with the switch.  The conclusion so far is that
	  gforth handles the tab correctly, and pfe doesn't.
14Apr08 * Added comments about pasting parsing-test.fs into a
	  terminal window, and added DISALLOW-TAB-TEST switch.
	* Added test for ?EMIT-CR.
16Apr08 * Moved from parsing-test.fs to parsing.fs:
	  CUT-FIRST,  CUT-LAST,  KEEP-FIRST,  KEEP-LAST,
	* Fixed bug in NWTBF in parsing-test.fs.
18Apr08 * New tests:  CUT-FIRST  CUT-LAST  KEEP-FIRST  KEEP-LAST
	* Revised pfe /STRING switch in parsing-test.fs to test
	  for negative index bug.
	* Released.

Version 0.7.0
 1Jul07 * Added S-SCAN-INPUT.
 2Jul07	* Added conditionally defined 2RDROP, CHAR-,
	  [VOID], [TRUE].  Why isn't [VOID] named as [FALSE]?
	* Rewrote S-INPUT-AFTER to use S-SCAN-INPUT.
	* Added WHITE-DELIMITED?, and |S|-INPUT-AFTER.
	* Rewrote (* to make its terminator whitespace
	  delimited.  The status of the (* RfD is "shelved":
	  http://mips.complang.tuwien.ac.at/forth/ansforth/paren-star.txt
 4Jul07	* Added tests for S-SCAN-INPUT, S-INPUT-AFTER,
	* Tightened input stream comments.
	* Added WHITE?, a synonym for Wil Baden's IS-WHITE, used
	  in WHITE-DELIMITED? and elsewhere.  We think the
	  question mark always conveys the correct meaning, and
	  there a cases where its absence does not.  Added tests
	  for WHITE-DELIMITED?.  Versions with and without
	  locals passed.
 5Jul07	* Added switch for versions of |S|-INPUT-AFTER
	  that work with and without embedded whitespace, and
	  added tests.
	* Revised (* to abort on a missing terminator.
	* Improved >IN-- code.
 6Jul07	* Added simple NEXT-INPUT-NAME empty tests, and
	  parse-area boundary tests for >IN++ and >IN--. 
	  Removed corresponding blue comment caveats.
	  Added false flag tests for S-SCAN-INPUT,
	  S-INPUT-AFTER, and |S|-INPUT-AFTER, selectable by
	  editing.
	* Added CUT-FIRST, CUT-LAST, KEEP-FIRST, KEEP-LAST,
	  >IN+, +IN- to the list of words, marked as defined in
	  parsing-test.fs.  Candidates for promotion to
	  parsing.fs.
	* Rewrote CUT-FIRST to avoid a bug in pfe's /STRING,
	  which doesn't add characters when the top argument is
	  negative.
	* Renamed TRIM as TRIM| and added |TRIM and |TRIM|, plus
	  tests.
	* Updated parsing-words.txt.
	* Made source CHAR+ clean.  Already CHAR- clean.
 7Jul07	* Added PARSE-AREA-EMPTY? and test.
10Jul07	* Added conditional tests for normally commented-out ((
	  and ---.
	* Released.  Tested with pfe and gforth.

Version 0.6.9
31Mar07 * Replaced (( by (*, including regressions.
 2Apr07 * Added \\.  Revised preamble to mention blocks.

Version 0.6.8
 9Sep06 * Skipped the version number from 0.5.1 to sync with the
	  pfe external module parsing-ext.c.
	* SKIP-BACK made normally visible, removed from
	  "uncommentable" status.
	* Added to not implemented list:  {}SKIP, {}SKIP-PARSE,
	  {}SKIP-INPUT, {}PARSE-AWAY, {}SCAN-INPUT,
	  {}SCAN-INPUT-PAST.
	* Renamed S-INPUT-PAST as S-INPUT-AFTER.
	* Added compilation mode test for (( in parse-test.fs.
10Sep06 * Added test for S-INPUT-AFTER.
14Sep06 * Added tests for EMPTY-PARSE-AREA and PARSE-NAME.
15Sep06 * More tests for PARSE-NAME.  Added tests for
	  PARSE-AWAY, PREPARSE-NAME, >IN--, NEXT-INPUT-NAME,
	  PARSE-NAME-AWAY.
	* No test for PARSE-AREA!, but all existing tests passed
	  with pfe and gforth.
24Jan07 * Fixed stack comment in S-SEPARATE to include "true".
25Jan07 * Removed commmented out, old version of SEPARATE.

Version 0.5.1
26Aug06 * Combined parsing-strings.fs and and parsing-input.fs.
	  The log entries from parsing-strings.log and
	  parsing-input.log are listed below under version
	  0.5.0.  Fixed parsing-test.fs to work with parsing.fs
27Aug06 * Tidied up comments.
 7Sep06 * Replaced tester.fs include by testerplus.fs in
	  parsing-test.fs.  Moved VERBOSE statement ahead of the
	  first COMMENT.
 8Sep06 * Added switch for selecting parsing.fs or pfe parsing.

Version 0.5.0 (parsing-strings.log)
17Aug06 * Started with parsing.fs, based on earlier collection.
18Aug06	* Decided to follow Wil Baden's newer convention
	  (ToolBelt 2002), to remove BL prefixed words and deal
	  with whitespace conditionally.
	* Added STRING/, /SPLIT, SKIP, SCAN, [FALSE], [TRUE]. 
19Aug06 * Added SKIP-BACK, TRIM, SCAN-BACK, SEPARATE, STARTS?,
	  ENDS?.
	* Tentatively added END-C@.
	* Started parsing-strings-test.fs.  Still a few words
	  included so far untested.  SCAN-BACK failed.
20Aug06 * Added tests for 2000 and 2002 BACK, which passed. 
	  Fixed bug in SCAN-BACK.
	* Adopted an abstract empty string spec for skips and
	  scans, while actually implementating the Tool Belt
	  spec.
	* Added tests for STARTS? and ENDS?.  Fixed bugs
	  revealed in both.  Everything except SEPARATE tested.
21Aug06 * Added tests for SEPARATE, which failed.  Added
	  conditional compilation of an old implementation of
	  SEPARATE, which passed.  Fixed the new implementation.
	* Added {}IN?, {}SCAN, {}SCAN-PAST, and tests, which
	  passed.
22Aug06 * Renamed {}IN? as IN{}?.
	* Removed [FALSE], [TRUE].
	* Removed }S from tests.
	* Unadopted abstract empty string spec.  Too much
	  documentation and testing trouble.
	* Added {}SEPARATE, S-SEPARATE and tests, which passed.
	* Added S-AFTER, S-FIRST-WORD, and S-PARSE-WORD.
23Aug06 * Added tests for S-AFTER, S-FIRST-WORD, and
	  S-PARSE-WORD, which passed.
	* Added conditional compilation for -ROT and RDROP.
	* Renamed IN{}? as {}IN, its original name, and restored
	  the original spec that it acts as a char filter.
	* Added {}STARTS? with tests, which passed.
	* Changed name of S-PARSE-WORD to SEPARATE-WORD.
	* Renamed parsing-strings-test.fs as parsing-test.fs. 
	  We'll use the same test file for parsing-strings.fs
	  and parsing-input.fs.
24Aug06 * Renamed S-FIRST-WORD as FIRST-WORD.

Version 0.5.0 (parsing-input.fs)
17Aug06 * Started with parsing.fs, based on earlier collection.
18Aug06 * Split into parsing-strings.fs and parsing-input.fs. 
	  So far, parsing-input.fs contains only SKIP-PAST and
	  ((.
23Aug06 * Added PARSE-AREA@, PARSE-AREA!, and EXHAUST-INPUT.
	* Recoded SKIP-PAST to use /STRING and PARSE-AREA!. 
	  Added test for ((, which passed.
24Aug06 * Added SKIP-IN, >IN++, >IN--, PARSE-WORD, PRE-PARSE,
	  SKIP-WORD, NEXT-WORD
	* Renamed:
	  EXHAUST-INPUT	as EMPTY-PARSE-AREA
	  SKIP-IN	as PARSE-AWAY
	  SKIP-PAST	as S-INPUT-PAST
	  PARSE-WORD	as PARSE-NAME
	  PREPARSE	as PREPARSE-NAME
	  SKIP-WORD	as PARSE-NAME-AWAY
	  NEXT-WORD	as NEXT-INPUT-NAME