forked from mono/mono
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmbas
57 lines (42 loc) · 2.16 KB
/
mbas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
* mbas: Mono's VisualBasic.NET Compiler.
MonoBASIC (mbas) is a CIL compiler for the VisualBasic.NET language,
an extended version of Visual Basic. It's based on the MCS compiler
and still in heavy development, though many language features are
already supported. See mcs/mbas/
** What works
<ul>
* Classes, Fields and Methods. Properties are still
being worked on.
* Module definition and Sub/Function functionality
* 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.
</ul>
A lot of this stuff is implemented rebuilding proper expressions and
statements on top of the classes based on those of mcs (look at the grammar -
mb-parser.jay - and compare it with cs-parser.jay, if interested), but some
are getting deeply changed, to better conform to VB.NET semantics.
** TODO-list
At this stage almost every element of the language must be still checked for
conformance to MS' implementation.
We'd like to implement 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.
Also work on the supporting library (we don't currently depend on it as much
as MS vbc-compiled programs, but especially for late-binding scenarios we will)
is surely needed: it's in mcs/class/Microsoft.VisualBasic/