[Python-ideas] parser in stdlib
Aaron Brady
castironpi at comcast.net
Fri May 11 01:23:50 CEST 2007
> -----Original Message-----
> From: Collin Winter [mailto:collinw at gmail.com]
> Sent: Thursday, May 10, 2007 6:08 PM
>
> On 5/10/07, Aaron Brady <castironpi at comcast.net> wrote:
> > > -----Original Message-----
> > > From: Collin Winter [mailto:collinw at gmail.com]
> > > Sent: Thursday, May 10, 2007 5:57 PM
> > >
> > > On 5/10/07, Aaron Brady <castironpi at comcast.net> wrote:
> > > > > -----Original Message-----
> > > > > From: python-ideas-bounces at python.org [mailto:python-ideas-
> > > > > bounces at python.org] On Behalf Of Adam Atlas
> > > > > Sent: Thursday, May 10, 2007 5:47 PM
> > > > >
> > > > > On 10 May 2007, at 18.39, Aaron Brady wrote:
> > > > > > There is, but I want access to it.
> > > > > >>>> import parser
> > > > > >>>> parser.__file__
> > > > > > Traceback (most recent call last):
> > > > > > File "<stdin>", line 1, in <module>
> > > > > > AttributeError: 'module' object has no attribute '__file__'
> > > > >
> > > > > That's because it's a builtin module, written in C. It's Python/
> > > > > parsermodule.c in the source distributions.
> > > > >
> > > > > What exactly are you suggesting should be possible? Are you trying
> to
> > > > > programmatically change the parser?
> > > >
> > > > Yes. The relevant code snippet:
> > > >
> > > > class Transformer:
> > > > <snip>
> > > > def parsesuite(self, text):
> > > > """Return a modified parse tree for the given suite text."""
> > > > return self.transform(parser.suite(text))
> > > >
> > > > Hence to allusion to Van Rossum's note, for the record.
> > >
> > > That is not and will not be possible using Python's built-in parser.
> > >
> > > Collin Winter
> >
> > I'm 25, FTR, heavy experience.
>
> I have no idea why that's relevant.
>
> > Why not? PEP or FAQ if there is one.
>
> Because programmable syntax isn't something we want in Python; you
> yourself quoted an email from Guido explaining why. If you like the
> idea of allowing every module to define its own syntactic constructs
> -- at runtime or otherwise -- Perl 6, Haskell and others are more than
> happy to help you.
>
> Collin Winter
Huge bag of worms, I see now. I was tinkering for hobby Python use. I
hadn't proposed a syntax change, not there yet. I was wanting to intercept
parser somewhere after it's started parsing source, but before it gets to
the rules. The particular change I'm tinkering with was replacing an equal
sign with a natural word.
1, 2 to a, c
-and-
to a, c 1, 2
map to:
a, c = 1, 2
Like I said, trivial, but I was hoping a small change to parser would work.
(It's not always unambiguous either.) But here's the idea.
More information about the Python-ideas
mailing list