In the last few weeks I added several features to mBas. While several things (actually just a few) are still missing and horrid bugs are likely to lay dormant in the code, just waiting to be awakened and unleashed on anybody daring to test the compiler, mBas is at a level of being almost useable (not bad as a mix of a disclaimer and an understament, huh? :-) )
Working Type declaration : ok Classes and Modules can be declared Classes can inherit from other classes or Interfaces Methods, Properties, Events, Fields work Methods support ByRef and Optional parameters Properties support parameters, accessors, etc. Constructors work and are correctly called Interfaces : ok Delegates : ok Attributes : ok Events : ok (only 1 of the 2 possible forms of event declaration, for now) Structures: ok Operators: math operators, concat operator (&), relational operators work Namespaces : ok Arrays: so-so (they basically work, but need a lot of fixes and tidying up) Local variables: ok (for now they cannot be declared in the middle of a block, but it's just a grammar thing) Try..Catch and Exceptions : ok AddHandler : ok Cast functions (CType, CStr, CBool, CInt, etc.) : ok Still Missing: All Date functions GetType Many string functions (Mid, Left, etc.) On Error Like operator Stop, End Option <whatever> For Each Code to automatically add implicit conversions between different types (with support from the runtime) Present but not working correctly: Exit (works like 'break' in C#; you can't specify 'Exit Do' or 'Exit For' even if the grammar does not complain about it) Moreover there are a few quirks in the grammar which need to be solved (e.g. calls like MySub(p)(0), where p is a parameter and MySub returns an array) Rafael added parsing for all the command-line options that were missing. We need to write code to enforce and use them. A couple of notes: If is something is listed under 'Working', it doesn't mean it's perfect: a lot (actually the most part) of mBas code is built directly upon mcs; this means that some assumptions we make cannot be verified until more severe tests are carried on. The problem is that VB.NET is not part of the ECMA specification, so we don't have even a semi-official test suite. Scode to be used as a test-bed and regression test is probably needed at this point. If something is missing from this list, it doesn't mean it hasn't been implemented, I'm likely to have forgotten to explicitly put it there (or maybe to put it in the grammar :-) ) All the best and happy coding Marco Ridoni [EMAIL PROTECTED] _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
