[e-lang] AST view of E program
"Marcelo D. Ré"
marcelo.re at gmail.com
Wed Oct 8 07:58:25 CDT 2008
Kevin Reid escribió:
> On Sep 29, 2008, at 7:49, Marcelo D. Ré wrote:
>
>
>> I am working in a module to support E in NetBeans. Currently it
>> sopport code highlight, braces completion, run e from the ide, and are
>> developping the syntax check.
>> The question is: how to grab an AST from an E file? is it posible?
>>
>
> def makeEParser := <import:org.erights.e.elang.syntax.makeEParser>
>
> makeEParser.run(theFile.getTwine())
>
> The result of this is an AST of type ENode.
>
> All of this can be accessed from Java too.
>
> There is one caveat: in E-on-Java, there is no reified AST for un-
> expanded E syntax, only for Kernel-E. This may be sufficient,
> particularly as, provided that the source is a Twine (not a String),
> every ENode carries the line and column number of the source text
> corresponding to it (getOptSpan).
>
>
> If it isn't, you can supply your own EBuilder (or is it ENodeBuilder?
> One's a class and the other's an interface) to EParser and get
> messages corresponding to the full syntax.
>
> Another option is to use the grammar from E-on-CL, which is actually
> written in Java (generated by ANTLR), which provides an unexpanded AST.
>
>
>> I have problem parsing the line
>>
>> match [] { println(uri) }
>>
>> in the counter-example.e.
>>
>> I don't find a clause that parse the "println" statement.
>>
>
>
> This is an ordinary function call. The Kernel-E AST for this is
>
> EMatcher
> ListPattern
> (no children)
> CallExpr
> NounExpr
> "println"
> "run"
> NounExpr
> "uri"
>
> The unexpanded AST for this in E-on-CL is
>
> EMatcher
> ListPattern
> (no children)
> FunCallExpr
> NounExpr
> "println"
> NounExpr
> "uri"
>
>
Hi
I have problem to print the AST. I couldn't find the way to do this.
Where is the class or method makeEParse? I didn't find it in the JavaDoc
(http://www.erights.org/javadoc/index.html) son I could modify the
program to print the AST.
I try diferent ways but could not get it work. Could somebody help
me? I need a program that print the on console AST view of a source.
I have most of the syntax check working in my plugin but currently
have a problem parsing the expresion:
def x4k3 := (x10 * 4).keep(3)
of the diceIt.e
Thank
Marcelo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.eros-os.org/pipermail/e-lang/attachments/20081008/4fa06a40/attachment.html
More information about the e-lang
mailing list