need some guidance on Python syntax smart editor for use with speech recognition

Eric S. Johansson esj at harvee.org
Mon Jan 5 13:18:45 EST 2015


On 1/5/2015 7:24 AM, Chris Angelico wrote:
> On Mon, Jan 5, 2015 at 8:34 PM, Jonas Wielicki <jonas at wielicki.name> wrote:
>> As a first iteration, I would try with any editor written in Python.
>> Are you familiar with the ast[1] module? It could be worth trying to
>> use this module and perform some kind of pattern matching on the
>> results to recover the information.
> An AST parse throws away a lot of information. You can't easily
> reconstruct the original code from that; at best, you can decompile
> the AST back into functionally-equivalent source code, but it's not
> something you want to do as part of editing code.

Chris is right. I looked at this and came up with the same conclusion. 
Here's a use case that I haven't talked about yet but is part of the 
problem of speech driven programming. I have a chunk of code that I 
created that is exactly right but it's in the wrong place or wrong 
method or even just the wrong environment. I need to capture it and then 
move it to the right place.

At first glance, this would look like a simple cut-and-paste and, 
sometimes it is but more often it's not. Let's take the example of a 
simple file generator. Opening the file, iterating over the input until 
the input data transformation process runs out of data.

This is a real common pattern and what changes are certain elements of 
the code, variables, strings whatever but also the indentation. So 
putting the old chunk of code into the new place requires transformation 
that most of you guys do by hand without thinking twice. Me it's, 
#()@!&#$, and I use a whole bunch of kill words to strip out the old 
data and put in the new.

Imagine being able to rip out a piece of code, identify the substitution 
points and the indentation adjustment levels and then being able to put 
in that piece of code in other places and just fill in the blanks as a 
part of the insertion dialogue.  Now this gets us to the same point I 
was first talking about which is the ability to identify the idiom and 
code to operate on it as an idiom. some of the stuff I've seen with 
snippets is partly there, again it is a one-way transform.

It seems to me that those of us with hands and those of us with broken 
hands could use this same functionality given the right supportive user 
interface.

Now I've been living with this kind of idea for a while and I realize 
that may not make sense in this abstract written description. What do I 
need to fill in?

> However, back when I was doing my PEP 463 research, someone suggested
> looking into the 2to3 parser. I regretfully admit that I have yet to
> actually do so, but it ought in theory allow source-level
> transformations with a measure of intelligence. It's not a ready-made
> solution by any means, but it could be a useful tool. [2]

Good idea.
>> Hope this helps. I find that topic pretty interesting. Is there
>> anything I can follow to see progress on this?
> Likewise!
>
> ChrisA

Is there any problem with keeping the conversation going here or would 
you prefer some other way of talking about it? I've been hesitant to put 
my work up on github because it's flailing about with also the bloody 
loose ends because I'm trying to solve up number of problems all at the 
same time.   The problem first being a framework where I can add speech 
driven UI elements to an editor so I can start experimenting with a 
bunch of these pieces.

Another way you can help is be my hands. sometimes I just run out of 
hand time and it takes a while for me build up enough energy so I can 
spend the day working for money and a day working on this.

--- eric




More information about the Python-list mailing list