piqilib

The Piqi library -- runtime support for multi-format Protobuf/JSON/XML/Piq data serialization and conversion
Library piqilib
Module Piq_parser
module C = Piqi_common
module L = Piq_lexer
val tokenize_typename : string -> string list
val tokenize_name : string -> string -> string list
val check_name : string -> unit
val check_typename : string -> unit
val piq_addrefret : 'a -> C.piq_ast -> C.piq_ast
val piq_reference : ( 'a -> C.piq_ast ) -> 'a -> C.piq_ast
val make_named : string -> Piq_ast.Piq_ast.ast option -> C.piq_ast
val make_typed : string -> Piq_ast.Piq_ast.ast option -> C.piq_ast
val make_named_or_typed : string -> 'a -> string -> Piq_ast.Piq_ast.ast option -> C.piq_ast
val expand_name : C.piq_ast -> string -> string -> Piq_ast.Piq_ast.ast option -> C.piq_ast
val expand_obj_names : C.piq_ast -> C.piq_ast
val expand_names : C.piq_ast -> C.piq_ast
val cons_named : string -> Piq_ast.Piq_ast.ast -> C.piq_ast
val cons_typed : string -> Piq_ast.Piq_ast.ast -> C.piq_ast
val cons_named_or_typed : [< `name of string | `typename of string ] -> Piq_ast.Piq_ast.ast -> C.piq_ast
val expand_splices : C.piq_ast -> C.piq_ast
val expand : C.piq_ast -> C.piq_ast
val make_string : (string * int * int) -> L.string_type -> 'a -> 'b -> [> `binary of 'a * 'b | `string of 'a * 'b ]
val retry_parse_uint : string -> int64
val parse_uint : string -> int64
val parse_int : string -> [> `int of int64 * string | `uint of int64 * string ]
val parse_float : string -> [> `float of float * string ]
val parse_number : string -> [> `float of float * string | `int of int64 * string | `uint of int64 * string ]
val read_next : ?skip_trailing_comma:bool -> (string * (L.token * (int * int)) Stream.t) -> C.piq_ast option
val read_all : (string * (L.token * (int * int)) Stream.t) -> C.piq_ast list
val make_lexstream : L.buf -> (L.token * (int * int)) Stream.t
val init_from_channel : 'a -> in_channel -> 'a * (L.token * (int * int)) Stream.t
val init_from_string : 'a -> string -> 'a * (L.token * (int * int)) Stream.t
val init_from_token_list : 'a -> 'b list -> 'a * 'b Stream.t