[mono-vb] Handles Clause

Rolf Bjarne rolfbasura at ya.com
Fri Nov 10 11:56:33 EST 2006


Hi,

These tests are also in now.
About the other test cases, please fix them and send an updated patch.
The error you show here is because an object in the parse tree is beeing  
resolved, but the object didn't override ResolveCode to actually resolve  
the object. There should be a line just before the exception showing the  
actual type (might be higher up in the output since the stacktrace is  
shown several times on an unhandled exception). You can also put a  
breakpoint in BaseObject.ResolveCode to find out which type is not  
implementing ResolveCode.

Thanks,
Rolf

On Sat, 28 Oct 2006 02:37:03 +0200, MrUnleaded <mrunleaded at gmail.com>  
wrote:

> here are some tests for the implements clause. They compile fine.
>
> On 10/27/06, MrUnleaded <mrunleaded at gmail.com> wrote:
>>
>> Ok that makes sense about the test cases, do you want me to make the
>> changes and give you the updated patch?
>>
>> I will look into the Implements clause.
>>
>> On resolve of a Handles clause I get stuck at a NotImplemented error:
>> Im not completedly clear on what happens during the resolve process.
>>
>>
>> Unhandled exception(System.NotImplementedException):
>>    at vbnc.Helper.NotImplemented(String message) in
>> C:\Projects\Mono\vbnc\vbnc\source\General\Helper.vb:line 1969
>>    at vbnc.BaseObject.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\General\BaseObject.vb:line 255
>>    at vbnc.Helper.ResolveCodeCollection(IEnumerable Collection,
>> ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\General\Helper.vb:line 1797
>>    at vbnc.BaseList`1.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\Members\BaseList~1.vb:line 31
>>    at vbnc.HandlesClause.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\Members\HandlesClause.vb:line 45
>>    at vbnc.HandlesOrImplements.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\Members\HandlesOrImplements.vb:line 90
>>    at vbnc.SubDeclaration.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\Members\SubDeclaration.vb:line 120
>>    at vbnc.Helper.ResolveCodeCollection(IEnumerable Collection,
>> ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\General\Helper.vb:line 1797
>>    at vbnc.BaseObjects`1.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\General\BaseObjects`1.vb:line 65
>>    at vbnc.TypeDeclaration.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\TypeDeclarations\TypeDeclaration.vb:line
>> 406
>>    at vbnc.ClassDeclaration.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\TypeDeclarations\ClassDeclaration.vb:line
>> 108
>>    at vbnc.AssemblyDeclaration.ResolveCode(ResolveInfo Info) in
>> C:\Projects\Mono\vbnc\vbnc\source\TypeDeclarations\AssemblyDeclaration.vb:line
>> 198
>>    at vbnc.Compiler.Compile_Resolve() in
>> C:\Projects\Mono\vbnc\vbnc\source\General\Compiler.vb:line 389
>>    at vbnc.Compiler.Compile() in
>> C:\Projects\Mono\vbnc\vbnc\source\General\Compiler.vb:line 506
>> InnerException: (Nothing)
>>
>>
>>
>> On 10/27/06, Rolf Bjarne Kvinge <rolflists at ya.com> wrote:
>> >
>> > Hi,
>> >
>> > You're right about the grammar, I just checked it and the official VB
>> > specification is wrong, so in addition to changing this it should be
>> > stated in the code that it does not correspond to the grammar because
>> > the
>> > grammar is wrong (I use 'LAMESPEC' and an explaination normally).
>> >
>> > Your code seems fine as well, the only thing is that I have been  
>> trying
>> > to
>> > name the test classes like the file (this is due to a wish that one  
>> day
>> > I
>> > might want to try to compile all the vb code in a directory together,
>> > and
>> > it won't fail because I have many classes with the same name. The test
>> > will also self-describe itself better) - and if there are many classes
>> > in
>> > the same test file either create a containing namespace or prefix the
>> > class names with the name of the file.
>> >
>> > Regarding getting through the resolve phase I think it's not fully
>> > implemented (you don't say which error you get), and you might want to
>> > look into the code for the Implements clause, which should be very
>> > similar.
>> >
>> > Thanks again,
>> > Rolf
>> >
>> > On Fri, 27 Oct 2006 01:34:34 -0400, MrUnleaded <mrunleaded at gmail.com >
>> > wrote:
>> >
>> > > OK I got another one though I am not sure if this one is perfect so
>> > > check it
>> > > out.
>> > >
>> > >
>> > > There are a couple tests which currently fail to parse.
>> > >
>> > > I got them all past Parsing, but they fail on Resolve. I am not too
>> > sure
>> > > where to go on the Resolving and beyond that...
>> > >
>> > > Also, I believe, though I am not sure,
>> > that  EventMemberSpecifier  should
>> > > be:
>> > >
>> > > ::=  Identifier  "."  IdentifierOrKeyword  |  MyBase  "."
>> > > IdentifierOrKeyword  |   Me  "."  IdentifierOrKeyword
>> > >
>> > > instead of:
>> > >
>> > > ::=  QualifiedIdentifier  "."  IdentifierOrKeyword  |  MyBase  "."
>> > > IdentifierOrKeyword  |   Me  "."  IdentifierOrKeyword
>> > >
>> > >
>> > >
>> > > For one reason... ParseQualifiedIdentifier will eat up all  
>> identifiers
>> > > and
>> > > KS.Dot so it wont leave an Identifier or Keyword to finish the
>> > > EventMemberSpecifier
>> > >
>> > > If nothing else, at least the test cases should be valid ones.
>> > >
>> >
>> >
>> >
>> > --
>> > Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>> >
>>
>>
>>
>> --
>> Kevin
>
>
>
>



-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/


More information about the Mono-vb mailing list