2024-01-16 21:26:16 +08:00
|
|
|
/*
|
|
|
|
Language: Batch file (DOS)
|
|
|
|
Author: Alexander Makarov <sam@rmcreative.ru>
|
|
|
|
Contributors: Anton Kochkov <anton.kochkov@gmail.com>
|
|
|
|
Website: https://en.wikipedia.org/wiki/Batch_file
|
|
|
|
*/
|
|
|
|
|
|
|
|
/** @type LanguageFn */
|
|
|
|
function dos(hljs) {
|
|
|
|
const COMMENT = hljs.COMMENT(
|
2023-12-18 13:12:25 +08:00
|
|
|
/^\s*@?rem\b/, /$/,
|
|
|
|
{
|
|
|
|
relevance: 10
|
|
|
|
}
|
|
|
|
);
|
2024-01-16 21:26:16 +08:00
|
|
|
const LABEL = {
|
2023-12-18 13:12:25 +08:00
|
|
|
className: 'symbol',
|
|
|
|
begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
|
|
|
|
relevance: 0
|
|
|
|
};
|
|
|
|
return {
|
2024-01-16 21:26:16 +08:00
|
|
|
name: 'Batch file (DOS)',
|
|
|
|
aliases: [
|
|
|
|
'bat',
|
|
|
|
'cmd'
|
|
|
|
],
|
2023-12-18 13:12:25 +08:00
|
|
|
case_insensitive: true,
|
|
|
|
illegal: /\/\*/,
|
|
|
|
keywords: {
|
|
|
|
keyword:
|
|
|
|
'if else goto for in do call exit not exist errorlevel defined ' +
|
|
|
|
'equ neq lss leq gtr geq',
|
|
|
|
built_in:
|
|
|
|
'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +
|
|
|
|
'shift cd dir echo setlocal endlocal set pause copy ' +
|
|
|
|
'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +
|
|
|
|
'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +
|
|
|
|
'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +
|
2024-01-16 21:26:16 +08:00
|
|
|
'pause print popd pushd promt rd recover rem rename replace restore rmdir shift ' +
|
2023-12-18 13:12:25 +08:00
|
|
|
'sort start subst time title tree type ver verify vol ' +
|
|
|
|
// winutils
|
|
|
|
'ping net ipconfig taskkill xcopy ren del'
|
|
|
|
},
|
|
|
|
contains: [
|
|
|
|
{
|
2024-01-16 21:26:16 +08:00
|
|
|
className: 'variable',
|
|
|
|
begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
|
2023-12-18 13:12:25 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
className: 'function',
|
2024-01-16 21:26:16 +08:00
|
|
|
begin: LABEL.begin,
|
|
|
|
end: 'goto:eof',
|
2023-12-18 13:12:25 +08:00
|
|
|
contains: [
|
2024-01-16 21:26:16 +08:00
|
|
|
hljs.inherit(hljs.TITLE_MODE, {
|
|
|
|
begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'
|
|
|
|
}),
|
2023-12-18 13:12:25 +08:00
|
|
|
COMMENT
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
2024-01-16 21:26:16 +08:00
|
|
|
className: 'number',
|
|
|
|
begin: '\\b\\d+',
|
2023-12-18 13:12:25 +08:00
|
|
|
relevance: 0
|
|
|
|
},
|
|
|
|
COMMENT
|
|
|
|
]
|
|
|
|
};
|
2024-01-16 21:26:16 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = dos;
|