File size: 1,342 Bytes
bc20498 |
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 |
/*
Language: Awk
Author: Matthew Daly <[email protected]>
Website: https://www.gnu.org/software/gawk/manual/gawk.html
Description: language definition for Awk scripts
*/
/** @type LanguageFn */
function awk(hljs) {
const VARIABLE = {
className: 'variable',
variants: [
{ begin: /\$[\w\d#@][\w\d_]*/ },
{ begin: /\$\{(.*?)\}/ }
]
};
const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';
const STRING = {
className: 'string',
contains: [ hljs.BACKSLASH_ESCAPE ],
variants: [
{
begin: /(u|b)?r?'''/,
end: /'''/,
relevance: 10
},
{
begin: /(u|b)?r?"""/,
end: /"""/,
relevance: 10
},
{
begin: /(u|r|ur)'/,
end: /'/,
relevance: 10
},
{
begin: /(u|r|ur)"/,
end: /"/,
relevance: 10
},
{
begin: /(b|br)'/,
end: /'/
},
{
begin: /(b|br)"/,
end: /"/
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE
]
};
return {
name: 'Awk',
keywords: { keyword: KEYWORDS },
contains: [
VARIABLE,
STRING,
hljs.REGEXP_MODE,
hljs.HASH_COMMENT_MODE,
hljs.NUMBER_MODE
]
};
}
module.exports = awk;
|