Related articles |
---|
From: | George Neuner <gneuner2@comcast.net> |
Newsgroups: | comp.compilers |
Date: | Fri, 06 May 2022 11:00:16 -0400 |
Organization: | A noiseless patient Spider |
References: | 22-05-003 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="93123"; mail-complaints-to="abuse@iecc.com" |
Keywords: | lex |
Posted-Date: | 06 May 2022 12:14:51 EDT |
On Wed, 4 May 2022 11:22:34 +0000, Roger L Costello
<costello@mitre.org> wrote:
>Hi Folks,
>1. A lexical analysis language that exclusively provides regular expressions
>for scanning input can only process regular languages.
>2. Flex provides, in addition to regular expressions, states and a pushdown
>stack. This greatly expands the set of languages that can be processed.
>3. Because Flex provides states and a pushdown stack, Flex lexers can process
>context-free languages.
>4. No other lexical analysis language provides states and a pushdown stack.
>5. Flex is the most powerful lexical analysis language in the world.
>[I think that you could easily graft a state stack into any lexer that has start states.
>Also, tools like Antlr combine the lexer and parser generators, so they're at least as
>powerful as flex. -John]
+1 John.
Roger, if you hadn't already asked some more interesting questions, I
would suspect this 'test' was homework.
Flex is powerful, but it certainly is not alone. As John's response
hinted, there are (plenty of other) tools that more or less are
equivalent. And not all of them are based on LR.
https://en.wikipedia.org/wiki/Comparison_of_parser_generators
Not to mention that programming languages which tend to actually be
used also tend to be [relatively] easily parsed using LL(k).
LR is useful AS AN IMPLEMENTATION TECHNIQUE, but in general if your
language is complex enough to really /require/ (G)LR or PEG parsing,
it probably is too complicated to be used by average programmers.
YMMV,
George
Return to the
comp.compilers page.
Search the
comp.compilers archives again.