Add support for Visual Basic. Fix #985 (#1382)

This commit is contained in:
Golmote 2018-04-11 08:47:26 +02:00 committed by GitHub
parent 5a524f7e3d
commit c673ec29a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 581 additions and 3 deletions

File diff suppressed because one or more lines are too long

View File

@ -675,6 +675,11 @@
"title": "vim",
"owner": "westonganger"
},
"visual-basic": {
"title": "Visual Basic",
"owner": "Golmote",
"alias": "vb"
},
"wiki": {
"title": "Wiki markup",
"require": "markup",

View File

@ -0,0 +1,34 @@
Prism.languages['visual-basic'] = {
'comment': {
pattern: /(?:[']|REM\b).*/i,
inside: {
'keyword': /^REM/i
}
},
'directive': {
pattern: /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,
alias: 'comment',
greedy: true
},
'string': {
pattern: /["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,
greedy: true
},
'date': {
pattern: /#[^\S\r\n]*(?:\d+([/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))[^\S\r\n]*#/i,
alias: 'builtin'
},
'number': /(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,
'boolean': /\b(?:True|False|Nothing)\b/i,
'keyword': /\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,
'operator': [
/[+\-*/\\^<=>&#@$%!]/,
{
pattern: /([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,
lookbehind: true
}
],
'punctuation': /[{}().,:?]/
};
Prism.languages.vb = Prism.languages['visual-basic'];

1
components/prism-visual-basic.min.js vendored Normal file
View File

@ -0,0 +1 @@
Prism.languages["visual-basic"]={comment:{pattern:/(?:[']|REM\b).*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,alias:"comment",greedy:!0},string:{pattern:/["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[^\S\r\n]*(?:\d+([\/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))[^\S\r\n]*#/i,alias:"builtin"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,"boolean":/\b(?:True|False|Nothing)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:[/[+\-*\/\\^<=>&#@$%!]/,{pattern:/([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,lookbehind:!0}],punctuation:/[{}().,:?]/},Prism.languages.vb=Prism.languages["visual-basic"];

View File

@ -0,0 +1,36 @@
<h2>Comments</h2>
<pre><code>' Comment
REM This is a comment too</code></pre>
<h2>Strings and characters</h2>
<pre><code>"Foo""bar"
“”
"a"c</code></pre>
<h2>Dates and times</h2>
<pre><code># 8/23/1970 3:45:39AM #
#8/23/1970 #
# 3:45:39AM #
# 3:45:39#
# 13:45:39 #
# 1AM #
# 13:45:39PM #</code></pre>
<h2>Numbers</h2>
<pre><code>42S
.369E+14
3.1415R</code></pre>
<h2>Preprocessing directives</h2>
<pre><code>#ExternalChecksum("c:\wwwroot\inetpub\test.aspx", _
"{12345678-1234-1234-1234-123456789abc}", _
"1a2b3c4e5f617239a49b9a9c0391849d34950f923fab9484")</code></pre>
<h2>Keywords</h2>
<pre><code>Function AddNumbers(ByVal X As Integer, ByVal Y As Integer)
AddNumbers = X + Y
End Function
Module Test
Sub Main()
End Sub
End Module</code></pre>

View File

@ -11,7 +11,7 @@ if (!Prism.plugins.toolbar) {
}
// The languages map is built automatically with gulp
var Languages = /*languages_placeholder[*/{"html":"HTML","xml":"XML","svg":"SVG","mathml":"MathML","css":"CSS","clike":"C-like","javascript":"JavaScript","abap":"ABAP","actionscript":"ActionScript","apacheconf":"Apache Configuration","apl":"APL","applescript":"AppleScript","arff":"ARFF","asciidoc":"AsciiDoc","asm6502":"6502 Assembly","aspnet":"ASP.NET (C#)","autohotkey":"AutoHotkey","autoit":"AutoIt","basic":"BASIC","csharp":"C#","cpp":"C++","coffeescript":"CoffeeScript","csp":"Content-Security-Policy","css-extras":"CSS Extras","django":"Django/Jinja2","erb":"ERB","fsharp":"F#","glsl":"GLSL","graphql":"GraphQL","http":"HTTP","hpkp":"HTTP Public-Key-Pins","hsts":"HTTP Strict-Transport-Security","ichigojam":"IchigoJam","inform7":"Inform 7","json":"JSON","latex":"LaTeX","livescript":"LiveScript","lolcode":"LOLCODE","markup-templating":"Markup templating","matlab":"MATLAB","mel":"MEL","n4js":"N4JS","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","opencl":"OpenCL","parigp":"PARI/GP","php":"PHP","php-extras":"PHP Extras","plsql":"PL/SQL","powershell":"PowerShell","properties":".properties","protobuf":"Protocol Buffers","q":"Q (kdb+ database)","jsx":"React JSX","tsx":"React TSX","renpy":"Ren'py","rest":"reST (reStructuredText)","sas":"SAS","sass":"Sass (Sass)","scss":"Sass (Scss)","sql":"SQL","typescript":"TypeScript","vbnet":"VB.Net","vhdl":"VHDL","vim":"vim","wiki":"Wiki markup","xojo":"Xojo (REALbasic)","yaml":"YAML"}/*]*/;
var Languages = /*languages_placeholder[*/{"html":"HTML","xml":"XML","svg":"SVG","mathml":"MathML","css":"CSS","clike":"C-like","javascript":"JavaScript","abap":"ABAP","actionscript":"ActionScript","apacheconf":"Apache Configuration","apl":"APL","applescript":"AppleScript","arff":"ARFF","asciidoc":"AsciiDoc","asm6502":"6502 Assembly","aspnet":"ASP.NET (C#)","autohotkey":"AutoHotkey","autoit":"AutoIt","basic":"BASIC","csharp":"C#","cpp":"C++","coffeescript":"CoffeeScript","csp":"Content-Security-Policy","css-extras":"CSS Extras","django":"Django/Jinja2","erb":"ERB","fsharp":"F#","glsl":"GLSL","graphql":"GraphQL","http":"HTTP","hpkp":"HTTP Public-Key-Pins","hsts":"HTTP Strict-Transport-Security","ichigojam":"IchigoJam","inform7":"Inform 7","json":"JSON","latex":"LaTeX","livescript":"LiveScript","lolcode":"LOLCODE","markup-templating":"Markup templating","matlab":"MATLAB","mel":"MEL","n4js":"N4JS","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","opencl":"OpenCL","parigp":"PARI/GP","php":"PHP","php-extras":"PHP Extras","plsql":"PL/SQL","powershell":"PowerShell","properties":".properties","protobuf":"Protocol Buffers","q":"Q (kdb+ database)","jsx":"React JSX","tsx":"React TSX","renpy":"Ren'py","rest":"reST (reStructuredText)","sas":"SAS","sass":"Sass (Sass)","scss":"Sass (Scss)","sql":"SQL","typescript":"TypeScript","vbnet":"VB.Net","vhdl":"VHDL","vim":"vim","visual-basic":"Visual Basic","wiki":"Wiki markup","xojo":"Xojo (REALbasic)","yaml":"YAML"}/*]*/;
Prism.plugins.toolbar.registerButton('show-language', function(env) {
var pre = env.element.parentNode;
if (!pre || !/pre/i.test(pre.nodeName)) {

View File

@ -1 +1 @@
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Show Languages plugin loaded before Toolbar plugin."),void 0;var e={html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",css:"CSS",clike:"C-like",javascript:"JavaScript",abap:"ABAP",actionscript:"ActionScript",apacheconf:"Apache Configuration",apl:"APL",applescript:"AppleScript",arff:"ARFF",asciidoc:"AsciiDoc",asm6502:"6502 Assembly",aspnet:"ASP.NET (C#)",autohotkey:"AutoHotkey",autoit:"AutoIt",basic:"BASIC",csharp:"C#",cpp:"C++",coffeescript:"CoffeeScript",csp:"Content-Security-Policy","css-extras":"CSS Extras",django:"Django/Jinja2",erb:"ERB",fsharp:"F#",glsl:"GLSL",graphql:"GraphQL",http:"HTTP",hpkp:"HTTP Public-Key-Pins",hsts:"HTTP Strict-Transport-Security",ichigojam:"IchigoJam",inform7:"Inform 7",json:"JSON",latex:"LaTeX",livescript:"LiveScript",lolcode:"LOLCODE","markup-templating":"Markup templating",matlab:"MATLAB",mel:"MEL",n4js:"N4JS",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",opencl:"OpenCL",parigp:"PARI/GP",php:"PHP","php-extras":"PHP Extras",plsql:"PL/SQL",powershell:"PowerShell",properties:".properties",protobuf:"Protocol Buffers",q:"Q (kdb+ database)",jsx:"React JSX",tsx:"React TSX",renpy:"Ren'py",rest:"reST (reStructuredText)",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)",sql:"SQL",typescript:"TypeScript",vbnet:"VB.Net",vhdl:"VHDL",vim:"vim",wiki:"Wiki markup",xojo:"Xojo (REALbasic)",yaml:"YAML"};Prism.plugins.toolbar.registerButton("show-language",function(t){var a=t.element.parentNode;if(a&&/pre/i.test(a.nodeName)){var s=a.getAttribute("data-language")||e[t.language]||t.language.substring(0,1).toUpperCase()+t.language.substring(1),i=document.createElement("span");return i.textContent=s,i}})}}();
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Show Languages plugin loaded before Toolbar plugin."),void 0;var e={html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",css:"CSS",clike:"C-like",javascript:"JavaScript",abap:"ABAP",actionscript:"ActionScript",apacheconf:"Apache Configuration",apl:"APL",applescript:"AppleScript",arff:"ARFF",asciidoc:"AsciiDoc",asm6502:"6502 Assembly",aspnet:"ASP.NET (C#)",autohotkey:"AutoHotkey",autoit:"AutoIt",basic:"BASIC",csharp:"C#",cpp:"C++",coffeescript:"CoffeeScript",csp:"Content-Security-Policy","css-extras":"CSS Extras",django:"Django/Jinja2",erb:"ERB",fsharp:"F#",glsl:"GLSL",graphql:"GraphQL",http:"HTTP",hpkp:"HTTP Public-Key-Pins",hsts:"HTTP Strict-Transport-Security",ichigojam:"IchigoJam",inform7:"Inform 7",json:"JSON",latex:"LaTeX",livescript:"LiveScript",lolcode:"LOLCODE","markup-templating":"Markup templating",matlab:"MATLAB",mel:"MEL",n4js:"N4JS",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",opencl:"OpenCL",parigp:"PARI/GP",php:"PHP","php-extras":"PHP Extras",plsql:"PL/SQL",powershell:"PowerShell",properties:".properties",protobuf:"Protocol Buffers",q:"Q (kdb+ database)",jsx:"React JSX",tsx:"React TSX",renpy:"Ren'py",rest:"reST (reStructuredText)",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)",sql:"SQL",typescript:"TypeScript",vbnet:"VB.Net",vhdl:"VHDL",vim:"vim","visual-basic":"Visual Basic",wiki:"Wiki markup",xojo:"Xojo (REALbasic)",yaml:"YAML"};Prism.plugins.toolbar.registerButton("show-language",function(t){var a=t.element.parentNode;if(a&&/pre/i.test(a.nodeName)){var s=a.getAttribute("data-language")||e[t.language]||t.language.substring(0,1).toUpperCase()+t.language.substring(1),i=document.createElement("span");return i.textContent=s,i}})}}();

View File

@ -0,0 +1,15 @@
True
False
Nothing
----------------------------------------------------
[
["boolean", "True"],
["boolean", "False"],
["boolean", "Nothing"]
]
----------------------------------------------------
Checks for booleans.

View File

@ -0,0 +1,25 @@
'
' Foo "bar"
Foobar
Foobar
REM
REM Foobar
----------------------------------------------------
[
["comment", ["'"]],
["comment", ["' Foo \"bar\""]],
["comment", [""]],
["comment", [" Foobar"]],
["comment", [""]],
["comment", [" Foobar"]],
["comment", [["keyword", "REM"]]],
["comment", [["keyword", "REM"], " Foobar"]]
]
----------------------------------------------------
Checks for comments.

View File

@ -0,0 +1,23 @@
# 8/23/1970 3:45:39AM #
#8/23/1970 #
# 3:45:39AM #
# 3:45:39#
# 13:45:39 #
# 1AM #
# 13:45:39PM #
----------------------------------------------------
[
["date", "# 8/23/1970 3:45:39AM #"],
["date", "#8/23/1970 #"],
["date", "# 3:45:39AM #"],
["date", "# 3:45:39#"],
["date", "# 13:45:39 #"],
["date", "# 1AM #"],
["date", "# 13:45:39PM #"]
]
----------------------------------------------------
Checks for dates and times.

View File

@ -0,0 +1,23 @@
#Const DebugCode = True
#If DebugCode Then
#End If
#ExternalSource("c:\wwwroot\inetpub\test.aspx", 30)
#End ExternalSource
#ExternalChecksum("c:\wwwroot\inetpub\test.aspx", _
"{12345678-1234-1234-1234-123456789abc}", _
"1a2b3c4e5f617239a49b9a9c0391849d34950f923fab9484")
----------------------------------------------------
[
["directive", "#Const DebugCode = True"],
["directive", "#If DebugCode Then"],
["directive", "#End If"],
["directive", "#ExternalSource(\"c:\\wwwroot\\inetpub\\test.aspx\", 30)"],
["directive", "#End ExternalSource"],
["directive", "#ExternalChecksum(\"c:\\wwwroot\\inetpub\\test.aspx\", _\r\n \"{12345678-1234-1234-1234-123456789abc}\", _\r\n \"1a2b3c4e5f617239a49b9a9c0391849d34950f923fab9484\")"]
]
----------------------------------------------------
Checks for preprocessing directives.

View File

@ -0,0 +1,307 @@
AddHandler
AddressOf
Alias
And
AndAlso
As
Boolean
ByRef
Byte
ByVal
Call
Case
Catch
CBool
CByte
CChar
CDate
CDbl
CDec
Char
CInt
Class
CLng
CObj
Const
Continue
CSByte
CShort
CSng
CStr
CType
CUInt
CULng
CUShort
Date
Decimal
Declare
Default
Delegate
Dim
DirectCast
Do
Double
Each
Else
ElseIf
End
EndIf
Enum
Erase
Error
Event
Exit
Finally
For
Friend
Function
Get
GetType
GetXMLNamespace
Global
GoSub
GoTo
Handles
If
Implements
Imports
In
Inherits
Integer
Interface
Is
IsNot
Let
Lib
Like
Long
Loop
Me
Mod
Module
MustInherit
MustOverride
MyBase
MyClass
Namespace
Narrowing
New
Next
Not
NotInheritable
NotOverridable
Object
Of
On
Operator
Option
Optional
Or
OrElse
Out
Overloads
Overridable
Overrides
ParamArray
Partial
Private
Property
Protected
Public
RaiseEvent
ReadOnly
ReDim
RemoveHandler
Resume
Return
SByte
Select
Set
Shadows
Shared
short
Single
Static
Step
Stop
String
Structure
Sub
SyncLock
Then
Throw
To
Try
TryCast
TypeOf
UInteger
ULong
UShort
Using
Variant
Wend
When
While
Widening
With
WithEvents
WriteOnly
Xor
----------------------------------------------------
[
["keyword", "AddHandler"],
["keyword", "AddressOf"],
["keyword", "Alias"],
["keyword", "And"],
["keyword", "AndAlso"],
["keyword", "As"],
["keyword", "Boolean"],
["keyword", "ByRef"],
["keyword", "Byte"],
["keyword", "ByVal"],
["keyword", "Call"],
["keyword", "Case"],
["keyword", "Catch"],
["keyword", "CBool"],
["keyword", "CByte"],
["keyword", "CChar"],
["keyword", "CDate"],
["keyword", "CDbl"],
["keyword", "CDec"],
["keyword", "Char"],
["keyword", "CInt"],
["keyword", "Class"],
["keyword", "CLng"],
["keyword", "CObj"],
["keyword", "Const"],
["keyword", "Continue"],
["keyword", "CSByte"],
["keyword", "CShort"],
["keyword", "CSng"],
["keyword", "CStr"],
["keyword", "CType"],
["keyword", "CUInt"],
["keyword", "CULng"],
["keyword", "CUShort"],
["keyword", "Date"],
["keyword", "Decimal"],
["keyword", "Declare"],
["keyword", "Default"],
["keyword", "Delegate"],
["keyword", "Dim"],
["keyword", "DirectCast"],
["keyword", "Do"],
["keyword", "Double"],
["keyword", "Each"],
["keyword", "Else"],
["keyword", "ElseIf"],
["keyword", "End"],
["keyword", "EndIf"],
["keyword", "Enum"],
["keyword", "Erase"],
["keyword", "Error"],
["keyword", "Event"],
["keyword", "Exit"],
["keyword", "Finally"],
["keyword", "For"],
["keyword", "Friend"],
["keyword", "Function"],
["keyword", "Get"],
["keyword", "GetType"],
["keyword", "GetXMLNamespace"],
["keyword", "Global"],
["keyword", "GoSub"],
["keyword", "GoTo"],
["keyword", "Handles"],
["keyword", "If"],
["keyword", "Implements"],
["keyword", "Imports"],
["keyword", "In"],
["keyword", "Inherits"],
["keyword", "Integer"],
["keyword", "Interface"],
["keyword", "Is"],
["keyword", "IsNot"],
["keyword", "Let"],
["keyword", "Lib"],
["keyword", "Like"],
["keyword", "Long"],
["keyword", "Loop"],
["keyword", "Me"],
["keyword", "Mod"],
["keyword", "Module"],
["keyword", "MustInherit"],
["keyword", "MustOverride"],
["keyword", "MyBase"],
["keyword", "MyClass"],
["keyword", "Namespace"],
["keyword", "Narrowing"],
["keyword", "New"],
["keyword", "Next"],
["keyword", "Not"],
["keyword", "NotInheritable"],
["keyword", "NotOverridable"],
["keyword", "Object"],
["keyword", "Of"],
["keyword", "On"],
["keyword", "Operator"],
["keyword", "Option"],
["keyword", "Optional"],
["keyword", "Or"],
["keyword", "OrElse"],
["keyword", "Out"],
["keyword", "Overloads"],
["keyword", "Overridable"],
["keyword", "Overrides"],
["keyword", "ParamArray"],
["keyword", "Partial"],
["keyword", "Private"],
["keyword", "Property"],
["keyword", "Protected"],
["keyword", "Public"],
["keyword", "RaiseEvent"],
["keyword", "ReadOnly"],
["keyword", "ReDim"],
["keyword", "RemoveHandler"],
["keyword", "Resume"],
["keyword", "Return"],
["keyword", "SByte"],
["keyword", "Select"],
["keyword", "Set"],
["keyword", "Shadows"],
["keyword", "Shared"],
["keyword", "short"],
["keyword", "Single"],
["keyword", "Static"],
["keyword", "Step"],
["keyword", "Stop"],
["keyword", "String"],
["keyword", "Structure"],
["keyword", "Sub"],
["keyword", "SyncLock"],
["keyword", "Then"],
["keyword", "Throw"],
["keyword", "To"],
["keyword", "Try"],
["keyword", "TryCast"],
["keyword", "TypeOf"],
["keyword", "UInteger"],
["keyword", "ULong"],
["keyword", "UShort"],
["keyword", "Using"],
["keyword", "Variant"],
["keyword", "Wend"],
["keyword", "When"],
["keyword", "While"],
["keyword", "Widening"],
["keyword", "With"],
["keyword", "WithEvents"],
["keyword", "WriteOnly"],
["keyword", "Xor"]
]
----------------------------------------------------
Checks for all keywords.

View File

@ -0,0 +1,37 @@
42
42S
42US
&O157I
&O157UI
&HBADFACE42L
&HBADFACE42UL
4F
0.4
3.1415R
.24
4E7D
12.87E-8
.369E+14
----------------------------------------------------
[
["number", "42"],
["number", "42S"],
["number", "42US"],
["number", "&O157I"],
["number", "&O157UI"],
["number", "&HBADFACE42L"],
["number", "&HBADFACE42UL"],
["number", "4F"],
["number", "0.4"],
["number", "3.1415R"],
["number", ".24"],
["number", "4E7D"],
["number", "12.87E-8"],
["number", ".369E+14"]
]
----------------------------------------------------
Checks for numbers.

View File

@ -0,0 +1,37 @@
+ -
* /
\ ^
< = >
& # @
$ % !
Sub Print( _
Param1 As Integer, _
Param2 As Integer )
----------------------------------------------------
[
["operator", "+"], ["operator", "-"],
["operator", "*"], ["operator", "/"],
["operator", "\\"], ["operator", "^"],
["operator", "<"], ["operator", "="], ["operator", ">"],
["operator", "&"], ["operator", "#"], ["operator", "@"],
["operator", "$"], ["operator", "%"], ["operator", "!"],
["keyword", "Sub"],
" Print",
["punctuation", "("],
["operator", "_"],
"\r\n Param1 ",
["keyword", "As"],
["keyword", "Integer"],
["punctuation", ","],
["operator", "_"],
"\r\n Param2 ",
["keyword", "As"],
["keyword", "Integer"],
["punctuation", ")"]
]
----------------------------------------------------
Checks for operators and type characters.

View File

@ -0,0 +1,35 @@
""
"Foobar"
"Foo""bar"
“”
“Foo
bar”
“Foo""bar”
““
””
”“
“"
"Foo”“ba
r"
"a"c
----------------------------------------------------
[
["string", "\"\""],
["string", "\"Foobar\""],
["string", "\"Foo\"\"bar\""],
["string", "“”"],
["string", "“Foo\r\nbar”"],
["string", "“Foo\"\"bar”"],
["string", "““"],
["string", "””"],
["string", "”“"],
["string", "“\""],
["string", "\"Foo”“ba\r\nr\""],
["string", "\"a\"c"]
]
----------------------------------------------------
Checks for strings.