(html (head (title "sph-lib (sph lang indent-syntax)") (link (@ (rel "stylesheet") (type "text/css") (href "/css/sph.css"))) (meta (@ (name "viewport") (content "width=device-width,initial-scale=1"))) #f) (body () (div (@ (class top)) (nav (a (@ (href "/")) "start") ", " (a (@ (href "/feed.xml")) "feed")) "") (div (@ (class "middle")) (div (@ (class mtime) (title "last modification time of the current page")) "2023-04-05") (section (h1 "(sph lang indent-syntax)") (div (p "converting to and from strings with indented lines") (p "part of " (a (@ (href "../../sph-lib.html")) "sph-lib")) (#f (section (@ (class "library-name")) (h1 "module name") (p "(sph lang indent-syntax)")) (section (@ (class "library-exports")) (h1 "exported bindings") (div (div (@ (class "doc-bindings")) (div (@ (id "doc-b-" "denoted-tree->indent-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "denoted-tree->indent-tree") " " (span (@ (class "first-sig")) "a [base-depth indent-string] ->")) (div (@ (class "rest-sig")) (div "((integer:indent . string:line-content) ...) [integer string] -> string")) "") (div (@ (id "doc-b-" "denoted-tree->indent-tree-lines") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "denoted-tree->indent-tree-lines") " " (span (@ (class "first-sig")) "a [base-depth indent-string] ->")) "" "") (div (@ (id "doc-b-" "indent-tree->denoted-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "indent-tree->denoted-tree") " " (span (@ (class "first-sig")) "a [indent-width] ->")) "" "") (div (@ (id "doc-b-" "indent-tree->prefix-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "indent-tree->prefix-tree") " " (span (@ (class "first-sig")) "a [indent-width] ->")) "" "") (div (@ (id "doc-b-" "indent-tree->range-delimited-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "indent-tree->range-delimited-tree") " " (span (@ (class "first-sig")) "a indent-char indent-width start-delimiter end-delimiter ->")) (div (@ (class "rest-sig")) (div "string char/char-set/procedure integer string string -> string")) (div (@ (class "description")) (("convert from indent syntax to one where nesting is specified by a pair of strings" (br) "for start and end of a range")))) (div (@ (id "doc-b-" "line->indent-and-content") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "line->indent-and-content") " " (span (@ (class "first-sig")) "a indent-width ->")) (div (@ (class "rest-sig")) (div "string integer -> (integer string)")) "") (div (@ (id "doc-b-" "prefix-tree->indent-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "prefix-tree->indent-tree") " " (span (@ (class "first-sig")) "a [base-depth indent-string] ->")) (div (@ (class "rest-sig")) (div "list:(string/list ...) -> string")) (div (@ (class "description")) (("converts a list to a string of indented lines with indent corresponding to nesting depth")))) (div (@ (id "doc-b-" "prefix-tree-text") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "prefix-tree-text") " " (span (@ (class "first-sig")) "source ->")) (div (@ (class "rest-sig")) (div "(string/list ...) -> string")) (div (@ (class "description")) (("convert a list with strings and eventually sub-lists with strings to an indented document structure." (br) "normalise indent from multiline string literals")))) (div (@ (id "doc-b-" "read-indent-tree->denoted-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "read-indent-tree->denoted-tree") " " (span (@ (class "first-sig")) "port [indent-width] ->")) "" "") (div (@ (id "doc-b-" "read-indent-tree->prefix-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "read-indent-tree->prefix-tree") " " (span (@ (class "first-sig")) "a ... ->")) (div (@ (class "rest-sig")) (div "same arguments as read-indent-tree ->")) (div (@ (class "description")) (("denoted-tree")))) (div (@ (id "doc-b-" "read-indent-tree-element->denoted-tree") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "read-indent-tree-element->denoted-tree") " " (span (@ (class "first-sig")) "port [indent-width] ->")) (div (@ (class "rest-sig")) (div "port [integer] -> list")) (div (@ (class "description")) (("assumes that unread-string works on the port")))) (div (@ (id "doc-b-" "string->indent-depth") (class "doc-b")) (div (span (@ (class "type")) "procedure") ": " (span (@ (class "name")) "string->indent-depth") " " (span (@ (class "first-sig")) "a indent-width ->")) (div (@ (class "rest-sig")) (div "string integer -> integer")) "")))))))) ()))