Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | s_expressions-parsers: fix parsing of nested subexpressions |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
edac34552735a7ff4be08d6d0baf290d |
| User & Date: | nat 2014-01-21 20:16:26.877 |
Context
|
2014-01-22
| ||
| 22:26 | s_expressions-parsers-tests: new test for Parser direct interface check-in: ba3f2acfaa user: nat tags: trunk | |
|
2014-01-21
| ||
| 20:16 | s_expressions-parsers: fix parsing of nested subexpressions check-in: edac345527 user: nat tags: trunk | |
|
2014-01-20
| ||
| 19:48 | s_expressions-atom_buffers-tests: add tests for the new octet stack interface check-in: 71a9406a61 user: nat tags: trunk | |
Changes
Changes to src/natools-s_expressions-parsers.adb.
| ︙ | ︙ | |||
94 95 96 97 98 99 100 |
when others => null;
end case;
exit;
end if;
-- Read a single octet from source
| | < < < < | < < | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
when others => null;
end case;
exit;
end if;
-- Read a single octet from source
if P.Override.Length > 0 then
P.Override.Pop (O);
else
Input.Read (Item, Last);
if Last not in Item'Range then
P.Latest := Events.End_Of_Input;
exit;
end if;
O := Item (Last);
|
| ︙ | ︙ | |||
169 170 171 172 173 174 175 |
then
P.Buffer.Append
(Encodings.Decode_Base64 (P.Internal.Chunk.Data
(0 .. P.Internal.Chunk.Length - 1)));
if P.Internal.State = Base64_Atom then
P.Latest := Events.Add_Atom;
else
| | | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
then
P.Buffer.Append
(Encodings.Decode_Base64 (P.Internal.Chunk.Data
(0 .. P.Internal.Chunk.Length - 1)));
if P.Internal.State = Base64_Atom then
P.Latest := Events.Add_Atom;
else
P.Override.Append_Reverse (P.Buffer.Data);
P.Buffer.Soft_Reset;
end if;
P.Internal := (State => Waiting);
end if;
when Hex_Atom =>
if Encodings.Is_Hex_Digit (O) then
|
| ︙ | ︙ |
Changes to src/natools-s_expressions-parsers.ads.
| ︙ | ︙ | |||
108 109 110 111 112 113 114 |
end case;
end record;
type Parser is tagged record
Internal : State_Data;
Pending : Events.Event := Events.End_Of_Input;
Override : Atom_Buffers.Atom_Buffer;
| < | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
end case;
end record;
type Parser is tagged record
Internal : State_Data;
Pending : Events.Event := Events.End_Of_Input;
Override : Atom_Buffers.Atom_Buffer;
Latest : Events.Event := Events.Error;
Buffer : Atom_Buffers.Atom_Buffer;
Level : Natural := 0;
end record;
type Subparser
(Backend : access Parser;
|
| ︙ | ︙ |