Const conflict._(re)

Sat, 26 Apr 1997 15:58:17 +0200 (MET DST)


According to Jukka Virtanen:
> 
>       [Making the parser more clever ...]
> 
> 	Then it remains the problem how to interpret the following:
> 
> 		foo_problem : false .. true = false;
> 
> 	Because that can be interpreted either as an initialized
> 	or uninitialized subrange.

If I were a Pascal compiler, I would read this as an initialized
variable.

OTOH, a true Extended Pascal compiler *must* read this as a subrange.

I think it is save to exclude comparisions with `=' from the expressions
valid for the upper bound.  The reason for allowing expressions here is to
have things like `+', `*', parentheses, etc. in the upper bound; subranges
of the Boolean type are exotic enougth that we can immolate them.

(Hmm ... somebody might need something like

    Var Foo: 1 .. 4 + ord ( bar = 3 ) + MyFunc ( A = B );

so I will switch on the `=' again in parentheses and such.)

> 	Extended pascal does require that both bounds of
> 	a subrange can be arbitrary expressions. In GPC (as far
> 	as I recall) only the lower bound can be an expression,
> 	the upper bound needs to be constant, [...]

Vice versa.

> 	Anyone who really knows how to hack parsers interested
> 	in this one?

I join Juki in asking this question.  I think I can fool GPC not to
recognize the `=' in upper bound expressions (unless, of course,
`--extended-pascal' is on), but I have no idea what to do with the
lower bound.

    Peter

  Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
 maintainer GNU Pascal [970420] - http://home.pages.de/~gnu-pascal/ [970125]


Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es