Improving how the javascript importer assigns lines to nodes has a high 
priority.  Javascript is arguably the most important computer language in 
the world.

We both want the js importer to do as well as possible, especially with all 
common idioms, whatever they are ;-)

Suppose Vitalije devise a truly excellent js parser that knows (somehow!) 
how to split a js file into lines. Imo, we can prove the following theorem:

    js_i.gen_lines and its helpers can implement any stand-alone parse of 
javascript.

At present, the guts of the js importer is just js_i.starts_block, a helper 
of the i.gen_lines in the *base *Importer class in 
importers/linescanner.py. The theorem implies that the js importer might 
have to override i.gen_lines, creating js_i.gen_lines and who knows what 
helpers.

The theorem is important because the base Importer class provides a lot of 
services. In particular, it handles tokenizing javascript. Tokenizing is 
fraught because recognizing regex expressions depends on context. A 
*prototype* js parser could ignore such things, 

*Summary*

Here is my proposed strategy:

1. Verify that a new parser does substantially better than the present 
code.  I trust that Vitalije can do this.

2. Do whatever is necessary to recast the algorithm in terms of the 
existing Importer organization. I'll know what this entails only when I see 
the new parser algorithm and its code.

Edward

P. S. A *strict parser* never split incoming lines into two (or more?) 
lines. A* lenient parser* may split incoming lines.  A strict parser will 
"just work" with Leo's existing Importer base class.  A lenient parser 
would probably require tweaks to the prefect import tests, but this is not 
a deal breaker.

Vitalije, are you thinking of a strict or lenient parser?

EKR

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to