source: node_modules/highlight.js/lib/languages/basic.js@ 65b6638

main
Last change on this file since 65b6638 was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/*
2Language: BASIC
3Author: Raphaël Assénat <raph@raphnet.net>
4Description: Based on the BASIC reference from the Tandy 1000 guide
5Website: https://en.wikipedia.org/wiki/Tandy_1000
6*/
7
8/** @type LanguageFn */
9function basic(hljs) {
10 return {
11 name: 'BASIC',
12 case_insensitive: true,
13 illegal: '^\.',
14 // Support explicitly typed variables that end with $%! or #.
15 keywords: {
16 $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*',
17 keyword:
18 'ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE ' +
19 'CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ ' +
20 'DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ ' +
21 'EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO ' +
22 'HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON ' +
23 'OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET ' +
24 'MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION ' +
25 'BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET ' +
26 'PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET ' +
27 'RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP ' +
28 'SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE ' +
29 'WEND WIDTH WINDOW WRITE XOR'
30 },
31 contains: [
32 hljs.QUOTE_STRING_MODE,
33 hljs.COMMENT('REM', '$', {
34 relevance: 10
35 }),
36 hljs.COMMENT('\'', '$', {
37 relevance: 0
38 }),
39 {
40 // Match line numbers
41 className: 'symbol',
42 begin: '^[0-9]+ ',
43 relevance: 10
44 },
45 {
46 // Match typed numeric constants (1000, 12.34!, 1.2e5, 1.5#, 1.2D2)
47 className: 'number',
48 begin: '\\b\\d+(\\.\\d+)?([edED]\\d+)?[#\!]?',
49 relevance: 0
50 },
51 {
52 // Match hexadecimal numbers (&Hxxxx)
53 className: 'number',
54 begin: '(&[hH][0-9a-fA-F]{1,4})'
55 },
56 {
57 // Match octal numbers (&Oxxxxxx)
58 className: 'number',
59 begin: '(&[oO][0-7]{1,6})'
60 }
61 ]
62 };
63}
64
65module.exports = basic;
Note: See TracBrowser for help on using the repository browser.