29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
+
|
with Natools.S_Expressions.Atom_Buffers;
with Natools.S_Expressions.Lockable;
package Natools.S_Expressions.Parsers is
pragma Preelaborate (Natools.S_Expressions.Parsers);
type Parser is abstract limited new Lockable.Descriptor with private;
pragma Preelaborable_Initialization (Parser);
procedure Read_More
(Self : in out Parser;
Buffer : out Atom_Buffers.Atom_Buffer)
is abstract;
-- Read data to be parsed.
-- Leaving the buffer empty signals end of input stream.
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
+
|
State : in out Lockable.Lock_State;
Finish : in Boolean := True);
type Stream_Parser (Input : access Ada.Streams.Root_Stream_Type'Class) is
limited new Lockable.Descriptor with private;
pragma Preelaborable_Initialization (Stream_Parser);
private
type Internal_State is
(Waiting, -- waiting for a marker
Base64_Atom, -- reading an atom encoded in base 64
Base64_Expr, -- reading an expression encoded in base 64
|