From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!aioe.org!5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Easiest way to use redular expressions? Date: Tue, 5 Jan 2021 10:27:00 +0100 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: 5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:61033 List-Id: On 2021-01-05 02:31, Shark8 wrote: >> OK, I assume it somehow breaks the philosophy on Ada and security/reliability. Could someone therefore show a better and more simple way to do this? gnat.expect? >> >> reinert > In my career, about 90% of the paid programming has been maintenance. > As such, any time RegEx comes up, I am almost filled with dread: RegEx is terrible, overly limited, often part of a system that easily evolves beyond the constraints that are implied with RegEx (that of being a "regular language"). -- I would go so far as to even advise things like "compiler recognizers" *not* use RegEx. I agree. Regular expressions is almost always wrong choice. In general all patterns beyond wildcards * are. If somebody is adamant to use patterns, then SNOBOL would be a better choice. It is cleaner, intuitive and more powerful than regular expressions. (There is a SPITBOL implementation in GNAT libraries. I also have an implementation with immediate assignment support, though in C with Ada bindings). > I've found that an actual parsing system is far preferable to RegEx. Yes, but it is upfront efforts people are shy of. It pays off, but later. When parsing/matching things, failures (errors) are more important that successful matches. Patterns are weak and tedious in working on failures, unbalanced brackets, misused underscores in literals, such stuff. In some ceases they cannot do it at all, in others they require a lot of recursion and backtracking becoming very inefficient. In short, using patterns is a quick start and endless headache later. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de