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

Reply via email to