ChangeLog for bnaut.fs Unattributed changes are by the initial author, David N. Williams The revision date in the source file may be more recent than the most recent date here, when only cosmetic changes have been made. Version 0.5.6 23Aug07 * Updated dstring names to version 0.7.5. * Reordered parsing.fs input to minimize "redefined". Version 0.5.5 28Jan07 * Added }MERGE for argument merging. Indentation needs work. 29Jan07 * Added #LEADING, UNLEAD-LINES+. Replaced IS-COMPOSITE? by COMPOSITE?, which works off of LINES-BUF instead of the string stack, and added MERGED?. Revised LTH-INDENTED+ accordingly, and fixed the indentation in }MERGE. 30Jan07 * After experience with real bnf's for address expressions, adopted a new brace-matching format in the examples section. * Separated user parameters for pre and post loading. * Removed UNUM>$S. It's not used, and has a nasty bug: "unum>s >$s" assumes that the fstring is also an mstring, which it isn't. 7Feb07 * Revised comments about upto merges to emphasize that they don't backtrack properly by themselves. Added }UPTO& to handle that for anding one upto with one normal element. 8Feb07 * Removed }UPTO& in favor of }ANDS for n = 1. Started removing optimizations because a reasonable implementation of COND...ELSES... does the right thing anyway. Revising notation to agree with new notation in expr.html. 9Feb07 * Finished the above, and revised examples. * This looks like a release. 17Feb07 * Default MAX-LEVELS raised from 6 to 8. 23Apr08 * Fixed two confusing typos in comments. Replaced "almost normal" by "seminormal". Version 0.5.4 22Dec06 * Adjusted the syntax of the uncommentable example at the end of bnaut.fs. It seems to include little or no nesting. 28Dec06 * Revised for COND: }ONCES, }MAYBES, }ONCES&UPTO * No change: }ONCE&UPTO, }UPTO-ANY, }UPTO-1, }}UPTO, }HEAD, TAIL * Need to make a subindent parameter? 6Jan07 * Redid work for 28Dec06, lost when laptop eventually succumbed to being dropped at LAX security, and we overlooked retrieving bnaut.fs while it could still be reached over the network. 10Jan07 * Renamed: Old New }ONCES }ANDS }MAYBES }ORS 11Jan07 * Removed {, }#, DEPTH-STACK, PUSH-DEPTH, and POP-DEPTH. * Renamed: Old New }UPTO-ANY }ANY-UPTO }UPTO-1 }1-UPTO }}UPTO }N-UPTO 15Jan07 * Revised to incorporate rethinking of logic for normal and upto elements, described in expr.html. * Replaced THENIF by IF. * Replaced $" ..." $+ by S" ..." S+. * Removed }ONCE&UPTO and renamed }ONCES&UPTO as }ANDS&UPTO. 17Jan07 * Pruning and tweaking. 18Jan07 * Replaced }HEAD by _HEAD". Added SET-NORMAL-SPAT, etc. * Rewrote examples to reflect template summary in expr.html. * Added }ORS optimization for 2 args. * Added nesting examples. Need to fix indentation. * Renamed ${ as {. 21Jan07 * Renamed examples output file parse.out as bnaut.out. 22Jan07 * Fixed hard to find indentation bug in }ORS. Reviewed INDENT-LINES+ and found no better solution for nested indentation. * Converted to "---" for multiline comments. * Removed LTH-$ARG, /LINE-INDENT, XTRA-INDENT++. * Added user params LEAD-INDENT, HANG-INDENT, NEST-INDENT. * Added LEAD-INDENT+, HANG-INDENT+, ?NEST-INDENT+, LTH-ARG+. Rewrote template generators to use them. * Made all user parameters values instead of conditionally defined constants. * Replaced ?CODE$ by ?_CODE, and deleted ?\n+. * Removed 'TIS-'TAINT+, revamped indentation. * Renamed ${-DEPTH as NEST-DEPTH. 24Jan07 * Redid indentation completely. Removed NEST-INDENT, HANG-INDENT+, ?NEST-INDENT+, LTH-ARG+. Added IS-COMPOSITE?, LTH-INDENTED+. * Added }NORM&UPTO. Don't much like the name. Added examples which revealed a bug: when upto words that generate a terminating comment line are nested, cleanup code gets hidden behind the comment. 26Jan07 * New indentation policy. No terminating comment lines, and the trailing cleanup line for a form is concatenated onto the end of the last argument line. The user can hand-edit the output if that's too long. * Folded }NORM&UPTO into }ANDS&UPTO as an optimization. * Everything seems to work, both pfe and gforth, but haven't tested with pfe libraries. * Added table of contents. 27Jan07 * Added list of public words. * Failed with pfe libraries. Fixed stupid bug in RDROP; it wasn't macroized. * This is a functioning version. Version 0.5.3 19Dec06 * Started conversion to Baden COND ... THENS, etc. 21Dec06 * Replaced "needs stack.fs" by "requires xstacks.fs" and adapted to xstacks syntax. * Renamed NUM>S, NUM>$S, NUM$+, and NUM>OUT as UNUM>S, UNUM>$S, UNUM$+, and UNUM>OUT. Rewrote UNUM>S as in dstring-utils.fs, to avoid negative sign extension. * Replaced old by current dstrings names (0.7.3). Removed lots of trailing "$+"'s from names in favor of trailing "+"'s. * Added NIF, etc. * Renamed ADDR~ as AAMA-ADDR. * Added SEPARATE for use in SEPARATE-LINE. * ANS'fied OPEN-OUTSTREAM and CLOSE-OUTSTREAM. * Dropped ">out" sufffixes and added "_" prefixes for writing to the output stream. Used emitter code from toppc.fs. * Removed #$ARGS redefinition, and rewrote }$# to make a string frame. Then the dstrings #$ARGS is used. Added LTH-$ARG. 22Dec06 * Adapted main program words to current dstrings. Fixed }ONCE&UPTO, }UPTO-ANY, }UPTO-1, }}UPTO, and }HEAD to use string frames, like everybody else. * Renamed XTRA-INDENT+ as XTRA-INDENT++. * New version of aamaexpr.fs revealed bug in SEPARATE, which was a commented-out version from parsing.fs 0.6.8. Indeed it fails parsing-test.fs. Fixed by loading parsing.fs. * Works! Produces same aamaexpr.out as before. Now we need to replace Harralson's conditionals with Baden's. We'll want to modify the indentations, too. Version 0.5.2 24Jul04 * Start reworking for Dynamic-Strings version 0.7.2. Version 0.5.1 31May02 * Pfe dstrings version, no code change. Version 0.5.0: VSys ^Forth version 10Jul96 * Start. 20Jul96 * Last revision.