Related articles |
---|
[3 earlier articles] |
Re: specifying semantics, was Formatting of Language LRMs ivan@ootbcomp.com (Ivan Godard) (2014-06-28) |
Re: specifying semantics, was Formatting of Language LRMs gneuner2@comcast.net (George Neuner) (2014-06-29) |
Re: specifying semantics, was Formatting of Language LRMs ivan@ootbcomp.com (Ivan Godard) (2014-06-29) |
Re: specifying semantics, was Formatting of Language LRMs anton@mips.complang.tuwien.ac.at (2014-07-02) |
Re: specifying semantics, was Formatting of Language LRMs monnier@iro.umontreal.ca (Stefan Monnier) (2014-07-03) |
Re: specifying semantics, was Formatting of Language LRMs DrDiettrich1@aol.com (Hans-Peter Diettrich) (2014-07-04) |
Re: Parsing Fortran, was specifying semantics gah@ugcs.caltech.edu (glen herrmannsfeldt) (2014-07-04) |
Re: Parsing Fortran, was specifying semantics wclodius@earthlink.net (2014-07-04) |
From: | glen herrmannsfeldt <gah@ugcs.caltech.edu> |
Newsgroups: | comp.compilers |
Date: | Fri, 4 Jul 2014 17:53:31 +0000 (UTC) |
Organization: | Aioe.org NNTP Server |
References: | 14-06-010 14-06-023 14-06-025 14-06-027 14-06-030 14-06-031 14-07-003 14-07-006 14-07-011 |
Keywords: | Fortran, comment |
Posted-Date: | 04 Jul 2014 14:05:51 EDT |
X-Notice: | Filtered by postfilter v. 0.8.2 |
Hans-Peter Diettrich <DrDiettrich1@aol.com> wrote:
(snip)
> whitespace popped up, where whitespace sometimes is required to separate
> keywords from identifiers, sometimes is optional:
> Fortran: D O I = ...
> Pascal: if x ...
> C: int i ...
(snip)
> [You can scan Fortran with longest match, but the things you're
> matching for are very context dependent. I've done it. I agree that
> it's unlikely we'll find a general model for different languages. -John]
The two favorite ones that I always remember for Fortran are:
DO1I=1,2
and
DO 1 I=1.2
(and with no IMPLICIT NONE in effect, or with DO1I already declared).
To avoid these kinds of problems, WATFIV disallows "FORMAT(" as the
first seven characters of a statement that isn't a FORMAT statement.
Doesn't seem like it is overly restrictive, but when using variable
format, I always called my array (it had to be an array back then)
FORMAT.
-- glen
[To parse a Fortran statement you first have to decide whether it's an
assignment or something else, after which you can use a simple
contnext sensitive longest match to find the tokens. To see if it's
an assignment, you look for an = sign that is not followed by a comma
that is not inside parens, being sure to skip over 'literal' and
9hHollerith strings and noting that in typical dialects the statement
REAL*4HFOO does not contain a Hollerith string.. It wasn't as hard as
it sounds. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.