katom types from ref/ in groups, @table :leading in lines of text and :rulesep, @code under txt, one table style attribute, literal-klammer options (from dev 2e453744f5e9)
kdesc --katoms is Klammertext rendered from ref/, the types in titled groups, with --katoms full for the regex column. @table :leading L is L lines of the surrounding text in html as in pdf (default 1), and :rulesep spaces the horizontal rules. The html table has one style attribute, so :column_width fractions take effect again. @code and @source_listing render in plain text; captions are numbered per kind there, and a table needs no blank line around it. @c takes :nd, and an option-shaped word before a bar inside literal code is code. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
63956c00e5
commit
217c0f3fc5
23 files changed
+625
-290
No files matched your search
@@ -181,6 +181,36 @@ check_eq "25. a real literal klammer still works after a comment naming it" \
|
||||
'[x]' --klammersets none -t t -s "$T $LIT # mentions @lit here
|
||||
@lit x lit@"
|
||||
|
||||
echo
|
||||
echo "-- 25a-e: only a DECLARED option name opens an option region --"
|
||||
# The content of a literal klammer begins after the bar that follows its
|
||||
# options. ANY ":word" before a bar counted as an option until 2026-09-20,
|
||||
# declared or not, so code holding one ("ls :w | wc", a regex's "(?:a|b)")
|
||||
# lost everything up to the bar to an option region and the file failed with
|
||||
# 'Optional argument ":w" not defined' -- an error about an option the author
|
||||
# never wrote, in content promised to be read as nothing but text.
|
||||
# OPT declares one option, :flag, so both directions can be asserted.
|
||||
OPT='@@opt.k :flag.bool | t.literal : A literal klammer with an option @@ @@opt.t :: [*flag*/*t*] @@'
|
||||
OPTUSE=$(mktemp /tmp/escape_opt.XXXXXX).kt
|
||||
opt_case() { # opt_case NAME EXPECTED USE
|
||||
printf '%s\n' "$3" > "$OPTUSE"
|
||||
check_eq "$1" "$2" "$OPTUSE" --klammersets none -t t -d -s "$T $OPT"
|
||||
}
|
||||
opt_case "25a. an UNDECLARED :name before a bar is content" \
|
||||
'[/x :y | z]' '@opt x :y | z opt@'
|
||||
opt_case "25b. ... as is a regex's (?:a|b)" \
|
||||
'[/(?:a|b)]' '@opt (?:a|b) opt@'
|
||||
opt_case "25c. a DECLARED option still opens the option region" \
|
||||
'[true/x]' '@opt :flag | x opt@'
|
||||
opt_case "25d. ... and after its bar an undeclared :name is content again" \
|
||||
'[true/x :y | z]' '@opt :flag | x :y | z opt@'
|
||||
# The one ambiguity left, and the author's way out of it: a name the klammer
|
||||
# DOES declare, written inside the code before a bar, is an option -- unless
|
||||
# an option region has already been written, which ends at ITS bar.
|
||||
opt_case "25e. a declared name in the code is content once the options are written" \
|
||||
'[false/x :flag | z]' '@opt :flag false | x :flag | z opt@'
|
||||
rm -f "$OPTUSE"
|
||||
|
||||
rm -f "$ERR"
|
||||
|
||||
echo
|
||||
|
||||
@@ -107,6 +107,17 @@ echo
|
||||
echo "-- result detail is a word, not a verbosity level --"
|
||||
shows " 9. --katoms full adds the regex column" 'Regex' "$KDESC" --katoms full
|
||||
absent "10. --katoms alone omits it" 'Regex' "$KDESC" --katoms
|
||||
# The regex goes through @c, which processes caret forms: a bare "[^^@#|]+"
|
||||
# displayed as "[^@#|]+", a different regex, until the generator quoted its
|
||||
# carets. These two are the patterns that carry a caret before a special.
|
||||
shows " 9a. ... a regex keeps a caret before a special" '\[\^\^@#\|\]\+' "$KDESC" --katoms full
|
||||
shows " 9b. ... and a caret before a colon" '\[@\|#\^:\*\]' "$KDESC" --katoms full
|
||||
shows " 9c. the types are grouped under titles" '^ +Klammer definition *$' "$KDESC" --katoms
|
||||
# The table is wider than the text by the klammer's own argument, so the
|
||||
# paragraphs above it keep the text width (72) while a table row exceeds it.
|
||||
absent "10a. the prose above the table keeps the text width" \
|
||||
'^[A-Za-z].{72,}$' "$KDESC" --katoms
|
||||
shows "10b. ... while the table is wider than the text" '^ +Index .{72,}$' "$KDESC" --katoms
|
||||
shows "11. --coverage all adds the file column" 'sks/table/table\.k' "$KDESC" --coverage all
|
||||
absent "12. --coverage alone omits it" 'sks/table/table\.k' "$KDESC" --coverage
|
||||
# "all" is one word for both kinds of missing information: if you want some of
|
||||
|
||||
Reference in new issue
Block a user