basic function
Highlight.js language definition for basic.
Implementation
Mode basic(Highlight hljs) {
return Mode(
name: r'BASIC',
caseInsensitive: true,
illegal: r'^.',
keywords: {
r'$pattern': r'[a-zA-Z][a-zA-Z0-9_$%!#]*',
r'keyword': [
r'ABS',
r'ASC',
r'AND',
r'ATN',
r'AUTO|0',
r'BEEP',
r'BLOAD|10',
r'BSAVE|10',
r'CALL',
r'CALLS',
r'CDBL',
r'CHAIN',
r'CHDIR',
r'CHR$|10',
r'CINT',
r'CIRCLE',
r'CLEAR',
r'CLOSE',
r'CLS',
r'COLOR',
r'COM',
r'COMMON',
r'CONT',
r'COS',
r'CSNG',
r'CSRLIN',
r'CVD',
r'CVI',
r'CVS',
r'DATA',
r'DATE$',
r'DEFDBL',
r'DEFINT',
r'DEFSNG',
r'DEFSTR',
r'DEF|0',
r'SEG',
r'USR',
r'DELETE',
r'DIM',
r'DRAW',
r'EDIT',
r'END',
r'ENVIRON',
r'ENVIRON$',
r'EOF',
r'EQV',
r'ERASE',
r'ERDEV',
r'ERDEV$',
r'ERL',
r'ERR',
r'ERROR',
r'EXP',
r'FIELD',
r'FILES',
r'FIX',
r'FOR|0',
r'FRE',
r'GET',
r'GOSUB|10',
r'GOTO',
r'HEX$',
r'IF',
r'THEN',
r'ELSE|0',
r'INKEY$',
r'INP',
r'INPUT',
r'INPUT#',
r'INPUT$',
r'INSTR',
r'IMP',
r'INT',
r'IOCTL',
r'IOCTL$',
r'KEY',
r'ON',
r'OFF',
r'LIST',
r'KILL',
r'LEFT$',
r'LEN',
r'LET',
r'LINE',
r'LLIST',
r'LOAD',
r'LOC',
r'LOCATE',
r'LOF',
r'LOG',
r'LPRINT',
r'USING',
r'LSET',
r'MERGE',
r'MID$',
r'MKDIR',
r'MKD$',
r'MKI$',
r'MKS$',
r'MOD',
r'NAME',
r'NEW',
r'NEXT',
r'NOISE',
r'NOT',
r'OCT$',
r'ON',
r'OR',
r'PEN',
r'PLAY',
r'STRIG',
r'OPEN',
r'OPTION',
r'BASE',
r'OUT',
r'PAINT',
r'PALETTE',
r'PCOPY',
r'PEEK',
r'PMAP',
r'POINT',
r'POKE',
r'POS',
r'PRINT',
r'PRINT]',
r'PSET',
r'PRESET',
r'PUT',
r'RANDOMIZE',
r'READ',
r'REM',
r'RENUM',
r'RESET|0',
r'RESTORE',
r'RESUME',
r'RETURN|0',
r'RIGHT$',
r'RMDIR',
r'RND',
r'RSET',
r'RUN',
r'SAVE',
r'SCREEN',
r'SGN',
r'SHELL',
r'SIN',
r'SOUND',
r'SPACE$',
r'SPC',
r'SQR',
r'STEP',
r'STICK',
r'STOP',
r'STR$',
r'STRING$',
r'SWAP',
r'SYSTEM',
r'TAB',
r'TAN',
r'TIME$',
r'TIMER',
r'TROFF',
r'TRON',
r'TO',
r'USR',
r'VAL',
r'VARPTR',
r'VARPTR$',
r'VIEW',
r'WAIT',
r'WHILE',
r'WEND',
r'WIDTH',
r'WINDOW',
r'WRITE',
r'XOR',
],
},
contains: [
Mode(
scope: r'string',
begin: r'"',
end: r'"|$',
contains: [Mode(begin: r'\\[\s\S]', relevance: 0)],
),
Mode(
scope: r'comment',
begin: r'REM',
end: r'$',
contains: [
Mode(
scope: r'doctag',
begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
excludeBegin: true,
relevance: 0,
),
Mode(
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}",
),
],
relevance: 10,
),
Mode(
scope: r'comment',
begin: r"'",
end: r'$',
contains: [
Mode(
scope: r'doctag',
begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
excludeBegin: true,
relevance: 0,
),
Mode(
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}",
),
],
relevance: 0,
),
Mode(scope: r'symbol', begin: r'^[0-9]+ ', relevance: 10),
Mode(
scope: r'number',
begin: r'\b\d+(\.\d+)?([edED]\d+)?[#!]?',
relevance: 0,
),
Mode(scope: r'number', begin: r'(&[hH][0-9a-fA-F]{1,4})'),
Mode(scope: r'number', begin: r'(&[oO][0-7]{1,6})'),
],
);
}