Declarations
Public Only
struct ParseResult {
var ok : bool
var pos : size_t
var msg : *char
}
ParseResult: return status
func Err(p : size_t, m : *char) : ParseResult
interface JsonSaxHandler
func on_bool(self : &JsonSaxHandler, value : bool) : void
func on_number(self : &JsonSaxHandler, data : *char, len : size_t) : void
func on_string(self : &JsonSaxHandler, data : *char, len : size_t) : void
func on_object_begin(self : &JsonSaxHandler) : void
Structural callbacks
func on_object_end(self : &JsonSaxHandler) : void
func on_array_begin(self : &JsonSaxHandler) : void
func on_array_end(self : &JsonSaxHandler) : void
func on_key(self : &JsonSaxHandler, data : *char, len : size_t) : void
func append_utf8(cp : uint32_t, out : *char, outpos : &size_t, outcap : size_t) : bool
Helper: append codepoint as UTF-8 into out buffer. Return false if not enough space.
struct JsonParser {
var max_depth : size_t
var max_string : size_t
var scratch : char[4096]
var s : *char
var len : size_t
var pos : size_t
var handler : *JsonSaxHandler
}
func make(max_depth_ : size_t, max_string_ : size_t) : JsonParser
func at_end(self : &JsonParser) : bool
func cur(self : &JsonParser) : char
func advance(self : &JsonParser, n : size_t) : void
func skip_ws(self : &JsonParser) : void
parse literal like true/false/null
func parse_string_inplace(self : &JsonParser, out : *char, outcap : size_t, outlen : &size_t) : ParseResult
parse a JSON string starting at current pos (expects '"').
Unescape into provided out buffer with capacity outcap. outlen set to length.
Uses strict rules: control characters (0x00-0x1F) are forbidden.