From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,76810fb2de171127,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-02-22 04:53:56 PST Path: archiver1.google.com!news2.google.com!fu-berlin.de!uni-berlin.de!dialin-145-254-042-231.arcor-ip.NET!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: ANN: Simple components v1.4 Date: Sun, 22 Feb 2004 14:01:14 +0100 Organization: At home Message-ID: Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: dialin-145-254-042-231.arcor-ip.net (145.254.42.231) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Trace: news.uni-berlin.de 1077454434 48603299 I 145.254.42.231 ([77047]) User-Agent: KNode/0.7.2 Xref: archiver1.google.com comp.lang.ada:5728 Date: 2004-02-22T14:01:14+01:00 List-Id: http://www.dmitry-kazakov.de/ada/components.htm Changes: 1. The packages rooted in Parsers provide infix expressions syntax analyzers. Parsers can be used for syntax analysis of infix expressions, i.e. ones containing infix (dyadic), prefix and postfix operators, brackets, function calls, array indices etc. The approach presented does not require any grammar put down to generate scanner and analyzer. Nor any code generation steps are required. An object-oriented approach is used instead. The lexical procedures are dispatching, so that implementations may be provided through overriding them. Parsers can be used both for immediate one-pass code interpretation and for parsing tree building. Parser automatically detects the expression end allowing its easy integration. Operator precedence is expressed in a native way by setting priorities controlling association with the operands. Associations with the left and right side operands are controlled independently. Commutative operators and their inverses can be optimized when necessary. Especial attention is paid to error handling allowing generating very precise error messages and source code references. Samples from a small console calculator to a complete parsing tree generator for Ada 95 expressions illustrate examples of use; 2. The package Generic_Segmented_Stack provides a specialization of the generic stack package; 3. Random access to generic stacks (Get / Put); 4. Strings edit facilities; 5. Tables management package. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de