Files in the top-level directory from the latest check-in of branch trunk
- .fossil-settings
- generated
- src
- tests
- tools
- coverage.sh
- LICENSE
- natools.gpr
- README.md
- tests.gpr
- unix_tools.gpr
Natools
This library gather all reusable packages written by Natasha Kerensikova that are too small to fit in a project by themselves.
It contains the following package hierarchy:
Accumulators: an interface for string accumulator objects and stacks of accumulatorsString_Accumulator_Linked_Lists: a basic implementation of an accumulator stack using a reference accumulator
Chunked_Strings: an implementation of unbounded strings backed by non-contiguous fixed-size chunks of memoryConstant_Indefinite_Ordered_Maps: task-safe ordered maps with immutable mappingCron: a simple low-precision service of periodic eventsFile_Streams: wrapper aroundStream_IOfiles implementing stream interfaceGetopt_Long: command-line argument processing similar to Cgetopt_longGNAT_HMAC: instances ofHMACusing GNAT hash primitivesHMAC: generic HMAC implementation using a formal hash functionIndefinite_Holders: simple Ada 2005 implementation of the Ada 2012 containerReferences: generic simple reference-counter implementationPools: task-safe pool of referencesjj
S-expressions: library for dealing with S-expressionsAtom_Buffers: dynamic buffer for S-expression atomsAtom_Ref_Constructors: helper constructors for atom referencesAtom_Refs: common reference-counted atomsConditionals: S-expression boolean expressions about some objectGeneric_Evaluate: Generic boolean expression evaluation frameworkStrings: Boolean expressions on standard strings
Dynamic_Interpreters: S-expression interpreter with mutable commands and callbacksEncodings: translators to and from official S-expression encodingsEnumeration_IO: tools to help I/O of enumerations in S-expressionsFile_Readers: objects reading a file to an atom or a S-expressionFile_Writers: file-backed S-expression printerGeneric_Caches: memory container for S-expressionsInterpeter_Loop: inner loop of S-expression interpreters, typically used in static interpretersInterpreters: callback-based S-expressions interpreterLockable: interface for S-expressions descriptors that can be temporarily restricted to a given nesting levelParsers: S-expression descriptor from a byte streamPrinters: interface for objects to which S-expressions are writtenPretty: human-friendly S-expression pretty printerConfig: serialization and deserialization of pretty printer parameters to and from S-expressions
Replayable: interface for S-expression descriptors whose state can be stored and replayedSpecial_Descriptors: always-empty and always-in-error descriptorsTemplates: S-expression template renderersDates: rendering ofAda.Calendar.TimevaluesGeneric_Discrete_Render: rendering of enumeration valuesGeneric_Integers: rendering of integer valuesIntegers: instance ofGeneric_Integersfor standard integers
Static_Hash_Maps: code generator around GNATPerfect_Hash_Generatorsto build a static hash mapS_Expressions: read S-expression description of static hash map
Storage_Pools: helper objects with dynamic memory managementString_Slices: objects hold slices of reference-counted shared stringsSlice_Sets: sets of aforementionned slices
Tests: very simple test frameworkText_IO: test output using standardAda.Text_IO
Time_IO: conversions between time values and stringsHuman: human-readable fuzzy formatsRFC_3339: time format described by RFC-3339
Time_Keys: short printable string serialization of time that is consistent with lexicographical orderTime_Statistics: accumulator for (run)time statisticsCoarse_Timers: instance ofGeneric_Timerswith standard calendar timeFine_Timers: instance ofGeneric_Timersusing realtime annexGeneric_Timers: timer objects to provide data to accumulators