Thread overview | |||||
---|---|---|---|---|---|
|
August 14, 2005 Using keywords as elements of module names? | ||||
---|---|---|---|---|
| ||||
I've noticed that a number of the DStress files use the word "complex" as part of the module name. However, "complex" is also a keyword. My question: Is this intentional, to be able to use keyword in module names? Or is this a bug? My comment: It makes files harder to parse, at least with some types of parsers, to allow keywords there. I have a D parsing tool that uses lex as its lexer; basically, lex looks for all of the known keywords first. Then, any string that is not a keyword but looks like an identifier is taken as an identifier. The problem that I get here is that my parser expects a module declaration (and, similarly, an import statement) to be a string of identifiers separated by '.' tokens. But now I have to alter the parser so that it will also handle the "complex" keyword in any of those places....in fact, I have to alter it to be able to hand just about any D keyword. That makes the parser much harder to write. My request: Can we ban this? Russ |
August 14, 2005 Re: Using keywords as elements of module names? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Russ Lewis | On Sun, 14 Aug 2005 07:09:54 -0700, Russ Lewis wrote: > I've noticed that a number of the DStress files use the word "complex" as part of the module name. However, "complex" is also a keyword. "complex" is not a keyword in the DMD that I'm using. DMD v0.129 Windows. > My question: Is this intentional, to be able to use keyword in module names? Or is this a bug? Keywords in module names are forbidden in D. -- Derek Parnell Melbourne, Australia 15/08/2005 12:14:12 AM |
August 14, 2005 Re: Using keywords as elements of module names? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Russ Lewis | Russ Lewis wrote:
> I've noticed that a number of the DStress files use the word "complex" as part of the module name. However, "complex" is also a keyword.
>
> My question: Is this intentional, to be able to use keyword in module names? Or is this a bug?
>
> My comment: It makes files harder to parse, at least with some types of parsers, to allow keywords there. I have a D parsing tool that uses lex as its lexer; basically, lex looks for all of the known keywords first. Then, any string that is not a keyword but looks like an identifier is taken as an identifier. The problem that I get here is that my parser expects a module declaration (and, similarly, an import statement) to be a string of identifiers separated by '.' tokens. But now I have to alter the parser so that it will also handle the "complex" keyword in any of those places....in fact, I have to alter it to be able to hand just about any D keyword. That makes the parser much harder to write.
>
> My request: Can we ban this?
>
> Russ
I don't know exactly what tool you're building the parser for, but a workaround at least regarding type keywords would be to not treat them as keywords in the first place - I don't think there's anything in the syntax that actually requires them to be keywords (you can alias them anyway, so everything that works on those keywords must also work on generic identifiers)
xs0
|
Copyright © 1999-2021 by the D Language Foundation