[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
more.
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
assemblies
- Parameter passing between Sub's. ByVal and ByRef parameters are being worked
on.
- 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
implement.
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
marco.ridoni@virgilio.it