Czech RGL regression tests
From the RGL checkout, run:
sh tests/czech/check.sh
The script uses gf from PATH when GF is unset or empty. To select another
executable, including a path containing spaces, use:
GF='/path/to/gf' sh tests/czech/check.sh
GF names one executable, not a command with flags. Generated files go into
a temporary directory removed on exit. No application grammar is required.
regressions.gfs checks morphology and grammatical composition through the
source API, grouped by feature. Its expected output is in regressions.out.
markup.gfs separately checks clitic movement through fronting, embedding
and coordination, including discontinuous marked constituents. It also checks
that NP predetermination preserves markup scope when inserting before a modifier.
Source computation exposes Predef.BIND and Predef.SOFT_BIND markers;
PGF linearization handles them as token joining and punctuation.
The runner also builds AllCze, TryCze and SymbolicCze into a fresh
directory, then compiles CzeTests.gf using only that distribution.
Typed declarations check every public V2/V3 paradigm overload. The runner
requires the consumer's .gfo, since GF can report errors and still exit
successfully.
CzeRoundTrip and roundtrip.tsv check PGF generation and parsing, including
joined negation, polarity recovery and polite/plural ambiguity.
CzeExtensionRoundTrip and extension-roundtrip.tsv cover secondary and
dative predicates, bound objects, subject omission, complement forms and
predeterminer placement with a modified pronoun. Compound cardinals are checked
with possessives, oblique case and predicate agreement, including agreement
with the leading scale in sums such as 2,200.
The abstract fragments are acyclic: parsing must return the complete
expected set of trees, without truncation or reliance on enumeration order.
Repeated strings record distinct intended analyses. These small fragments
do not establish parsing coverage for the full Czech RGL.
Preserve the empty Pol.s constituent: selecting a verb form with pol.p
alone does not recover polarity. For example, parsing nečti ji should give:
UttImpSg PNeg (ImpVP (ComplSlash (SlashV2a read_V2) (UsePron she_Pron)))
Removing the constituent leaves ?1 in place of PNeg, even though the
negative spelling is recognized.
Prefer treebank coverage where practical. Keep source checks for paradigms and distinctions outside those fragments; do not repeat treebank examples unless the source API adds a separate contract. These tests cover present clauses, infinitives and imperatives, not the unimplemented RGL tenses or anteriority.
Coordinated-subject person/number agreement and subordinate-clause punctuation also retain inherited gaps. The finite fragments do not establish coverage of those constructions.