digitalmars.D.learn - Using keywords as elements of module names?
- Russ Lewis (16/16) Aug 14 2005 I've noticed that a number of the DStress files use the word "complex"
- Derek Parnell (8/12) Aug 14 2005 Keywords in module names are forbidden in D.
- xs0 (8/28) Aug 14 2005 I don't know exactly what tool you're building the parser for, but a
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
Aug 14 2005
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
Aug 14 2005
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? RussI 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
Aug 14 2005