Ok, it would be nice to avoid using the parser directly.
But we can change it in the future, for now we have a new version for
https://pharo.fogbugz.com/f/cases/10983/Represent-a-class-definition-with-AST-structure
in
inbox.

Thanks!


2013/11/8 Marcus Denker <[email protected]>

>
> On 07 Nov 2013, at 22:14, Gisela Decuzzi <[email protected]> wrote:
>
> > Hello, we were working on the issue 10983 plus smart suggestion,
> specially for a class definition.
> > In a moment I need to parse a class definition, I treat as the normal
> case:
> > root := OpalCompiler new
> >                               source: context code;
> >                               useFaultyForParsing: true;
> >                               parse.
> > And as a result we obtain a Method Node, browsing the code we saw that
> Opal can parse code as an expresion, but instead it is treating the code as
> method because of: "self compilationContext noPattern" is false, when we
> changed the boolean to true we obtain a return node for the class
> definition and everything got messy.
> >
> > Can someone help us to use Opal in the right way?
> >
>
> The problem is that #noPattern  is only used for compiling DoIts, and
> those are more than just an expression (return added, access to temps
> rewritten…).
>
> So for now, the best (yet ugly) thing is to just use RBParser directly,
> and we later have to think a bit about the API of the OpalCompiler facade,
> especially
> considering it is both a facade to just the parser *and* to the compiler,
> and e.g expression parsing is very different from parsing a doit, even
> though one
> would think they are the same.
>
> So for now, just use the RBParser directly, I would say (there are lots of
> direct users of it, we can only remove them in Pharo4 when we have just one
> AST).
>
>         Marcus
>
>
>

Reply via email to