Is there a function to check whether some string is a legal identifier?
Saaa wrote:
Is there a function to check whether some string is a legal identifier?
Sure.
static if(is(typeof({ /* code to be checked for validity goes here */ }))) ...
Saaa wrote:
Is there a function to check whether some string is a legal identifier?
Sure.
static if(is(typeof({ /* code to be checked for validity goes here */ })))
...
That is a compile time check, right?
I meant a runtime check.
How does that piece of code work anyways :D
static if = compile time if
is = comparison between two non value things?
typeof = returns the type
I know use this (in the ddata thread above):
foreach(char c; identifier)
{
if( !inPattern( c, `_a-zA-Z0-9`) )
{
return false;
}
}
Saaa wrote:
...
I know use this (in the ddata thread above):
foreach(char c; identifier)
{
if( !inPattern( c, `_a-zA-Z0-9`) )
{
return false;
}
}
That's not correct. http://digitalmars.com/d/1.0/lex.html#identifier
I know use this (in the ddata thread above):
foreach(char c; identifier)
{
if( !inPattern( c, `_a-zA-Z0-9`) )
{
return false;
}
}
That's not correct. http://digitalmars.com/d/1.0/lex.html#identifier
It isn't extremely important as it is just a data format, but I would like
to be as D as possible.
Hello Saaa,
static if(is(typeof({ /* code to be checked for validity goes here */
}))) ...
that checks to see if the {...} is a valid delegate literal by using is()
to see if semantic checks fail.
Hello Saaa,
static if(is(typeof({ /* code to be checked for validity goes here */
}))) ...
that checks to see if the {...} is a valid delegate literal by using is()
to see if semantic checks fail.
Saaa wrote:
Hello Saaa,
static if(is(typeof({ /* code to be checked for validity goes here */
}))) ...
that checks to see if the {...} is a valid delegate literal by using is()
to see if semantic checks fail.
You have to write it yourself. Here's a good starting point:
http://www.digitalmars.com/d/1.0/lex.html#identifier
You have to write it yourself. Here's a good starting point:
http://www.digitalmars.com/d/1.0/lex.html#identifier
Yes, that was my starting point and it seemed quite complex, thus my
question :)
I think I'll stay with my simple check for now as it isn't really necessary
to be as strict as D's identifiers.
Just thought that if there was an easy check I'd implement that.
Thanks anyways everybody.
Hello Saaa,
You have to write it yourself. Here's a good starting point:
http://www.digitalmars.com/d/1.0/lex.html#identifier
question :)
I think I'll stay with my simple check for now as it isn't really
necessary
to be as strict as D's identifiers.
Just thought that if there was an easy check I'd implement that.
Thanks anyways everybody.
if you are only working with ASCII: use the regex `_A-Za-z[_A-Za-z0-9]*`
if you are only working with ASCII: use the regex `_A-Za-z[_A-Za-z0-9]*`
Is that better than the inPattern way?
Hello Saaa,
if you are only working with ASCII: use the regex
`_A-Za-z[_A-Za-z0-9]*`
yes, it correctly rejects numbers at the start and should be faster as well.
Hello Saaa,
if you are only working with ASCII: use the regex
`_A-Za-z[_A-Za-z0-9]*`
yes, it correctly rejects numbers at the start and should be faster as
well.
Of course, should have looked longer at the regex line, thanks!
BCS wrote:
Hello Saaa,
You have to write it yourself. Here's a good starting point:
http://www.digitalmars.com/d/1.0/lex.html#identifier
question :)
I think I'll stay with my simple check for now as it isn't really
necessary
to be as strict as D's identifiers.
Just thought that if there was an easy check I'd implement that.
Thanks anyways everybody.
if you are only working with ASCII: use the regex `_A-Za-z[_A-Za-z0-9]*`
Isn't there an isUniAlpha function in both Phoboses and in Tango?
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
BCS wrote:
Hello Saaa,
=20
You have to write it yourself. Here's a good starting point:
http://www.digitalmars.com/d/1.0/lex.html#identifier
question :)
I think I'll stay with my simple check for now as it isn't really
necessary
to be as strict as D's identifiers.
Just thought that if there was an easy check I'd implement that.
Thanks anyways everybody.
if you are only working with ASCII: use the regex `_A-Za-z[_A-Za-z0-9]*=
=20
Jerome
--=20
mailto:jeberger free.fr
http://jeberger.free.fr
Jabber: jeberger jabber.fr
Reply to Jérôme,
BCS wrote:
Hello Saaa,
You have to write it yourself. Here's a good starting point:
http://www.digitalmars.com/d/1.0/lex.html#identifier
question :)
I think I'll stay with my simple check for now as it isn't really
necessary
to be as strict as D's identifiers.
Just thought that if there was an easy check I'd implement that.
Thanks anyways everybody.
`_A-Za-z[_A-Za-z0-9]*`
Jerome
Oops :(