| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
implementations with regard to printing floating point exponents.
by deleting any plus sign and leading zeros after the 'e'.
* tests/009/json.expected: Regenerated.
|
|
|
|
|
|
|
|
|
|
| |
* tests/009/json.expected: Updated.
* tests/009/json.txr: Updated source. Translates to a more native
representation with vectors and hash tables. Numbers go to
floating point instead of remaining as strings.
* tests/009/pass1.json: New file: a test case from json.org.
|
|
|
|
|
|
|
|
| |
* tests/010/block.txr: New file.
* tests/010/reghash.expected: New file.
* tests/010/reghash.txr: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function. This must not flush out more than one character out of this
small buffer, except when we are flushing out the last data.
The correct operation is predicated on the assumption that
a complete character can be pulled out. That's why we move the
buffer to the front after consuming it, and do not automatically
flush until there are four bytes.
(string_out_put_string): We loop the call to string_out_byte_flush
here because when a request comes in to write a Unicode character,
we flush all the bytes, even if the tail of those bytes forms
an incomplete sequence that turns into U+DCxx codes.
(get_string_from_stream): Use the same loop termination test
as in string_out_put_string, for consistency. In that function
it is needed to prevent infinite looping in the case when
the string_out_put_string is being called from string_out_byte_flush
and is thus re-entering it.
* tests/010/strstream.expected: New file.
* tests/010/strstream.txr: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
represent empty optional output clauses, distinguishing them from
missing clauses. This creates an ambiguity, so that an @(output)
block which puts out a single empty line is treated as empty.
Present but empty clauses are now represented by t.
* match.c (do_output_line): Check for t and bail.
(do_output): Check for t instead of (nil) and bail.
* parser.y (o_elems_opt2): Nonterminal deleted.
(out_clauses_opt): Empty case generates nil.
(req_parts_opt): o_elems_opt2 replaced by o_elems_opt.
(repeat_rep_helper): Function now keeps track of which
clauses were specified. For those that were specified, but
empty, it substitutes t.
* tests/008/empty-clauses.expected: New file.
* tests/008/empty-clauses.txr: New file.
|
|
|
|
| |
* tests/008/filtenv.txr: New file.
|
|
|
|
| |
* tests/010/seq.expected: New file.
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (TXR_ARGS): Defined for new test case.
* tests/010/align-columns.dat: New file.
* tests/010/align-columns.expected: New file.
* tests/010/align-columns.txr: New file.
|
|
|
|
|
|
| |
* tests/007/except-2.expected: New file.
* tests/007/except-2.txr: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lib.h (getplist_f): Declared.
* match.c (v_collect, h_coll): Use getplist_f to distinguish
the case that :vars is explicitly specified as (). In this
case, no bindings escape from the collect.
* tests/008/soundex.txr: This test case broke due to using
:vars () and yet counting on the variable to exist.
* RELNOTES: Updated.
|
|
|
|
|
|
|
|
| |
(TXR_ARGS): Specified for new test case.
* tests/008/soundex.expected: New file.
* tests/008/soundex.txr: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the garbage collector (uninitialized fields in function objects).
* Makefile: Defined TXR_ARGS and TXR_OPTS for new test case.
* hash.c (hash_begin): Construction of cobj modified to obey
the correct procedure described in HACKING.
* lib.c (func_n3, func_n4): These functions neglected to initialize
the env member of the function structure.
* tests/009/json.expected: New file.
* tests/009/json.txr: New file.
* tests/009/webapp.json: New file.
|
| |
|
| |
|
|
|
|
| |
* tests/001/query-3.txr: Updated to new cat syntax.
|
|
|
|
|
| |
of piping from echo command. As a result, this test case should run on
MingW.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
differences between expected and actual test output.
* parser.l (yybadtoken): Handle new terminal symbol, SPACE.
New rule for producing SPACE token out of an extent of
tabs and spaces.
* parser.y (SPACE): New terminal symbol.
(o_var): New nonterminal. I noticed that the var rule was
being used for output elements, and the var rule refers to
elem rather than o_elem. A new o_var rule is a simplified
duplicate of var.
(elem): Handle SPACE token. Transform to regex if it is
a single space, otherwise to literal text.
(o_elem): Handle SPACE token in output.
* tests/001/query-2.txr: This query depends on matching
single spaces and so needs to use escapes.
* tests/001/query-4.txr, test/001/query-4.expected: New test
case, based on query-2.txr. It produces the same output,
but is simpler thanks to the new semantics of space.
* txr.1: Documented.
|
| |
|
|
|
|
|
|
|
|
| |
* Makefile: Defined TXR_ARGS for new test case.
* tests/008/students.expected: New file.
* tests/008/students.txr: New file.
* tests/008/students.xml: New file.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile: Made previous TXR_ARGS for 008 specific
to tokenizing test case, and introduced separate TXR_ARGS
for this test case.
* tests/008/configfile: New file.
* tests/008/configfile.expected: New file.
* tests/008/configfile.txr: New file.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
and horizontal @(choose :shortest ...).
* Makefile: Defined TXR_ARGS for tests/008 directory.
* tests/008/data: New file.
* tests/008/tokenize.expected: New file.
* tests/008/tokenize.txr: New file.
|
|
|
|
|
|
|
|
|
|
| |
function invocations.
* Makefile (TEST): Test targets marked as .PHONY, because they are.
* tests/007/except-1.expected: New file.
* tests/007/except-1.out: New file.
* tests/007/except-1.txr: New file.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
and @(freeform).
|
|
|
|
| |
Converted some directories to text files.
|
| |
|
| |
|
|
|