Token parsing functions for TOON format.
Parses array headers, delimited values, primitive tokens, and keys.
Token parsing functions for TOON format. Parses array headers, delimited values, primitive tokens, and keys.
(array-header-line line)Parses an array header line.
Format: key?[#?N<delim?>]{fields}?: inline-values?
Parameters:
Returns: Map with {:key, :length, :delimiter, :fields, :inline-values}
Example: (parse-array-header-line "[3]:") => {:length 3 :delimiter ","}
(parse-array-header-line "items[2]{id,name}:") => {:key "items" :length 2 :delimiter "," :fields ["id" "name"] ...}
(parse-array-header-line "[3]: a,b,c") => {:length 3 :delimiter "," :inline-values "a,b,c" ...}
Parses an array header line.
Format: key?[#?N<delim?>]{fields}?: inline-values?
Parameters:
- line: Header line string
Returns:
Map with {:key, :length, :delimiter, :fields, :inline-values}
Example:
(parse-array-header-line "[3]:")
=> {:length 3 :delimiter ","}
(parse-array-header-line "items[2]{id,name}:")
=> {:key "items" :length 2 :delimiter "," :fields ["id" "name"] ...}
(parse-array-header-line "[3]: a,b,c")
=> {:length 3 :delimiter "," :inline-values "a,b,c" ...}(bracket-segment bracket-content)Parses bracket segment to extract length and delimiter.
Format: [N<delim?>]
Parameters:
Returns: Map with {:length, :delimiter}
Example: (parse-bracket-segment "3") => {:length 3 :delimiter ","} (parse-bracket-segment "3|") => {:length 3 :delimiter "|"} (parse-bracket-segment "3\t") => {:length 3 :delimiter "\t"}
Parses bracket segment to extract length and delimiter.
Format: [N<delim?>]
- Required N (numeric length)
- Optional delimiter (tab or pipe char in brackets)
Parameters:
- bracket-content: Content inside brackets (without [ ])
Returns:
Map with {:length, :delimiter}
Example:
(parse-bracket-segment "3") => {:length 3 :delimiter ","}
(parse-bracket-segment "3|") => {:length 3 :delimiter "|"}
(parse-bracket-segment "3\t") => {:length 3 :delimiter "\t"}(delimited-values input)(delimited-values input delimiter)Splits a string by delimiter, respecting quoted sections.
Parameters:
Returns: Vector of trimmed token strings
Example: (parse-delimited-values "a,b,"c,d",e" ",") => ["a" "b" ""c,d"" "e"]
Splits a string by delimiter, respecting quoted sections. Parameters: - input: String to split - delimiter: Delimiter character (default ",") Returns: Vector of trimmed token strings Example: (parse-delimited-values "a,b,\"c,d\",e" ",") => ["a" "b" "\"c,d\"" "e"]
(key-token key-str)Parses a key token (before colon).
Handles quoted and unquoted keys.
Parameters:
Returns: Map with {:key "parsed-key" :was-quoted boolean}
Example: (parse-key-token "name") => {:key "name" :was-quoted false} (parse-key-token ""user name"") => {:key "user name" :was-quoted true}
Parses a key token (before colon).
Handles quoted and unquoted keys.
Parameters:
- key-str: Key string (may include trailing colon)
Returns:
Map with {:key "parsed-key" :was-quoted boolean}
Example:
(parse-key-token "name") => {:key "name" :was-quoted false}
(parse-key-token "\"user name\"") => {:key "user name" :was-quoted true}(number s)Parses a numeric string to a number.
Parameters:
Returns: Number (double) or nil if not a valid number
Note: Normalizes negative zero to positive zero per TOON v1.4 spec
Parses a numeric string to a number. Parameters: - s: String to parse Returns: Number (double) or nil if not a valid number Note: Normalizes negative zero to positive zero per TOON v1.4 spec
(primitive-token token)(primitive-token token strict)Parses a primitive token to its value.
Handles:
Parameters:
Returns: Parsed value (nil, boolean, number, or string)
Parses a primitive token to its value. Handles: - null → nil - true → true - false → false - Numbers → numeric value - Quoted strings → unescaped string - Unquoted strings → string as-is Parameters: - token: String token to parse - strict: Validate escape sequences in strings (default true) Returns: Parsed value (nil, boolean, number, or string)
(string-literal s)(string-literal s strict)Parses a quoted string literal.
Expects string to start with double quote. Finds closing quote and unescapes content.
Parameters:
Returns: Unescaped string content
Throws: ex-info if no closing quote found or invalid escapes
Parses a quoted string literal. Expects string to start with double quote. Finds closing quote and unescapes content. Parameters: - s: String starting with opening quote - strict: Validate escape sequences (default true) Returns: Unescaped string content Throws: ex-info if no closing quote found or invalid escapes
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |