From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on ip-172-31-91-241.ec2.internal X-Spam-Level: X-Spam-Status: No, score=0.0 required=3.0 tests=none autolearn=unavailable autolearn_force=no version=4.0.1 Path: nntp.eternal-september.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: ANN: Simple Components 4.75 Date: Sun, 10 Aug 2025 15:44:36 +0200 Organization: A noiseless patient Spider Message-ID: <107a7o4$1u3pv$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 10 Aug 2025 13:44:36 +0000 (UTC) Injection-Info: dont-email.me; posting-host="1dfdedfffde418bde7f8e6a2826bb0dc"; logging-data="2035519"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19BzguSqZSAhz2oScxtO21ig0HE/aiKV5c=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:G/lefG2dEBivo4Figv33WLzFUlI= Content-Language: en-US Xref: feeder.eternal-september.org comp.lang.ada:66863 List-Id: The current version provides implementations of smart pointers, directed graphs, sets, maps, B-trees, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), arbitrary precision arithmetic, pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support, streams, persistent storage, multiple connections server/client designing tools and protocols implementations. https://www.dmitry-kazakov.de/ada/components.htm Changes to the previous version: - The parsing example was upgraded from Ada 95 to Ada 2022. The changes include: - Unicode identifiers; - new () syntax; - Container aggregate; - for expressions in container aggregate; - declare expressions; - delta aggregates; - if expressions; - case expressions; - raise expressions; - The package Parsers.Generic_Ada_Parser.Generic_Dot was added for writing Ada syntax trees in the DOT format of Graphviz; - The package Parsers.Generic_Ada_Parser.Generic_Text_IO was added for printing Ada syntax trees; - The package Parsers.Generic_Source.UTF8_Keywords was added. An example of text output of the syntax tree for: (for I in 1 .. 4 => -- ARM 4.3.3 (for J in 1 .. 4 => (if I=J then 1.0 else 0.0))); () at 355:1..357:38 |__for I in .. at 355:13..14 |__1 at 355:11..11 |__4 at 355:16..16 => () at 356:8..357:37 |__for J in .. at 356:20..21 |__1 at 356:18..18 |__4 at 356:23..23 => if = at 357:16..16 |__I at 357:15..15 |__J at 357:17..17 then 1.0 at 357:24..26 else 0.0 at 357:33..35 -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de