Files
cloud-code/claude-code-source/node_modules/.ignored/highlight.js/lib/languages/delphi.js
janlaywss 6187147b74 reconstruct and build @anthropic-ai/claude-code source from source map
- Extract 4756 source files from cli.js.map (57MB)
- Set up Bun build system with bun:bundle feature flag shim
- Configure 90+ compile-time feature flags matching production defaults
- Inject MACRO constants (VERSION, BUILD_TIME, etc.)
- Create stubs for private packages (color-diff-napi, modifiers-napi, etc.)
- Install all public dependencies via pnpm
- Patch commander v14 to allow multi-char short flags (-d2e)
- Build output: dist/cli.js (22MB), verified working
2026-03-31 19:19:50 +08:00

127 lines
3.2 KiB
JavaScript

/*
Language: Delphi
Website: https://www.embarcadero.com/products/delphi
*/
/** @type LanguageFn */
function delphi(hljs) {
const KEYWORDS =
'exports register file shl array record property for mod while set ally label uses raise not ' +
'stored class safecall var interface or private static exit index inherited to else stdcall ' +
'override shr asm far resourcestring finalization packed virtual out and protected library do ' +
'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +
'destructor write message program with read initialization except default nil if case cdecl in ' +
'downto threadvar of try pascal const external constructor type public then implementation ' +
'finally published procedure absolute reintroduce operator as is abstract alias assembler ' +
'bitpacked break continue cppdecl cvar enumerator experimental platform deprecated ' +
'unimplemented dynamic export far16 forward generic helper implements interrupt iochecks ' +
'local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat ' +
'specialize strict unaligned varargs ';
const COMMENT_MODES = [
hljs.C_LINE_COMMENT_MODE,
hljs.COMMENT(/\{/, /\}/, {
relevance: 0
}),
hljs.COMMENT(/\(\*/, /\*\)/, {
relevance: 10
})
];
const DIRECTIVE = {
className: 'meta',
variants: [
{
begin: /\{\$/,
end: /\}/
},
{
begin: /\(\*\$/,
end: /\*\)/
}
]
};
const STRING = {
className: 'string',
begin: /'/,
end: /'/,
contains: [{
begin: /''/
}]
};
const NUMBER = {
className: 'number',
relevance: 0,
// Source: https://www.freepascal.org/docs-html/ref/refse6.html
variants: [
{
// Hexadecimal notation, e.g., $7F.
begin: '\\$[0-9A-Fa-f]+'
},
{
// Octal notation, e.g., &42.
begin: '&[0-7]+'
},
{
// Binary notation, e.g., %1010.
begin: '%[01]+'
}
]
};
const CHAR_STRING = {
className: 'string',
begin: /(#\d+)+/
};
const CLASS = {
begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(',
returnBegin: true,
contains: [hljs.TITLE_MODE]
};
const FUNCTION = {
className: 'function',
beginKeywords: 'function constructor destructor procedure',
end: /[:;]/,
keywords: 'function constructor|10 destructor|10 procedure|10',
contains: [
hljs.TITLE_MODE,
{
className: 'params',
begin: /\(/,
end: /\)/,
keywords: KEYWORDS,
contains: [
STRING,
CHAR_STRING,
DIRECTIVE
].concat(COMMENT_MODES)
},
DIRECTIVE
].concat(COMMENT_MODES)
};
return {
name: 'Delphi',
aliases: [
'dpr',
'dfm',
'pas',
'pascal',
'freepascal',
'lazarus',
'lpr',
'lfm'
],
case_insensitive: true,
keywords: KEYWORDS,
illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
contains: [
STRING,
CHAR_STRING,
hljs.NUMBER_MODE,
NUMBER,
CLASS,
FUNCTION,
DIRECTIVE
].concat(COMMENT_MODES)
};
}
module.exports = delphi;