Thanks, that makes sense, not sure how i missed that in the docs.  Now
I just need to figure out the multiline/if statements.

On Oct 9, 2:12 am, "D.Hendriks (Dennis)" <[EMAIL PROTECTED]> wrote:
> Hello Alex,
>
> both the t_AND and the t_NAME rule match the string 'and' (without the
> quotes). Since t_AND was previously a string, and t_NAME a function,
> t_NAME took precedence (seehttp://www.dabeaz.com/ply/ply.html, section
> 3.3). You now changed them to both be functions. Then the t_AND takes
> precedence (it is first in the file). Anyway, the same section 3.3
> explains you should not use rules for and/or etc, but include them in
> the identifier rule (t_NAME in your case).
>
> You could probably have seen this, if you would have called the
> parse(...) function with debug=2 parameter. This outputs debugging
> information during parsing. It shows the tokens scanned, parser state,
> etc. You would have seen that it scans a NAME tokens instead of an AND
> token...
>
> Good luck,
> Dennis
>
> Alex_Gaynor wrote:
> >I was able to fix the 'and' 'or' 'not' issue by turning their
> >definitions into functions, instead of just strings, not sure why that
> >fixed it :/
>
> >On Oct 7, 7:54 pm, Alex_Gaynor <[EMAIL PROTECTED]> wrote:
>
> >>I was able to succesfully implement True and False by making them
> >>tokens(I do want them to be reserved ala py3k), so thanks for the help
> >>with that!  I am also looking over the things on indentation, although
> >>I suspect that will be something that goes in later.  Right now I am
> >>having some issue implementing 'and' 'or' and 'not'.  Right now I have
> >>them implemented the same way I do other unary and binary operators
> >>which I suspect isn't working.  Right now whenever I try True or
> >>False, or not True, or True and False I get a syntax error, and I'm
> >>not sure what causes this.  All my code is 
> >>here:http://github.com/alex/alex-s-language/tree/master
>
> >>On Oct 7, 6:59 pm, Bruce Frederiksen <[EMAIL PROTECTED]> wrote:
>
> >>>If you make True/False tokens, that generally means that they are
> >>>reserved words in your language.  That means that nobody can use them
> >>>for other purposes.
>
> >>>If you want to let people use the words "True" and "False" for other
> >>>purposes, then you probably don't want them to be tokens.  In this case,
> >>>you will probably end up doing a lookup at runtime, which might find
> >>>some other value.
>
> >>>In python 2.5, for example, you can use True and False for other purposes:
>
> >>>def False(): print "hi mom!"
>
> >>>is OK.  But this becomes illegal in python 3.0.
>
> >>>I've attached a scanner the does indenting ala python (i.e., the
> >>>programmer can indent any amount so long as they line up).
>
> >>>-bruce
>
> >>>Alex_Gaynor wrote:
>
> >>>>I'm looking to implement a boolean type in my language, where exactly
> >>>>should I do this?  Should I make True and False both be tokens, and
> >>>>just set t.value = True/False.  Or should the parser handle them?
>
> >>>>Also, how would I go about implementing a language that uses indent/
> >>>>dedent for blocks(ala python)?
>
> >>>>Alex
>
> >>> scanner.py
> >>>19KViewDownload
--~--~---------~--~----~------------~-------~--~----~
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