← All compilation units

Flyology_CBOR.Parsing

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
Return value