Skip to content

Commit b18be20

Browse files
authored
Add files via upload
Added syntax file.
1 parent 2be98be commit b18be20

1 file changed

Lines changed: 80 additions & 0 deletions

File tree

smartbasic.sublime-syntax

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
%YAML 1.2
2+
---
3+
# Sublime Text syntax file for SmartBASIC language
4+
#
5+
# SmartBASIC is an event-driven language made by Laird Connectivity for their
6+
# family of embedded Bluetooth/BLE modules, e.g. BL65x, BT900, etc.
7+
# See https://www.lairdconnect.com/wireless-modules/bluetooth-modules for details.
8+
#
9+
# This file was generated for BL654 with firmware version 29.5.7.2,
10+
# but can also be used with other modules.
11+
#
12+
#
13+
# See http://www.sublimetext.com/docs/3/syntax.html
14+
# and https://www.sublimetext.com/docs/3/scope_naming.html
15+
name: SmartBASIC
16+
file_extensions: [sb, sblib]
17+
scope: source.smartbasic
18+
19+
contexts:
20+
main:
21+
# Strings begin and end with quotes, and use backslashes as an escape
22+
# character
23+
- match: '"'
24+
scope: punctuation.definition.string.begin.smartbasic
25+
push: double_quoted_string
26+
27+
# Comments begin with a '//' and finish at the end of the line
28+
- match: '//'
29+
# scope: punctuation.definition.comment.smartbasic
30+
scope: comment.line.smartbasic
31+
push: line_comment
32+
33+
# Preprocessor: SmartBASIC preprocessor-like tokens
34+
- match: "(?i)^\\s*(#)\\s*\\b(define|include|set|cmpif|if)\\b"
35+
captures:
36+
1: keyword.control.include.smartbasic
37+
2: keyword.control.include.smartbasic
38+
39+
# Keywords1: SmartBASIC core tokens
40+
- match: '(?i)\b(integer.h|integer.o|integer.b|AS|BP|DO|IF|TO|DIM|FOR|CALL|CASE|ELSE|LONG|NEXT|REDO|STEP|STOP|THEN|BREAK|BYREF|BYVAL|ENDIF|PRINT|ULONG|UNTIL|WHILE|DOWNTO|ELSEIF|SUB|FUNCTION|ENDSUB|SELECT|SPRINT|DISABLE|DOWHILE|ENDFUNC|EXITSUB|ONERROR|ONEVENT|CONTINUE|ENDWHILE|EXITFUNC|ENDSELECT|WAITEVENT|THROWEVENT|ONFATALERROR)\b'
41+
scope: keyword.control.conditional.smartbasic
42+
43+
# Keywords2: SmartBASIC functions
44+
- match: '(?i)\b(STRLEN|GETLASTERROR|STRPOS|MIN|MAX|ABS|STRCMP|STRVALDEC|STRGETCHR|STRSETCHR|STRSETBLOCK|TABLEINIT|TABLEADD|TABLELOOKUP|NVRECORDGET|NVRECORDGETEX|NVRECORDSET|STRFILL|SYSINFO|EXITCODE|STRHEX2BIN|STRSUM|STRXOR|CIRCBUFCREATE|CIRCBUFWRITE|CIRCBUFOVERWRITE|CIRCBUFREAD|CIRCBUFITEMS|EXTRACTSTRTOKEN|EXTRACTINTTOKEN|NVCFGKEYGET|NVCFGKEYSET|TIMERRUNNING|TIMERIOCTL|UARTOPEN|UARTINFO|UARTWRITE|UARTREAD|UARTREADN|UARTREADMATCH|UARTGETCTS|UARTCLOSEEX|FOPEN|FSEEK|FTELL|FILELEN|FREAD|FREADUNTIL|EXTRACTFLOATTOKEN|EXP|LOG|LOG10|SQRT|SIN|COS|TAN|ASIN|ACOS|ATAN|CEIL|FLOOR|FABS|FMOD|ISNAN|ISINF|ISFINITE|SINH|COSH|TANH|ASINH|ACOSH|ATANH|POW|ROUND|PI|STRENCODE8|STRDECODES8|STRDECODEU8|STRENCODE16|STRDECODES16|STRDECODEU16|STRENCODE24|STRDECODES24|STRDECODEU24|STRENCODE32|STRDECODE32|STRENCODEFLOATEX|STRDECODEFLOATEX|STRENCODESFLOATEX|STRDECODESFLOATEX|STRENCODESFLOATI|STRENCODETIMESTAMP|STRDECODETIMESTAMP|STRENCODEBITS|STRDECODEBITS|STRENCODESTRING|STRDECODESTRING|STRENCODEFLOAT|STRDECODEFLOAT|QSPIACTIVECONFIGGET|SETPWRSUPPLYTHRESHMV|SYSTEMSTATESET|READPWRSUPPLYMV|ERASEFILESYSTEM|SETREGOUT0|GETREGOUT0|SENDMSGAPP|RAND|RANDEX|GETTICKCOUNT|GETTICKSINCE|UARTIOCTL|BLESETADDRESSTYPE|BLESETADDRESSTYPEEX|BLEGAPSVCINIT|BLEADVRPTINIT|BLESCANRPTINIT|BLESETCURCONNPARMS|BLEGETCURCONNPARMS|BLEGETCURCONNSECINFO|BLEOVERWRITEBOND|BLEATTRMETADATA|BLEATTRMETADATAEX|BLECHARNEW|BLECHARDESCUSERDESC|BLECHARDESCPRSTNFRMT|BLECHARDESCADD|BLECHARCOMMIT|BLESERVICENEW|BLESERVICECOMMIT|BLESVCADDINCLUDESVC|BLEAUTHORIZECHAR|BLEAUTHORIZEDESC|BLECHARVALUEWRITE|BLECHARVALUENOTIFY|BLECHARVALUEINDICATE|BLECHARVALUEREAD|BLECHARDESCREAD|BLEENCODE8|BLEDECODES8|BLEDECODEU8|BLEENCODE16|BLEDECODES16|BLEDECODEU16|BLEENCODE24|BLEDECODES24|BLEDECODEU24|BLEENCODE32|BLEDECODE32|BLEENCODEFLOAT|BLEDECODEFLOAT|BLEENCODESFLOAT|BLEENCODESFLOATEX|BLEDECODESFLOAT|BLEENCODETIMESTAMP|BLEDECODETIMESTAMP|BLEENCODEBITS|BLEDECODEBITS|BLEENCODESTRING|BLEDECODESTRING|BLEHANDLEUUID16|BLEHANDLEUUID128|BLEUUIDFROMHANDLE|BLEHANDLEUUIDSIBLING|BLEADVRPTADDUUID128|BLEGETADBYINDEX|BLEGETADBYTAG|BLESERVICECHANGEDNTFY|BLEGETCONNHANDLEFROMADDR|BLEGETADDRFROMCONNHANDLE|BLEGETCONNHANDLEFROMRESOLVEDADDR|BLEGETRESOLVEDADDRFROMCONNHANDLE|BLEADVRPTADDUUID16|BLEADVRPTSCOMMIT|BLESVCREGDEVINFO|BLECONNMNGRUPDCFG|BLESECMNGRJUSTWORKSCONF|BLESECMNGRKEYSIZES|BLESECMNGRIOCAP|BLESECMNGRBONDREQ|BLESECMNGRPAIRCONF|BLESECMNGRAUTHFAILPREF|BLESECMNGRLESCPAIRINGPREF|BLESECMNGRLESCKEYPRESSENABLE|BLESECMNGRLESCKEYPRESSNOTIFY|BLEADVRPTAPPENDAD|BLEADVERTCONFIG|BLEADVERTSTART|BLEADVERTSTOP|BLEAUTHENTICATE|BLEPAIR|BLEPAIREX|BLEPAIRINGINFO|BLEPAIRINGRESPONSE|BLEENCRYPTCONNECTION|BLETXPOWERSET|BLETXPWRWHILEPAIRING|BLETXPOWERGET|BLESECMNGRPASSKEY|BLEACCEPTPAIRING|BLEDISCONNECT|BLEADVRPTGETSPACE|BLESVCCOMMIT|BLESECMNGROOBKEY|BLESECMNGROOBPREF|BLESECMNGROOBAVAILABLE|BLESECMNGRLESCOWNOOBDATAGET|BLESECMNGRLESCPEEROOBDATASET|BLEVSPOPEN|BLEVSPOPENEX|BLEVSPINFO|BLEVSPWRITE|BLEVSPREAD|BLEGATTCOPEN|BLEDISCSERVICEFIRST|BLEDISCSERVICENEXT|BLEDISCCHARFIRST|BLEDISCCHARNEXT|BLEDISCDESCFIRST|BLEDISCDESCNEXT|BLEGATTCFINDCHAR|BLEGATTCFINDDESC|BLEGATTCREAD|BLEGATTCREADDATA|BLEGATTCWRITE|BLEGATTCWRITECMD|BLEGATTCNOTIFYREAD|BLECONNECTCONFIG|BLECONNECT|BLECONNECTCANCEL|BLESCANCONFIG|BLESCANSTART|BLESCANFLUSH|BLESCANABORT|BLESCANSTOP|BLESCANGETADVREPORT|BLESCANGETPAGERADDR|BLESCANGETADVREPORTEX|BLEBONDINGSTATS|BLEBONDINGERASEKEY|BLEBONDINGERASEALL|BLEBONDINGPERSISTKEY|BLEBONDINGISTRUSTED|BLEBONDMNGRGETINFO|BLEBONDMNGRERASE|BLEBONDINGADDLESC|BLEBONDINGLOADCCCDS|BLEBONDINGSAVECCCDS|BLEBONDINGGETBYADDRLESC|BLEBONDINGGETBYEDIVLESC|BLEBONDINGGETLESC|BLEWHITELISTCREATE|BLEWHITELISTCLEAR|BLEWHITELISTADDADDR|BLEWHITELISTADDINDEX|BLEWHITELISTINFO|BLEWHITELISTSETFILTER|I2COPEN|I2COPENEX|I2CWRITEREAD|I2CWRITEREG8|I2CWRITEREG16|I2CWRITEREG32|I2CREADREG8|I2CREADREG16|I2CREADREG32|SPIOPEN|SPIREADWRITE|SPIWRITE|SPIREAD|QSPIOPEN|QSPICLOSE|QSPICONFIGSET|QSPICONFIGGET|QSPIWRITE|QSPIREAD|QSPIERASE|QSPICUSTOMCOMMAND|QSPISETPOWERMODE|QSPIINFO|QSPIMEMORYSIZE|QSPIISBUSY|QSPIDPMSET|QSPIISDPM|QSPIRESET|CRC16GENERATE|CRC32GENERATE|HASHGENERATE|AESSETKEYIV|AESENCRYPT|AESDECRYPT|ECCGENERATEPUBPRVKEYS|ECCCALCSHAREDSECRET|ECCHMACSHA256|GPIOCONFIGPWM|GPIOSETFUNC|GPIOREAD|GPIOBINDEVENT|GPIOUNBINDEVENT|GPIOASSIGNEVENT|GPIOUNASSIGNEVENT|GPIOSETFUNCEX|BLECONNRSSISTART|BLECONNRSSISTOP|FLASHOPEN|FLASHREAD|FLASHWRITE|FLASHERASE|NFCHARDWARESTATE|NFCOPEN|NFCFIELDSENSE|NFCNDEFMSGNEW|NFCNDEFMSGDELETE|NFCNDEFMSGCOMMIT|NFCNDEFMSGGETINFO|NFCNDEFMSGRESET|NFCNDEFRECADDLEOOB|NFCNDEFRECADDGENERIC|BLEMAXPACKETLENGTHGET|BLEGATTCATTRIBUTEMTUREQUEST|BLEGATTCWRITEPREPARE|BLEGATTCWRITEEXEC|BLEPINGAUTHTIMEOUT|BLECHARVALUEWRITEEX|BLECHANNELMAP|BLEGETCHANNELMAP|SPISLAVEOPEN|SPISLAVECLOSE|SPISLAVETXBUFFERWRITE|SPISLAVERXBUFFERREAD|SPISLAVECONFIG|AUXOPEN|AUXINFO|AUXWRITE|AUXREAD|AUXREADN|AUXREADMATCH|AUXGETCTS|AUXCLOSEEX|AUXIOCTL|WDTSTART|WDTRESET|WDTISRUNNING|BLEPHYSET|BLEADVSETCREATE|BLEADVSETNEWDATA|BLEADVSETSTART|BLEADVSETSTOP|BLESCANSTARTEX|BLEEXTRPTMETADATA|BLECONNECTEXTENDED|BLEEXTADVRPTAPPENDAD|BLEEXTADVRPTGETSPACE|BLEEXTADVRPTADDUUID16|BLEEXTADVRPTADDUUID128|BLEPAIRINGSTATICPASSKEY)\b'
45+
scope: entity.name.function.smartbasic
46+
47+
# Keywords3: SmartBASIC function ending on '$'
48+
- match: "(?i)\\b(LEFT|RIGHT|MID|STRESCAPE|STRESCAPEEX|SYSINFO|STRHEXIZE|STRDEHEXIZE|STRSPLITLEFT|VERBOSEERR|BLEGETADVERTISINGADDRESS|BLEGETDEVICENAME)\\b\\s*(\\$)\\s*"
49+
captures:
50+
1: entity.name.function.smartbasic
51+
2: entity.name.function.smartbasic
52+
53+
# Keywords3: SmartBASIC subroutines
54+
- match: '(?i)\b(RESETLASTERROR|STRDEESCAPE|STRSHIFTLEFT|CIRCBUFDESTROY|STRMOVE|STREXCHANGE|TIMERSTART|TIMERCANCEL|UARTCLOSE|UARTSETRTS|UARTBREAK|UARTFLUSH|FCLOSE|BLECONFIGDCDC|BLECONFIGHFCLOCK|BLEVSPCLOSE|BLEVSPFLUSH|BLEVSPUARTBRIDGE|BLEGATTCCLOSE|SPICLOSE|GPIOWRITE|AUXCLOSE|AUXSETRTS|AUXBREAK|AUXFLUSH|RESET|ASSERTBL652|ASSERTBL653|ASSERTBL654|RANDSEED|BLEWHITELISTDESTROY|I2CCLOSE|FLASHCLOSE|NFCCLOSE)\b'
55+
scope: entity.name.function.smartbasic
56+
57+
# Keywords4: SmartBASIC event and message ids
58+
- match: '(?i)\b(EVTMR0|EVTMR1|EVTMR2|EVTMR3|EVTMR4|EVTMR5|EVTMR6|EVTMR7|EVAUXRX|EVVSPRX|EVAUXCTS|EVUARTRX|EVUARTCTS|EVAUXBREAK|EVGPIOCHAN0|EVGPIOCHAN1|EVGPIOCHAN2|EVGPIOCHAN3|EVGPIOCHAN4|EVGPIOCHAN5|EVGPIOCHAN6|EVGPIOCHAN7|EVNOTIFYBUF|EVUARTBREAK|EVVSPRXOVRN|EVATTRNOTIFY|EVAUXTXEMPTY|EVVSPTXEMPTY|EVDETECTCHAN0|EVUARTTXEMPTY|EVBLE_ADV_REPORT|EVBLE_FAST_PAGED|EVBLE_ADV_TIMEOUT|EVBLE_EXTADVNOMEM|EVBLE_CONN_TIMEOUT|EVBLE_SCAN_ABORTED|EVBLE_SCAN_TIMEOUT|EVBLE_EXTADVDROPPED|EVNFC|EVBLEMSG|EVDISCON|EVMSGAPP|EVAUTHVAL|EVCHARHVC|EVCHARVAL|EVATTRREAD|EVAUTHCCCD|EVAUTHDESC|EVAUTHSCCD|EVCHARCCCD|EVCHARDESC|EVCHARSCCD|EVCONNRSSI|EVDISCCHAR|EVDISCDESC|EVFINDCHAR|EVFINDDESC|EVATTRWRITE|EVAUTHVALEX|EVCHARVALUE|EVGATTCTOUT|EVQSPIERASED|EVBLEAUTHINFO|EVBLE_AUTHKEY|EVBLE_PASSKEY|EVDISCPRIMSVC|EVATTRIBUTEMTU|EVATTRNOTIFYEX|EVCONNPARAMREQ|EVLESCKEYPRESS|EVPACKETLENGTH|EVSPISLAVETXRX|EVBLESECREQUEST|EVBLE_EXTADV_END|EVBLE_EXTADV_RPT|EVBLE_EXTSCN_RPT|EVTXPOWERLIMITED|EVBLE_PHY_REQUEST|EVBLE_PHY_UPDATED|EVBLEOVERWRITEBOND|EVPACKETLENGTHLIMITED|EVSPISLAVERXBUFFERFULL|EVBLE_PING_AUTH_TIMEOUT|EVSPISLAVETXBUFFEREMPTY|EVSPISLAVEBUFFERCONFIGURED|EVBLE_EXTADV_RPT_INCOMPLETE)\b'
59+
scope: constant.language.smartbasic
60+
61+
# Keywords4: SmartBASIC variable types
62+
- match: '(?i)\b(STRING|INTEGER|FLOAT)\b'
63+
scope: storage.type.smartbasic
64+
65+
# Numbers
66+
- match: '\b(-)?[0-9.]+\b'
67+
scope: constant.numeric.smartbasic
68+
69+
double_quoted_string:
70+
- meta_scope: string.quoted.double.smartbasic
71+
- match: '\\.'
72+
scope: constant.character.escape.smartbasic
73+
- match: '"'
74+
scope: punctuation.definition.string.end.smartbasic
75+
pop: true
76+
77+
line_comment:
78+
- meta_scope: comment.line.smartbasic
79+
- match: $
80+
pop: true

0 commit comments

Comments
 (0)