basic function

Mode basic(
  1. Highlight hljs
)

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})'),
    ],
  );
}