More on RB parser for Dolphin

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

More on RB parser for Dolphin

Chris Uppal-3
Reformatting AXControlSite>>supportedInterfaces reports a
SmalltalkCompilerError("Nonsense at end of method").  The same is true of
several other implementations of #supportedInterfaces.

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: More on RB parser for Dolphin

Blair McGlashan
"Chris Uppal" <[hidden email]> wrote in message
news:[hidden email]...
> Reformatting AXControlSite>>supportedInterfaces reports a
> SmalltalkCompilerError("Nonsense at end of method").  The same is true of
> several other implementations of #supportedInterfaces.

Unfortunately the RB parser does not parse more complex ##() expressions
correctly. #396 From the bugs DB:

"The RB parser does not parse literal arrays with embedded ##() constant
expressions correctly, e.g. #(##(IUnknown)). It treats the ##( as a separate
token, and then fails to recognise the $) after IUnknown as part of the
##( expression, i.e. it terminates the array on the first closing bracket,
and gives a 'nonsense at end of expression' error (for the trailing $)."

Even more unfortunately fixing this is non-trivial.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: More on RB parser for Dolphin

Chris Uppal-3
Blair,

> Even more unfortunately fixing this is non-trivial.

Hmm-yes, I see what you mean -- the literal array parser is implemented as
part of the scanner, not the parser.  Changing it means adding to the node
types in the parse tree, extending the visitor pattern, modifying all the
users of that pattern like the re-write rules and formatter...

Oo-err.

;-)

> Blair

    -- chris