On Tuesday 18 September 2007 00:32, Nick Alexander wrote:
> > Robert, Since you do so much work on Cython, maybe you could think
> > about the formal specification of the Python language and see whether
> >      ..
> > not appearing in a string is ever valid Python.  I.e., could we add
> >      [expr1 .. expr2]
> > to the language without running into problems?
>
> Much like generators (K.<x>), this cannot be added to the preparser  
> without parsing arbitary python expressions (expr1 and expr2 in this  
> case).  At the moment, you can make the preparser barf and it would  
> be a great deal of work to fix.  Are we willing to do another  
> "correct 90% of the time" hack?  If this is considered very valuable,  
> I suggest we hijack a Python binary operator and repurpose it.  Or we  
> could uniformly preparse '..' to be that redefined operator; that  
> would be better.

I don't have a strong opinion about the original proposition ... although I 
have spent the last week being thoroughly vexed by python being zero-based 
when all the things I would write on paper about math would index things 
one-based.

However, I did want to say this about the preparser.  My impression is that it 
is written by doing very manual character/string reading.  I think 
the 'tokenize' module could probably make the code much much cleaner.  It has 
annoying (but understandable) semantics.  Here's an example below.

--
Joel

import tokenize

# helper class to generate a stream from a string
class line_token_stream:
    def __init__( self, s ):
        self.line = s

    def __call__( self ):
        if self.line:
            s = self.line
            self.line = None
            return s
        raise StopIteration

def tokenize_line( s ):
    for t in  tokenize.generate_tokens( line_token_stream( s ) ):
        yield t

for i in tokenize_line( "func(1+2)" ):
    print i

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to