Thanks for the pointers Lukas,
Works now!
>>canSuccesfullyParse: aSource in: aClass
[ parsedNode := RBParser parseMethod: aSource onError: [:descrip
:position| evaluation := false. errorDescription := descrip. errorPosition :=
position ] ] on: Error do:[:err| ].
parsedNode annotateInClass: aClass.
hasUndeclared := parsedNode allChildren select:[:each| each isVariable
and:[ each variableBinding isUndeclaredBinding ]] .
hasUndeclared ifTrue:[ self .... ].
On Jul 23, 2010, at 11:46 AM, Fernando olivero wrote:
> Lukas, thanks for the answer. I will see if AST-Semantics solves my problem.
>
> I also tried using the Compiler and the parser, and faking a notifier. But
> the Compiler>>interactive behavior is hard to override,
> it always gives me visual feedback ( pop menus and related dialogs). Maybe
> the newCompiler is more customizable?
>
> Fernando
>
>
> On Jul 23, 2010, at 7:34 AM, Lukas Renggli wrote:
>
>> You can use #parseMethod:onError: to check for syntactical errors.
>>
>> Semantical errors are harder to detect, some of them (e.g. undeclared
>> variables) you can find using AST-Semantics.
>>
>> Lukas
>>
>> On 23 July 2010 00:35, Fernando olivero <[email protected]> wrote:
>>> I have a question about validating a methodNode, suppose we have the
>>> following:
>>>
>>> parsedNode := RBParser parseMethod: 'test ^ self add: anUnbindedVariable'.
>>>
>>> Is there a way of checking the health/validity of the parsedNode?
>>>
>>> I couldn't find any behavior in RBMethodNode or related classes.
>>>
>>> Lukas, do you have an idea is i could run any Lint rule?
>>>
>>> My idea is to provide a method editor morph, that prevents from accepting
>>> invalid sources, and informs the user any problems detected with the edited
>>> code.
>>>
>>> Thanks,
>>> Fernando
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project