Related articles |
---|
[13 earlier articles] |
Re: is lex useful? scooter@mccabe.com (Scott Stanchfield) (1996-06-27) |
Re: is lex useful? Scott.Nicol@infoadvan.com (1996-06-27) |
Re: is lex useful? Scott.Nicol@infoadvan.com (1996-06-27) |
Re: is lex useful? 72510.2757@CompuServe.COM (Stephen Lindholm) (1996-06-27) |
Re: is lex useful? kanze@lts.sel.alcatel.de (1996-06-27) |
Re: is lex useful? bart@time.cirl.uoregon.edu (1996-06-30) |
Re: is lex useful? Robert.Corbett@Eng.Sun.COM (1996-06-30) |
Re: is lex useful? leichter@smarts.com (1996-06-30) |
Re: is lex useful? trd@murlibobo.cs.mu.OZ.AU (1996-06-30) |
Re: is lex useful? WStreett@shell.monmouth.com (1996-06-30) |
Re: is lex useful? dmr@bell-labs.com (1996-06-30) |
Re: is lex useful? clark@quarry.zk3.dec.com (1996-07-01) |
Re: is lex useful? bromage@cs.mu.OZ.AU (1996-07-02) |
[3 later articles] |
From: | Robert.Corbett@Eng.Sun.COM (Robert Corbett) |
Newsgroups: | comp.compilers |
Date: | 30 Jun 1996 16:39:51 -0400 |
Organization: | Sun Microsystems Computer Corporation |
References: | 96-06-094 96-06-129 |
Keywords: | lex |
In article 96-06-129,
>[Yup, that's what I said. Fortran needs a multi-pass lexer to correctly
>recognize that REAL*4HELLO doesn't contain the string constant 'ELLO'. -John]
A poor example. A lexer can recognize this case in a single
left-to-right scan with one character lookahead. The sequence
letter+
*
digit+
at the start of a statement can be followed only by an identifier.
A better example is
DO10I = expr1, expr2
Since the length of expr1 is bounded only by the number of characters
allowed in a statement, either a multipass lexer or practically
unbounded lookahead are needed.
Because Fortran limits the maximum size of a statement, a lexer for
Fortran can analyze any Fortran statement in constant time.
Sincerely,
Bob Corbett
[Right, thanks for the correction. In the DO10I example, note that just
looking ahead for a comma isn't sufficient. You have to look for a comma
not enclosed in parens, which lex can't do, because REs can't count. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.