On 11/28/06, Ueli Kistler <[EMAIL PROTECTED]> wrote:
Hi,
Hi, Sorry for the long delay in answering you, but I was traveling and I'm
going through my pile of e-mails only now ;-)
short: we need some advice/help on the parser :)
This mail was posted to jython-dev as well.
Please reply if you have some answers to the following questions.
We're working on a Eclipse IDE Python Refactoring plug-in (open-source,
LTK based), see http://sifsstud2.hsr.ch.
Nice to hear about it... what's the license you're using? (Couldn't find it
in the homepage)
We're facing 2 main *challenges* using the jython parser (working on
PyDev's jython parser provided for Python 2.4/2.5 grammars):
1. BeginColumn provided are wrong sometimes (we really need correct
values here for correct indentation)
2. Visitor pattern is not applied for all nodes as expected (sometimes
nodes just get traversed.. unnoticed by the visitor)
.. less important:
3. Num-Node didn't provide enough information (fixed by providing
numType).
4. Comments may disappear
BeginColumn:
We would really appreciate some advise/help on this issue!
ClassDef/FunctionDef e.g. have correct beginColumn values... but e.g.
Assign-Nodes usually not.
Can someone check this behaviour and confirm ... give some advice how to
fix it or even provide a fix?
Visitor:
I wrote an AST rewriter visitor (AST -> source code, works quite well)
and noticed that *not* all AST nodes are "properly" handled by the
visitor pattern.
1. Is there any reason why some nodes shouldn't be noticed by the
visitor (accept(VisitorIF visitor) just traversing its "child" nodes,
not calling any visit...-method provided)
2. We would like to contribute our change proposals later ... is the
Jython/PyDev project working together? Where should be post change
proposals?
Pydev and Jython are not really working together on it... but I think that
the jython guys will take a look at the pydev parser when they do come to
version 2.4 / 2.5 of python... the main reason why it is not actually the
same is because I need much more info than the jython guys, so, overall, I'd
be adding much more complexity into the parser than the jython guys need
(like getting comments and correct begin columns for instance)
But on the other hand, the parser I have is pretty similar to the parser you
have (as I was aiming on doing pretty printing too), and I think that change
proposals could go into the pydev feature tracker... and patches are also
welcome).
Currently certain nodes are handled differently, but it would be helpful
if the visitor would work like expected.
Please visit
http://sifsstud2.hsr.ch/peptic/wiki/Rewriter#Nodeswithoutvisitorcallback
for a more detailed description.
Humm, for this one the solution I'd aim for is creating a new base visitor
that you can use in your classes (this is much, much easier than tweaking
the grammar). Although, currently, for the cases I have, I've settled to the
current design, as I usually don't have to say transverse an aliasType
without knowing the Import info anyway (and the other cases are pretty
similar to that I believe... mostly, in those cases it is kind of awkward
having the node by itself, so, you usually will have to keep the parent info
for those nodes anyway, so, it's just more work for the person writing the
visitor... but I can understand that you may want it conceptually different
from that).
Num:
see http://sifsstud2.hsr.ch/peptic/wiki/Parser
Seems you've already solved those ;-)
Comments:
see http://sifsstud2.hsr.ch/peptic/wiki/Parser
Not sure why you loose the comments, I'll have to take a look at it.
Cheers,
Fabio
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
pydev-code mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pydev-code