/ src / theme / languages / awk.js
awk.js
 1  /*! `awk` grammar compiled for Highlight.js 11.10.0 */
 2    (function(){
 3      var hljsGrammar = (function () {
 4    'use strict';
 5  
 6    /*
 7    Language: Awk
 8    Author: Matthew Daly <matthewbdaly@gmail.com>
 9    Website: https://www.gnu.org/software/gawk/manual/gawk.html
10    Description: language definition for Awk scripts
11    Category: scripting
12    */
13  
14    /** @type LanguageFn */
15    function awk(hljs) {
16      const VARIABLE = {
17        className: 'variable',
18        variants: [
19          { begin: /\$[\w\d#@][\w\d_]*/ },
20          { begin: /\$\{(.*?)\}/ }
21        ]
22      };
23      const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';
24      const STRING = {
25        className: 'string',
26        contains: [ hljs.BACKSLASH_ESCAPE ],
27        variants: [
28          {
29            begin: /(u|b)?r?'''/,
30            end: /'''/,
31            relevance: 10
32          },
33          {
34            begin: /(u|b)?r?"""/,
35            end: /"""/,
36            relevance: 10
37          },
38          {
39            begin: /(u|r|ur)'/,
40            end: /'/,
41            relevance: 10
42          },
43          {
44            begin: /(u|r|ur)"/,
45            end: /"/,
46            relevance: 10
47          },
48          {
49            begin: /(b|br)'/,
50            end: /'/
51          },
52          {
53            begin: /(b|br)"/,
54            end: /"/
55          },
56          hljs.APOS_STRING_MODE,
57          hljs.QUOTE_STRING_MODE
58        ]
59      };
60      return {
61        name: 'Awk',
62        keywords: { keyword: KEYWORDS },
63        contains: [
64          VARIABLE,
65          STRING,
66          hljs.REGEXP_MODE,
67          hljs.HASH_COMMENT_MODE,
68          hljs.NUMBER_MODE
69        ]
70      };
71    }
72  
73    return awk;
74  
75  })();
76  
77      hljs.registerLanguage('awk', hljsGrammar);
78    })();