More updates
[mono.git] / doc / mbas
1 * mbas: Mono's Basic.NET Compiler.\r
2 \r
3         MBAS is a CIL compiler for the Visual Basic language, an extended \r
4         version of VisualBasic.NET. It's based on the MCS compiler\r
5         and still in heavy development, though many language features are\r
6         already supported.\r
7 \r
8 ** What works\r
9 \r
10         <ul>\r
11 \r
12                 * Classes, Fields and Methods. Properties are still\r
13                   being worked on.\r
14 \r
15                 * Module definition and Sub functionality (TODO: Function's)\r
16 \r
17                 * Namespace Import, so can you reference, instantiate\r
18                   and call external assemblies\r
19 \r
20                 * Parameter passing between Sub's. ByVal and ByRef\r
21                   parameters are being worked on.\r
22 \r
23                 * Delegates\r
24 \r
25                 * Object creation\r
26 \r
27                 * Events - to a limited extent. You can declare a\r
28                   Class-Field as 'WithEvents' and dynamic events (i.e\r
29                   AddHandler MyButton.Click, Button1_OnClick).  Please\r
30                   beware: just after committing the code, I discovered\r
31                   that the handler field in the AddHandler call is\r
32                   case-sensitive, a remnant of mBas' mcs heritage)\r
33 \r
34                 * Statements supported are 'If..Then..Else' ,\r
35                   'While..End While' and assignment statements. Simple\r
36                   operators (+, -, *, /, >, <, =) should also\r
37                   work. Other statements (For..Next, etc.) should be\r
38                   quite trivial to implement.\r
39         </ul>\r
40         \r
41         A lot of this stuff is implemented rebuilding proper expressions and \r
42         statements on top of the classes provided by mcs (look at the grammar - \r
43         mb-parser.jay - and compare it with cs-parser.jay, if interested).\r
44         \r
45 ** TODO-list\r
46 \r
47         At this stage almost every element of the language must be still checked for \r
48         conformance to MS'implementation.  Help is particularly needed for those areas \r
49         I know little of (mcs internals are still quite obscure to me). I'd like to \r
50         implement class properties, the missing statements, exception handling, \r
51         structures and actual event support (not necessarily in this order). Once we \r
52         have all this stuff set up and reasonably bug-free, more work could be done \r
53         on helper functions and Object-vars handling. \r
54 \r