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 <oliverof@lu.unisi.ch> 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Lukas Renggli www.lukas-renggli.ch
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project