[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Revised LONGCHAR proposal



Michael van Acken wrote:
> This definition of "String"/"LongString" is a but problematic, because
> further down it is said, e.g., that "LONG(String)" is a legal
> expression.  It _is_ legal, as long as the argument is a string
> constant, but is is not legal if it is a variable of type array of
> CHAR.
> 
> Does anyone know if the O2 language report uses the term "string" with
> a different meaning than "string constant"?  I would prefer to reserve
> "string" for constants, not for ARRAY values (even if they happen to
> be terminated by a 0X).  But we must find a way to distinguish the
> different kinds of string constants, maybe string(CHAR) and
> string(LONGCHAR), with simple "string" referring to either of them?

You're right, of course.  I was confusing the Oberon-2 report and the
Component Pascal report, which defines `string type' and the `$'
operator.

Can we define a constant `string' as being one of `String' or
`LongString'?  My reasoning being that matches the corresponding
library module names.  If there is too much confusion between
`string' (meaning both String and LongString) and String (meaning
a string which contains only values in the CHAR range), then maybe we
could always say `constant string' when refering to both. 

`string(CHAR)' and `string(LONGCHAR)' could also work, if the
consenus is they are clearer.


I'll be sure to include the rest of Michael's remarks/clarifications
in the entry in the manual.

By the way, AFAIK, there weren't any volunteers to work on the rest
of the library changes...  Can anyone spare some time?


Thanks, 
Eric