Klaas-Jan Stol wrote:

So, preferably, the special words in PIR will be allowed as identifiers
('if','unless', 'null') and PIR will DWIM. What about the type identifiers:
int, num, pmc, string; should these be allowed as identifiers? The currently
special PIR words such as if, unless, null are ops, and as opnames are
allowed as identifiers, allowing 'if', 'unless' and 'null' makes sense. The
type names on the other hand, are not related to PASM code, so I'd vote to
have them as 'reserved' words; but I'd just like to check now.

AFAIK, you can never use a variable in any position where you can use a type name. So, you can't declare a variable named 'foo' and then use it as a type:

    .local string foo
  * .local foo thingy # (* not valid syntax)

And also, you can't use a type name as a variable, if you haven't actually declared a variable of that name:

  * pmc = "hello" # (* not valid syntax)

So, there's no reason this couldn't be valid syntax, because there's no ambiguity:

    .local pmc pmc
    pmc = new "String"
    pmc = "hello"

(maybe the
general feeling is that there must be no reserved words in PIR...)

Not "no reserved words" just "the smallest set of reserved words possible", which means not reserving words we don't need to reserve.

I'm not clear on why we need to reserve 'if', 'unless' and 'null' either, since they never appear in locations that could be confused with variables.

Allison

Reply via email to