-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathjBASE.tmLanguage.json
48 lines (48 loc) · 3.98 KB
/
jBASE.tmLanguage.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "jBASE PickBASIC",
"patterns": [{
"match": "'.*?'|\".*?\"|\\\\.*?\\\\",
"name": "string.other.quoted-or-unquoted.jbase"
},
{
"match": "^\\s*([\\w.]+:(?!=)|[0-9.]+)",
"name": "string.other.quoted-or-unquoted.jbase"
},
{
"include": "#keywords"
}
],
"repository": {
"keywords": {
"patterns": [{
"name": "keyword.control.jbase",
"match": "(?i)(?<![\\w\\$\\.])(ABORT|AND|BEGIN CASE|BREAK|BSCAN|BY|CALL|CALLING|CAPTURING|CASE|CHAIN|CHANGE|CLEAR|CLEARCOMMON|CLEARDATA|CLEARFILE|CLEARINPUT|CLEARSELECT|CLOSE|CLOSESEQ|COM|COMMON|CONTINUE|CONVERT|CREATE|CRT|DATA|DEBUG|DEFC|DEFCE|DEFFUN|DEL|DELETE|DELETELIST|DELETESEQ|DELETEU|DIM|DIMENSION|DISPLAY|DO|ECHO|ELSE|END|END CASE|EQU|EQUATE|ERROR|EXECUTE|EXIT|FILELOCK|FILEUNLOCK|FIND|FINDSTR|FOOTING|FOR|FORMLIST|FROM|FUNCTION|GET|GETLIST|GO|GOSUB|GOTO|GROUPSTORE|HEADING|HEADINGE|HEADINGN|HUSH|IF|INCLUDE|\\$INCLUDE|INPUT|INPUTCLEAR|INPUTNULL|INS|ITYPE|LOCATE|LOCK|LOCKED|LOOP|MAT|MATBUILD|MATPARSE|MATREAD|MATREADU|MATWRITE|MATWRITEU|NEXT|NOBUF|NULL|OFF|OPEN|OPENDEV|OPENINDEX|OPENPATH|OPENSEQ|OPENSER|OR|OSBREAD|OSBWRITE|OSCLOSE|OSDELETE|OSOPEN|OSREAD|OSWRITE|OUT|PAGE|PASSLIST|PAUSE|PERFORM|PRECISION|PRINT|PRINTER|PRINTERR|PROCREAD|PROCWRITE|PROGRAM|PROMPT|READ|READBLK|READLIST|READNEXT|READNEXT KEY|READPREV KEY|READSEQ|READT|READU|READV|READVU|READXML|RELEASE|REMOVE|REPEAT|RESET|RETURN|RETURNING|REWIND|RQM|RTNDATA|RTNLIST|SEEK|SELECT |SELECTE|SELECTINDEX|SELECTN|SELECTV|SEND|SENDX|SETTING|SLEEP|SSELECT|STATUS|STEP|STOP|STOPE|STOPM|SUBR|SUBROUTINE|THEN|TO|TRANSABORT|TRANSEND|TRANSQUERY|TRANSSTART|UNLOCK|UNTIL|USING|WEOFSEQ|WHILE|WITH|WORK|WRITE|WRITEBLK|WRITELIST|WRITESEQ|WRITET|WRITEU|WRITEV|WRITEVU|WRITEXML)(?![\\.\\$])\\b"
},
{
"name": "constant.language.jbase",
"match": "(?i)(\\s)(EQ|NE|GT|LT|GE|LE)|(@[a-zA-Z.]+)(\\s)"
},
{
"name": "support.class.jbase",
"match": "(?I)(?<![\\w\\$\\.])(KEY|ABS|ABSS|ADDS|ALPHA|ANDS|ASCII|ASSIGNED|BITAND|BITCHANGE|bitcheck|BITLOAD|BITNOT|BITOR|BITRESET|BITSET|BITTEST|BITXOR|BYTELEN|CALLONEXIT|CATS|CHANGE|CHAR|CHARS|CHDIR|CHECKSUM|COL1|COL2|COMPARE|CONVERT|COUNT|COUNTS|DATE|DCOUNT|DECRYPT|DIR|DIV|DIVS|DOWNCASE|DQUOTE|DROUND|DTX|EBCDIC|ENCRYPT|EREPLACE|EXP|EXTRACT|EQS|FADD|FDIV|FIELD|FIELDS|FILEINFO|FILELOCK|FILEUNLOCK|FMT|FMTS|FMUL|FOLD|FSUB|GES|GETCWD|GETENV|GROUP|ICONV|ICONVS|IFS|INDEX|INDICES|INMAT|\\$INSERT|INSERT|INT|IOCTL|ISALPHA|ISALNUM|ISCNTRL|ISDIGIT|ISLOWER|ISPRINT|ISSPACE|ISUPPER|JBASECOREDUMP|KEYIN|LEFT|LEN|LENS|LENDP|LES|LN|LOCALDATE|LOCALTIME|LOWCASE|LOWER|MAKETIMESTAMP|MAXIMUM|MATCH|MATCHES|MATCHFIELD|MINIMUM|MOD|MODS|MSLEEP|MULS|NEG|NEGS|NES|NOT|NOTS|NUM|OCONV|OCONVS|ORS|PUTENV|PWR|QUOTE|RAISE|RECORDLOCKED|REGEXP|REMOVE|REPLACE|REM|REMOVE|RIGHT|RND|REUSE|SADD|SDIV|SENTENCE|SEQ|SEQS|SIN|SMUL|SORT|SOUNDEX|SPACE|SPACES|SPLICE|SQRT|SQUOTE|SSUB|STATUS|STR|STRS|SUBR|SUBS|SUBSTRINGS|SUM|SUMMATION|SWAP|SYSTEM|TIME|TIMEDATE|TIMEDIFF|TIMEOUT|TIMESTAMP|TRANS|TRIM|TRIMB|TRIMBS|TRIMF|TRIMFS|TRIMS|UNASSIGNED|UNIQUEKEY|UPCASE|UTF8|XTD)(?![\\.\\$])\\b"
},
{
"comment": "start of line comment",
"name": "comment.line.asterisk.jbase",
"match": "^\\s*(\\!|\\*|(?i)REM\\s).*$"
},
{
"comment": "inline comment; after label or code",
"name": "comment.line.asterisk.jbase",
"match": "(?<=(;|^\\w+:|^\\d+))\\s*(\\!|\\*|(?i)REM\\s).*$"
},
{
"name": "constant.language.jbase",
"match": "(\\+|\\-|\\*|\\\\|=|:|#)"
}
]
}
},
"scopeName": "source.mvbasic"
}