Blame view

assets/plugins/google-code-prettify/lang-n.js 3.04 KB
cf76164e6   Ting Chan   20190709
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
58
59
60
61
62
63
64
65
66
67
68
69
70
  // Copyright (C) 2011 Zimin A.V.
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  //      http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  
  
  /**
   * @fileoverview
   * Registers a language handler for the Nemerle language.
   * http://nemerle.org
   * @author Zimin A.V.
   */
  (function () {
    // http://nemerle.org/wiki/index.php?title=Base_keywords
    var keywords = 'abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|'
           + 'fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|'
           + 'null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|'
           + 'syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|'
           + 'assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|'
           + 'otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield';
  
    PR['registerLangHandler'](PR['createSimpleLexer'](
        // shortcutStylePatterns
        [
          [PR['PR_STRING'], /^(?:\'(?:[^\\\'\r
  ]|\\.)*\'|\"(?:[^\\\"\r
  ]|\\.)*(?:\"|$))/, null, '"'],
          [PR['PR_COMMENT'], /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r
  ]*)/, null, '#'],
          [PR['PR_PLAIN'], /^\s+/, null, ' \r
  \t\xA0']
        ],
        // fallthroughStylePatterns
        [
          [PR['PR_STRING'], /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null],
          [PR['PR_STRING'], /^<#(?:[^#>])*(?:#>|$)/, null],
          [PR['PR_STRING'], /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null],
          [PR['PR_COMMENT'], /^\/\/[^\r
  ]*/, null],
          [PR['PR_COMMENT'], /^\/\*[\s\S]*?(?:\*\/|$)/, null],
          [PR['PR_KEYWORD'], new RegExp('^(?:' + keywords + ')\\b'), null],
          [PR['PR_TYPE'], /^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/, null],
          [PR['PR_LITERAL'], /^@[a-z_$][a-z_$@0-9]*/i, null],
          [PR['PR_TYPE'], /^@[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
          [PR['PR_PLAIN'], /^'?[A-Za-z_$][a-z_$@0-9]*/i, null],
          [PR['PR_LITERAL'], new RegExp(
               '^(?:'
    // A hex number
               + '0x[a-f0-9]+'
    // or an octal or decimal number,
               + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    // possibly in scientific notation
               + '(?:e[+\\-]?\\d+)?'
               + ')'
    // with an optional modifier like UL for unsigned long
               + '[a-z]*', 'i'), null, '0123456789'],
  
          [PR['PR_PUNCTUATION'], /^.[^\s\w\.$@\'\"\`\/\#]*/, null]
        ]),
        ['n', 'nemerle']);
  })();