Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | s_expressions-atom_refs: new package for atom references, taken out from Atom_Buffers |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
4627abed579fb132599256bb4af72732 |
| User & Date: | nat 2014-05-10 20:43:18.862 |
Context
|
2014-05-11
| ||
| 20:04 | s_expressions-interpreters: add a String-based command addition, since it's the overwhelmingly most common use case check-in: 179da1f3db user: nat tags: trunk | |
|
2014-05-10
| ||
| 20:43 | s_expressions-atom_refs: new package for atom references, taken out from Atom_Buffers check-in: 4627abed57 user: nat tags: trunk | |
|
2014-05-08
| ||
| 18:36 | Move atom comparison function from Natools.S_Expressions.Interpreters to Natools.S_Expressions check-in: 6f257a4f4d user: nat tags: trunk | |
Changes
Changes to src/natools-s_expressions-atom_buffers.ads.
| ︙ | ︙ | |||
18 19 20 21 22 23 24 | -- Natools.S_Expressions.Atom_Buffers implements an unbounded Atom designed -- -- to be used as an input buffer, accumulating data and extracting it as a -- -- single Atom object. -- -- It also provides an individual Octet accessor, used in parser internal -- -- recursive buffer. -- ------------------------------------------------------------------------------ | < | < < < < < | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
-- Natools.S_Expressions.Atom_Buffers implements an unbounded Atom designed --
-- to be used as an input buffer, accumulating data and extracting it as a --
-- single Atom object. --
-- It also provides an individual Octet accessor, used in parser internal --
-- recursive buffer. --
------------------------------------------------------------------------------
with Natools.S_Expressions.Atom_Refs;
package Natools.S_Expressions.Atom_Buffers is
pragma Preelaborate (Atom_Buffers);
type Atom_Buffer is tagged private;
procedure Preallocate (Buffer : in out Atom_Buffer; Length : in Count);
-- Preallocate enough memory to append Length octets without
-- any further allocation.
procedure Append (Buffer : in out Atom_Buffer; Data : in Atom);
|
| ︙ | ︙ |
Added src/natools-s_expressions-atom_refs.ads.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Natools.S_Expressions.Atom_Refs provides a common instance of default -- -- reference-counted atoms. -- ------------------------------------------------------------------------------ with Natools.References; with Natools.Storage_Pools; package Natools.S_Expressions.Atom_Refs is new Natools.References (Natools.S_Expressions.Atom, Natools.Storage_Pools.Access_In_Default_Pool'Storage_Pool, Natools.Storage_Pools.Access_In_Default_Pool'Storage_Pool); pragma Preelaborate (Natools.S_Expressions.Atom_Refs); |
Changes to src/natools-s_expressions-interpreters.ads.
| ︙ | ︙ | |||
24 25 26 27 28 29 30 | -- Formal types represent common objets for all the command, Shared_State -- -- begin read/write while Shared_Context is read-only. -- ------------------------------------------------------------------------------ with Natools.S_Expressions.Lockable; private with Ada.Containers.Indefinite_Ordered_Maps; | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | -- Formal types represent common objets for all the command, Shared_State -- -- begin read/write while Shared_Context is read-only. -- ------------------------------------------------------------------------------ with Natools.S_Expressions.Lockable; private with Ada.Containers.Indefinite_Ordered_Maps; private with Natools.S_Expressions.Atom_Refs; generic type Shared_State (<>) is limited private; type Shared_Context (<>) is limited private; package Natools.S_Expressions.Interpreters is pragma Preelaborate (Interpreters); |
| ︙ | ︙ | |||
117 118 119 120 121 122 123 |
package Command_Maps is new Ada.Containers.Indefinite_Ordered_Maps
(Atom, Command'Class, Less_Than);
type Interpreter is new Command with record
Commands : Command_Maps.Map;
Max_Length : Count := 0;
| | | 117 118 119 120 121 122 123 124 125 126 127 |
package Command_Maps is new Ada.Containers.Indefinite_Ordered_Maps
(Atom, Command'Class, Less_Than);
type Interpreter is new Command with record
Commands : Command_Maps.Map;
Max_Length : Count := 0;
Fallback_Name : Atom_Refs.Reference;
end record;
end Natools.S_Expressions.Interpreters;
|