prism-visual-basic.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. Prism.languages['visual-basic'] = {
  2. 'comment': {
  3. pattern: /(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,
  4. inside: {
  5. 'keyword': /^REM/i
  6. }
  7. },
  8. 'directive': {
  9. pattern: /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,
  10. alias: 'comment',
  11. greedy: true
  12. },
  13. 'string': {
  14. pattern: /\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,
  15. greedy: true
  16. },
  17. 'date': {
  18. 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,
  19. alias: 'builtin'
  20. },
  21. 'number': /(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,
  22. 'boolean': /\b(?:True|False|Nothing)\b/i,
  23. '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|Currency|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|Type|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Until|Xor)\b/i,
  24. 'operator': [
  25. /[+\-*/\\^<=>&#@$%!]/,
  26. {
  27. pattern: /([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,
  28. lookbehind: true
  29. }
  30. ],
  31. 'punctuation': /[{}().,:?]/
  32. };
  33. Prism.languages.vb = Prism.languages['visual-basic'];
  34. Prism.languages.vba = Prism.languages['visual-basic'];