ID is the default token type to use if get() can't find the name in  
the dictionary.  In your case, it would be 'NAME'.

-Dave


On Oct 11, 2009, at 12:02 PM, matio wrote:

>
> "t.type = reserved.get(t.value,'ID')"
> what is the 'ID' bit?
> Thanks for the help
>
> On Oct 11, 2:11 pm, David Beazley <[email protected]> wrote:
>> On Oct 11, 2009, at 7:55 AM, Bruce Frederiksen wrote:
>>
>>> I'm going to go with specifying t_STRING after t_NAME, so that the
>>> word "string" is taken as a NAME.  Try putting t_STRING before
>>> t_NAME...
>>
>> [snip]
>>
>>> # Tokens
>>
>>> t_NAME    = r'[a-zA-Z_][a-zA-Z0-9_]*'
>>> t_STRING  = r'"[a-zA-Z0-9]*"'
>>> t_STRDEF  = 'string'
>>
>> I'm going to agree with this.  The t_STRDEF token is being matched by
>> the t_NAME rule above it which is almost certainly causing this
>> problem.   The original poster should look 
>> athttp://www.dabeaz.com/ply/ply.html#ply_nn6
>>   and note the part about "reserved words."
>>
>> This problem comes up so often, I'm almost wondering if I should add
>> an extra validation check to PLY.   It occurs to me that I could
>> modify lex to look for regexes that are made up of nothing but simple
>> characters (e.g., 'string' above) and then test them for matches
>> against the other regular expressions (e.g., t_NAME).  If a match is
>> found, some kind of stern warning message could be issued about it.
>>
>> As the documentation states, it's really a bad idea to make separate
>> token rules for reserved words like 'string', 'if', 'else', etc.
>>
>> Cheers,
>> Dave
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"ply-hack" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/ply-hack?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to