delphi function

Mode delphi(
  1. Highlight hljs
)

Highlight.js language definition for delphi.

Implementation

Mode delphi(Highlight hljs) {
  final Mode mode0 = Mode();
  final Mode mode1 = Mode();
  final Mode mode2 = Mode();
  final Mode mode3 = Mode();
  final Mode mode4 = Mode();
  final Mode mode5 = Mode();
  final Mode mode6 = Mode();
  final Mode mode7 = Mode();
  final Mode mode8 = Mode();
  final Mode mode9 = Mode();
  final Mode mode10 = Mode();
  final Mode mode11 = Mode();
  final Mode mode12 = Mode();
  final Mode mode13 = Mode();
  final Mode mode14 = Mode();
  final Mode mode15 = Mode();
  final Mode mode16 = Mode();
  final Mode mode17 = Mode();
  final Mode mode18 = Mode();
  final Mode mode19 = Mode();
  mode0.scope = r'string';
  mode0.begin = r"'";
  mode0.end = r"'";
  mode0.contains = [mode1];
  mode1.begin = r"''";
  mode2.scope = r'string';
  mode2.variants = [mode3, mode4, mode5, mode6];
  mode3.match = r'#\d[\d_]*';
  mode4.match = r'#\$[\dA-Fa-f][\dA-Fa-f_]*';
  mode5.match = r'#&[0-7][0-7_]*';
  mode6.match = r'#%[01][01_]*';
  mode7.scope = r'title';
  mode7.begin = r'[a-zA-Z]\w*';
  mode7.relevance = 0;
  mode8.scope = r'meta';
  mode8.variants = [mode9, mode10];
  mode9.begin = r'\{\$';
  mode9.end = r'\}';
  mode10.begin = r'\(\*\$';
  mode10.end = r'\*\)';
  mode11.scope = r'comment';
  mode11.begin = r'//';
  mode11.end = r'$';
  mode11.contains = [mode12, mode13];
  mode12.scope = r'doctag';
  mode12.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  mode12.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  mode12.excludeBegin = true;
  mode12.relevance = 0;
  mode13.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  mode14.scope = r'comment';
  mode14.begin = r'\{';
  mode14.end = r'\}';
  mode14.contains = [mode15, mode16];
  mode14.relevance = 0;
  mode15.scope = r'doctag';
  mode15.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  mode15.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  mode15.excludeBegin = true;
  mode15.relevance = 0;
  mode16.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  mode17.scope = r'comment';
  mode17.begin = r'\(\*';
  mode17.end = r'\*\)';
  mode17.contains = [mode18, mode19];
  mode17.relevance = 10;
  mode18.scope = r'doctag';
  mode18.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  mode18.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  mode18.excludeBegin = true;
  mode18.relevance = 0;
  mode19.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  return Mode(
    name: r'Delphi',
    aliases: [r'dpr', r'dfm', r'pas', r'pascal'],
    caseInsensitive: true,
    keywords: [
      r'exports',
      r'register',
      r'file',
      r'shl',
      r'array',
      r'record',
      r'property',
      r'for',
      r'mod',
      r'while',
      r'set',
      r'ally',
      r'label',
      r'uses',
      r'raise',
      r'not',
      r'stored',
      r'class',
      r'safecall',
      r'var',
      r'interface',
      r'or',
      r'private',
      r'static',
      r'exit',
      r'index',
      r'inherited',
      r'to',
      r'else',
      r'stdcall',
      r'override',
      r'shr',
      r'asm',
      r'far',
      r'resourcestring',
      r'finalization',
      r'packed',
      r'virtual',
      r'out',
      r'and',
      r'protected',
      r'library',
      r'do',
      r'xorwrite',
      r'goto',
      r'near',
      r'function',
      r'end',
      r'div',
      r'overload',
      r'object',
      r'unit',
      r'begin',
      r'string',
      r'on',
      r'inline',
      r'repeat',
      r'until',
      r'destructor',
      r'write',
      r'message',
      r'program',
      r'with',
      r'read',
      r'initialization',
      r'except',
      r'default',
      r'nil',
      r'if',
      r'case',
      r'cdecl',
      r'in',
      r'downto',
      r'threadvar',
      r'of',
      r'try',
      r'pascal',
      r'const',
      r'external',
      r'constructor',
      r'type',
      r'public',
      r'then',
      r'implementation',
      r'finally',
      r'published',
      r'procedure',
      r'absolute',
      r'reintroduce',
      r'operator',
      r'as',
      r'is',
      r'abstract',
      r'alias',
      r'assembler',
      r'bitpacked',
      r'break',
      r'continue',
      r'cppdecl',
      r'cvar',
      r'enumerator',
      r'experimental',
      r'platform',
      r'deprecated',
      r'unimplemented',
      r'dynamic',
      r'export',
      r'far16',
      r'forward',
      r'generic',
      r'helper',
      r'implements',
      r'interrupt',
      r'iochecks',
      r'local',
      r'name',
      r'nodefault',
      r'noreturn',
      r'nostackframe',
      r'oldfpccall',
      r'otherwise',
      r'saveregisters',
      r'softfloat',
      r'specialize',
      r'strict',
      r'unaligned',
      r'varargs',
    ],
    illegal: r'"|\$[G-Zg-z]|\/\*|<\/|\|',
    contains: [
      mode0,
      mode2,
      Mode(
        scope: r'number',
        relevance: 0,
        variants: [
          Mode(match: r'\b\d[\d_]*(\.\d[\d_]*)?'),
          Mode(match: r'\$[\dA-Fa-f_]+'),
          Mode(match: r'\$', relevance: 0),
          Mode(match: r'&[0-7][0-7_]*'),
          Mode(match: r'%[01_]+'),
          Mode(match: r'%', relevance: 0),
        ],
      ),
      Mode(
        begin: r'[a-zA-Z]\w*\s*=\s*class\s*\(',
        returnBegin: true,
        contains: [mode7],
      ),
      Mode(
        scope: r'function',
        beginKeywords: r'function constructor destructor procedure',
        end: r'[:;]',
        keywords: r'function constructor|10 destructor|10 procedure|10',
        contains: [
          mode7,
          Mode(
            scope: r'params',
            begin: r'\(',
            end: r'\)',
            keywords: [
              r'exports',
              r'register',
              r'file',
              r'shl',
              r'array',
              r'record',
              r'property',
              r'for',
              r'mod',
              r'while',
              r'set',
              r'ally',
              r'label',
              r'uses',
              r'raise',
              r'not',
              r'stored',
              r'class',
              r'safecall',
              r'var',
              r'interface',
              r'or',
              r'private',
              r'static',
              r'exit',
              r'index',
              r'inherited',
              r'to',
              r'else',
              r'stdcall',
              r'override',
              r'shr',
              r'asm',
              r'far',
              r'resourcestring',
              r'finalization',
              r'packed',
              r'virtual',
              r'out',
              r'and',
              r'protected',
              r'library',
              r'do',
              r'xorwrite',
              r'goto',
              r'near',
              r'function',
              r'end',
              r'div',
              r'overload',
              r'object',
              r'unit',
              r'begin',
              r'string',
              r'on',
              r'inline',
              r'repeat',
              r'until',
              r'destructor',
              r'write',
              r'message',
              r'program',
              r'with',
              r'read',
              r'initialization',
              r'except',
              r'default',
              r'nil',
              r'if',
              r'case',
              r'cdecl',
              r'in',
              r'downto',
              r'threadvar',
              r'of',
              r'try',
              r'pascal',
              r'const',
              r'external',
              r'constructor',
              r'type',
              r'public',
              r'then',
              r'implementation',
              r'finally',
              r'published',
              r'procedure',
              r'absolute',
              r'reintroduce',
              r'operator',
              r'as',
              r'is',
              r'abstract',
              r'alias',
              r'assembler',
              r'bitpacked',
              r'break',
              r'continue',
              r'cppdecl',
              r'cvar',
              r'enumerator',
              r'experimental',
              r'platform',
              r'deprecated',
              r'unimplemented',
              r'dynamic',
              r'export',
              r'far16',
              r'forward',
              r'generic',
              r'helper',
              r'implements',
              r'interrupt',
              r'iochecks',
              r'local',
              r'name',
              r'nodefault',
              r'noreturn',
              r'nostackframe',
              r'oldfpccall',
              r'otherwise',
              r'saveregisters',
              r'softfloat',
              r'specialize',
              r'strict',
              r'unaligned',
              r'varargs',
            ],
            contains: [mode0, mode2, mode8, mode11, mode14, mode17],
          ),
          mode8,
          mode11,
          mode14,
          mode17,
        ],
      ),
      mode8,
      mode11,
      mode14,
      mode17,
    ],
  );
}