source: node_modules/refractor/lang/brightscript.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.6 KB
Line 
1'use strict'
2
3module.exports = brightscript
4brightscript.displayName = 'brightscript'
5brightscript.aliases = []
6function brightscript(Prism) {
7 Prism.languages.brightscript = {
8 comment: /(?:\brem|').*/i,
9 'directive-statement': {
10 pattern: /(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,
11 lookbehind: true,
12 alias: 'property',
13 inside: {
14 'error-message': {
15 pattern: /(^#error).+/,
16 lookbehind: true
17 },
18 directive: {
19 pattern: /^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,
20 alias: 'keyword'
21 },
22 expression: {
23 pattern: /[\s\S]+/,
24 inside: null // see below
25 }
26 }
27 },
28 property: {
29 pattern:
30 /([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,
31 lookbehind: true,
32 greedy: true
33 },
34 string: {
35 pattern: /"(?:[^"\r\n]|"")*"(?!")/,
36 greedy: true
37 },
38 'class-name': {
39 pattern: /(\bAs[\t ]+)\w+/i,
40 lookbehind: true
41 },
42 keyword:
43 /\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,
44 boolean: /\b(?:false|true)\b/i,
45 function: /\b(?!\d)\w+(?=[\t ]*\()/,
46 number: /(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,
47 operator:
48 /--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,
49 punctuation: /[.,;()[\]{}]/,
50 constant: /\b(?:LINE_NUM)\b/i
51 }
52 Prism.languages.brightscript['directive-statement'].inside.expression.inside =
53 Prism.languages.brightscript
54}
Note: See TracBrowser for help on using the repository browser.