Description
Parser is single-owner and not task-safe. Concurrent access or task abort during a call is outside the contract. The parser allocates nothing and retains no input-array reference.
Abort_Document
procedure Abort_Document (Self : in out Parser)
Parameters
- Self
Applied_Profile
function Applied_Profile (Self : Parser) return Profiles.Parser_Profile
Parameters
- Self
Return value
Byte_Offset
subtype Byte_Offset is Errors.Byte_Offset;
Parser is single-owner and not task-safe. Concurrent access or task abort during a call is outside the contract. The parser allocates nothing and retains no input-array reference.
Chunk_Range
type Chunk_Range is record
First_Count : Ada.Streams.Stream_Element_Count;
Octet_Length : Ada.Streams.Stream_Element_Count;
end record;
Record fields
- First_Count
- Octet_Length
Declared_Length
function Declared_Length (Item : Event) return Values.Item_Length
Parameters
- Item
Return value
Drain
procedure Drain
(Self : in out Parser;
Input : Ada.Streams.Stream_Element_Array;
End_Of_Input : Boolean;
Events : in out Event_Array;
Result : out Drain_Result)
Parameters
- Self
- Input
- End_Of_Input
- Events
- Result
Drain_Result
type Drain_Result is record
Stop : Drain_Stop;
Input_Origin : Byte_Offset;
Consumed : Ada.Streams.Stream_Element_Count;
Produced : Ada.Streams.Stream_Element_Count;
Diagnostic : Errors.Diagnostic;
end record;
Record fields
- Stop
- Input_Origin
- Consumed
- Produced
- Diagnostic
Drain_Stop
type Drain_Stop is
(Output_Full,
Drain_Need_Input,
Drain_Document_Complete,
Drain_Failed,
Drain_Rejected);
Enumeration literals
- Output_Full
- Drain_Need_Input
- Drain_Document_Complete
- Drain_Failed
- Drain_Rejected
Event
type Event is private;
Event_Array
type Event_Array is
array (Ada.Streams.Stream_Element_Offset range <>) of Event;
Event_Kind
type Event_Kind is
(Document_Begin,
Document_End,
Unsigned_Value,
Negative_Integer_Value,
Byte_String_Begin,
Byte_String_Chunk_Begin,
Byte_String_Fragment,
Byte_String_Chunk_End,
…,
Float_Value);
Enumeration literals
- Document_Begin
- Document_End
- Unsigned_Value
- Negative_Integer_Value
- Byte_String_Begin
- Byte_String_Chunk_Begin
- Byte_String_Fragment
- Byte_String_Chunk_End
- Byte_String_End
- Text_String_Begin
- Text_String_Chunk_Begin
- Text_String_Fragment
- Text_String_Chunk_End
- Text_String_End
- Array_Begin
- Array_End
- Map_Begin
- Map_End
- Tag_Begin
- Tag_End
- False_Value
- True_Value
- Null_Value
- Undefined_Value
- Simple_Value
- Float_Value
Float_Data
function Float_Data (Item : Event) return Values.Float_Value
Parameters
- Item
Return value
Fragment_Kind
function Fragment_Kind
(Item : Event) return Fragment_Representation
Parameters
- Item
Return value
Fragment_Representation
type Fragment_Representation is (Borrowed_Input, Inline_Text_Scalar);
Enumeration literals
- Borrowed_Input
- Inline_Text_Scalar
Fragment_Source
function Fragment_Source (Item : Event) return Source_Range
Parameters
- Item
Return value
Has_Applied_Profile
function Has_Applied_Profile (Self : Parser) return Boolean
Parameters
- Self
Return value
Has_Raw_Slice
function Has_Raw_Slice (Item : Event) return Boolean
Parameters
- Item
Return value
Initialize
procedure Initialize
(Self : in out Parser;
Profile : Profiles.Parser_Profile;
Diagnostic : out Errors.Diagnostic)
Parameters
- Self
- Profile
- Diagnostic
Inline_Scalar
type Inline_Scalar is record
Length : Positive range 1 .. 4;
Octets : Scalar_Octets;
end record;
Record fields
- Length
- Octets
Inline_Text
function Inline_Text (Item : Event) return Inline_Scalar
Parameters
- Item
Return value
Integer_Data
function Integer_Data (Item : Event) return Values.Integer_Value
Parameters
- Item
Return value
Kind
function Kind (Item : Event) return Event_Kind
Source is the complete absolute lexical range. Document_Begin and Document_End are zero-width at the operation origin/current end. Definite container, tag, string, and chunk ends are zero-width at the byte after their content. Indefinite array/map/string ends carry the break byte. Scalar and begin events carry their complete head; a head split across calls has no raw slice. Fragment events carry payload source only.
Parameters
- Item
Return value
Parser
type Parser (Maximum_Syntax_Depth : Natural) is limited private;
Record fields
- Maximum_Syntax_Depth
Parser_State
type Parser_State is
(Uninitialized,
Ready,
Active,
Failure_Pending,
Completed,
Failed,
Aborted);
Enumeration literals
- Uninitialized
- Ready
- Active
- Failure_Pending
- Completed
- Failed
- Aborted
Reset
procedure Reset
(Self : in out Parser;
Profile : Profiles.Parser_Profile;
Diagnostic : out Errors.Diagnostic)
Parameters
- Self
- Profile
- Diagnostic
Resolve_Raw_Range
procedure Resolve_Raw_Range
(Item : Event;
Window_Origin : Byte_Offset;
Window_Length : Ada.Streams.Stream_Element_Count;
Slice : out Chunk_Range;
Status : out Slice_Status)
Parameters
- Item
- Window_Origin
- Window_Length
- Slice
- Status
Scalar_Octets
subtype Scalar_Octets is
Ada.Streams.Stream_Element_Array
(Ada.Streams.Stream_Element_Offset range 1 .. 4);
Simple_Data
function Simple_Data (Item : Event) return Values.Simple_Code
Parameters
- Item
Return value
Slice_Status
type Slice_Status is
(Slice_Resolved, No_Raw_Slice, Range_Outside_Window);
Enumeration literals
- Slice_Resolved
- No_Raw_Slice
- Range_Outside_Window
Source
function Source (Item : Event) return Source_Range
Parameters
- Item
Return value
Source_Range
type Source_Range is record
First : Byte_Offset;
Octet_Length : Byte_Offset;
end record;
Record fields
- First
- Octet_Length
State
function State (Self : Parser) return Parser_State
Parameters
- Self
Return value
Step
procedure Step
(Self : in out Parser;
Input : Ada.Streams.Stream_Element_Array;
End_Of_Input : Boolean;
Result : out Step_Result)
Parameters
- Self
- Input
- End_Of_Input
- Result
Step_Outcome
type Step_Outcome is
(Event_Ready,
Need_Input,
Document_Complete,
Step_Failed,
Call_Rejected);
Enumeration literals
- Event_Ready
- Need_Input
- Document_Complete
- Step_Failed
- Call_Rejected
Step_Result
type Step_Result is record
Outcome : Step_Outcome;
Input_Origin : Byte_Offset;
Consumed : Ada.Streams.Stream_Element_Count;
Item : Event;
Diagnostic : Errors.Diagnostic;
end record;
Record fields
- Outcome
- Input_Origin
- Consumed
- Item
- Diagnostic
Tag_Data
function Tag_Data (Item : Event) return Values.Tag_Number
Parameters
- Item
Return value
Terminal_Diagnostic
function Terminal_Diagnostic (Self : Parser) return Errors.Diagnostic
Parameters
- Self