When I awoke this morning I knew it was time to start work again on the
code generator. Sitting in meditation would have no chance of being helpful.
But as I was making coffee I realized that a table of the expected results
is the long-sought missing piece of the puzzle. I wasn't sure what form
that table would take. Happily, a few minutes of experimentation showed
that a slight modification of the MORE representation of an outline would
likely do the trick.
As usual, lines starting with '-' denote nodes, with the indentation of
those lines denoting outline level. All other lines denote the *unindented*
body text. But headlines must also denote the type of expected node. For
example: org:Declarations denotes a node whose headline is "Declarations"
and whose vnode_info "kind" is "org". At present, the valid types are
outer, org, class, def. I might add 'method'.
The line "# Expect:" separates the input lines from the MORE representation
of the output nodes.
Here are the first three cases I created. They are just Leo nodes:
*Node 1: *(headline: docstring, vars, body follows):
"""A docstring"""
switch = 1
# Expect:
- outer:root
@others
- org:Declarations
"""A docstring"""
switch = 1
*Node 2*: docstring, vars, outer def
"""A docstring"""
switch = 1
def d1:
pass
# Expect:
- outer:root
- org:Declarations
"""A docstring"""
switch = 1
- def:function: d1
def d1:
pass
*Node 3*: docstring, vars, class
"""A docstring"""
switch = 1
class Class1:
def method1(self):
pass
# Expect:
- outer:root
- Declarations
"""A docstring"""
switch = 1
- class:class Class1
class Class1:
@others
- def: method1:
def method1(self):
pass
I think you get the idea. I expect to create dozens of such nodes.
Now, for the first time, there is an *organizable* table (a Leo outline) of
cases. Clearly, this table corresponds to unit tests. Even better, a
simple Leo script could create the corresponding unit tests!
I think this qualifies as a conceptual and operational breakthrough.
Edward
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/leo-editor/0e43de59-fdba-4c30-a6d6-86e8fd304805n%40googlegroups.com.