[Mono-list] MonoBasic patches in CVS

Marco Ridoni marco.ridoni@virgilio.it
Wed, 11 Dec 2002 20:00:16 +0100

Hi everybody
Today I committed my latest patches to MonoBasic (in short: mBas). Currently 
we have  a compiler which can generate valid code for a few statements and 
can (almost?) correctly parse classes, modules, etc. My work is heavily (and 
I mean HEAVILY) based on the work done by Rafael.

Here follows a list of what is working and a TODO-list. Please note that all 
the 'working' features have been tested with rather simple tests and deserve 
some stress-treatment. I also uploaded a few of these tests, some of which 
require a working SWF implementation. I hope that the Gtk# people can supply 

What's working (sort of)
- Classes, Fields and Methods. Properties are still being worked on
- Module definition and Sub functionality (TODO: Function's)
- Namespace Import, so can you reference, instantiate and call external 
- Parameter passing between Sub's. ByVal and ByRef parameters are being worked 
- Delegates
- Object creation
- Events - to a limited extent. You can declare a Class-Field as 'WithEvents' 
and dynamic events (i.e AddHandler MyButton.Click, Button1_OnClick). Please 
beware: just after committing the code, I discovered that the handler field 
in the AddHandler call is case-sensitive, a remnant of mBas' mcs heritage)
- Statements supported are 'If..Then..Else' , 'While..End While' and 
assignment statements. Simple operators (+, -, *, /, >, <, =) should also 
work. Other statements (For..Next, etc.) should be quite trivial to 

A lot of this stuff is implemented rebuilding proper expressions and 
statements on top of the classes provided by mcs (look at the grammar - 
mb-parser.jay - and compare it with cs-parser.jay, if interested).

My TODO-list
At this stage almost every element of the language must be still checked for 
conformance to MS'implementation. Help is particularly needed for those areas 
I know little of (mcs internals are still quite obscure to me). I'd like to 
implement class properties, the missing statements, exception handling, 
structures and actual event support (not necessarily in this order). Once we 
have all this stuff set up and reasonably bug-free, more work could be done 
on helper functions and Object-vars handling. 

All the best and happy coding

Marco Ridoni