Start
[mono.git] / mcs / mbas / testmbas / WriteOK.vb
1 Option Explicit
2 Option Strict Off
3 Option Compare Text
4
5 Imports System, IO = System.Console
6 Imports Microsoft.VisualBasic.Information
7
8 Module WriteOK
9
10     Sub Main()
11                 Dim nodim as integer ' comment out to test explicit
12                 
13                 Dim octalLit as integer = &O177 
14                 Dim hexLit as long = &h1F34A6BFL
15                 
16                 dim singleLit as single = -1.1F
17                 dim doubleLit as double = 8e-3
18                 dim decimalLit as decimal = 1.1234567890123456789012D
19                 
20                 dim charLit as char = "?"c
21                 
22                 dim dateLit as date = #10/23/2003#
23                 
24         REM Testing old-fashioned comments
25         Console.WriteLine("OK!") ' Simple comments
26                 WriteOK2.[Sub]()
27                 IO.WriteLine("OK! ""via"" aliased name") ' from alias
28                 Console.WriteLine(Microsoft.VisualBasic.Strings.Right("123",1))
29                 nodim = 1 ' test for explicit
30         Console.WriteLine("nodim {0}" + _
31                         Constants.vbCRLF + "octalLit {1}" + _
32                         Constants.vbCRLF + "hexLit {2}" + _
33                         Constants.vbCRLF + "singleLit {3}" + _ 
34                         Constants.vbCRLF + "doubleLit {4}" + _ 
35                         Constants.vbCRLF + "decimalLit {5}" +  _ 
36                         Constants.vbCRLF + "charLit {6}" +  _ 
37                         Constants.vbCRLF + "dateLit {7}", _ 
38                         nodim, octalLit, hexLit, singleLit, doubleLit, decimalLit, charLit, dateLit)
39                 Console.WriteLine(123.ToString("g"))
40                 WriteOK5.ModuleSub("Qualified") 
41                 ModuleSub("Unqualified") 
42                 
43                 Another.WriteOK6.ModuleSub("Qualified") 
44                 ' Another.ModuleSub("SemiQualified") ' FIXME
45                 Another.Indirector.WriteIt()
46
47
48                 Console.WriteLine(Strings.ChrW(64))
49
50                 Console.Write("Positive cases for IsNumeric: ")
51         if (IsNumeric(octalLit) And IsNumeric(hexLit) And IsNumeric(singleLit) And IsNumeric(doubleLit) And IsNumeric(decimalLit) And IsNumeric("123")) then
52                         Console.WriteLine("OK")
53                 else
54                         Console.WriteLine("FAILED")
55                 end if
56
57                 Console.Write("Negative cases for IsNumeric: ")
58                 if not (IsNumeric(nothing) Or IsNumeric(charLit) or IsNumeric(dateLit) or IsNumeric("123 ABC")) then
59                         Console.WriteLine("OK")
60                 else
61                         Console.WriteLine("FAILED")
62                 end if
63     End Sub
64
65 End Module
66
67 Public Class WriteOK2
68
69     Friend Shared Sub [Sub]() ' Escaped identifier
70                 Dim Text as string ' here 'Text' isn't a keyword
71                 Dim sometext = "Yeah! Some Text" 'TODO: still case sensitive on identifiers
72                 Dim someOtherText as string = "Blah! Some Other Text"
73 '               Const sometext = "Yeah! Some Text" ' FIXME: raises InvalidCastException in yyParse
74 '               Const someOtherText as string = "Blah! Some Other Text" ' FIXME: raises InvalidCastException in yyParse
75                 Text = "This is a test!"
76         Console.WriteLine("Sub:OK! - """ & Text & """ " & someText & " " & someOtherText)
77 #If CAUSEERRORS
78         Yield 1
79         Yield Stop
80 #End If
81     End Sub
82
83 End Class
84
85 Public Module WriteOK5
86     Public Sub ModuleSub(Parm As String)
87         Console.WriteLine("ModuleSub:OK! (" & Parm & ")")
88     End Sub
89 End Module
90
91 Namespace Another
92
93 Public Module WriteOK6
94     Public Sub ModuleSub(Parm As String)
95         Console.WriteLine("Another.ModuleSub:OK! (" & Parm & ")")
96     End Sub
97 End Module
98
99 Public Class Indirector
100         Public Shared Sub WriteIt()
101                 ModuleSub("Through WriteIt") ' Must resolve to Another.WriteOK6.ModuleSub
102         End Sub
103 End Class
104
105 End Namespace