Skip to content

Commit

Permalink
Refine highlight of functions, switches and keywords
Browse files Browse the repository at this point in the history
  • Loading branch information
KnoP-01 committed Mar 24, 2023
1 parent 031ddee commit 72f36e8
Showing 1 changed file with 93 additions and 38 deletions.
131 changes: 93 additions & 38 deletions syntax/kawasaki_as.vim
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
" Language: Kawasaki AS-language
" Maintainer: Patrick Meiser-Knosowski <[email protected]>
" Version: 1.0.1
" Last Change: 23. Mar 2023
" Last Change: 24. Mar 2023
"
" Note to self:
" for testing perfomance
Expand Down Expand Up @@ -30,7 +30,11 @@ if !get(g:, "asGroupName", 0)
let g:asGroupName = 0
endif

" AS does ignore case
syn case ignore
" take . into keyword (syntax only)
syn iskeyword @,48-57,_,192-255,#,$,.,/
" spell checking
syn spell notoplevel
" }}} init

Expand Down Expand Up @@ -63,22 +67,24 @@ syn keyword asBoolOperator AND OR XOR NAND NOT BAND BOR BXOR
highlight default link asBoolOperator Operator
" Arithmetic operator
syn match asArithOperator /[+-]/
syn match asArithOperator /[*/]/
syn match asArithOperator /[*/^]/
highlight default link asArithOperator Operator
" Compare operator
syn match asCompOperator /[<>=]/
highlight default link asCompOperator Operator
" }}} Operator

" Delimiter {{{
syn match asDelimiter /[#$&:\[\](),\\]/
syn match asDelimiter /[:\[\](),\\]/
highlight default link asDelimiter Delimiter
" }}} Delimiter

" Constant values {{{
" General
syn keyword asConstValue NULL PI
highlight default link asConstValue Constant
" Boolean
syn keyword asBoolean NULL
syn keyword asBoolean FALSE OFF ON TRUE
syn keyword asBoolean ON OFF TRUE FALSE
highlight default link asBoolean Boolean
" Binary integer
syn match asBinaryInt /^b[01]\+'/
Expand All @@ -97,7 +103,33 @@ syn region asString start=/"/ end=/"/ oneline contains=@Spell
highlight default link asString String
" }}} Constant values

" Predefined Structure {{{
" Predefined structures and switches {{{
syn keyword asSwitches ABS.SPEED AFTER.WAIT.TMR AUTOSTART.LSQ
syn keyword asSwitches CBS_AUXTOOL1 CBS_BASE CBS_REFLECT_CBSTOOL CBS_TOOLCHG
syn keyword asSwitches CHECK.HOLD COINC_DISPONCE_CHK CONF_VARIABLE CP CS CVMOVE.NOBREAK CYCLE.STOP
syn keyword asSwitches DEST_CIRINT DISP.EXESTEP DISPIO_01 DIVIDE.TPKEY_S
syn keyword asSwitches EB2MATCIRC EBMATCIRC ERROR ERROUT_TEACH ERRSTART.PC
syn keyword asSwitches FB_DISCON_ERR FB_UNSIGNED_WORD FLEXCOMP FLOWRATE FLOWRATE2 FLOWRATE3 FLOWRATE4
syn keyword asSwitches HOLD.STEP
syn keyword asSwitches IFAKEY INSERTSTEP_CURRENT INSERT_NO_CONFIRM INTERP_FTOOL INVALID.TPKEY_S
syn keyword asSwitches KANJI_DISPLAY KLGCNT_SAVE
syn keyword asSwitches LIST_VERTICAL LOCAL_VAR_DISP
syn keyword asSwitches MESSAGES MODIFYSTEP_CURRENT
syn keyword asSwitches NOPENABLE NO_SJISCONV
syn keyword asSwitches OPELV_RESET OUT_RPSCODE_MAINPG OVERDRIVE_NOBREAK OX.PREOUT OXZERO
syn keyword asSwitches PCENDMSG_MASK PGFILE_AUTO_RECOVER PGNAME_DISP PLC.CHECK
syn keyword asSwitches PNL_CYCST PNL_ERESET PNL_MPOWER
syn keyword asSwitches POWER PREFETCH.SIGINS PREOUTSIG.VAR PROG.CYC PROG.DATE
syn keyword asSwitches QTOOL
syn keyword asSwitches RECORD_NO_CONFIRM REPEAT REP_ONCE REP_ONCE.RPS_LAST REP_SINGULAR RGSO RPS RUN
syn keyword asSwitches SCREEN SF_OPEN_ERROR SIGMON_TEACH SIGRSTCONF SINGULAR SLOW_REP_MM SLOW_START STAT_ON_KYBD STP_ONCE
syn keyword asSwitches TCH_SINGULAR TEACH_LOCK TOUCH.ENA TOUCHST.ENA TPKEY_A TPKEY_S TPSPEED.RESET TREND_MANAGER TRIGGER
syn keyword asSwitches UDP_EMSG UDP_SEND_NOBIND USE_ISO8859_5
syn keyword asSwitches VISION_OPERATE
syn keyword asSwitches WAITREL_AUTO
syn keyword asSwitches WS.ZERO WS_COMPOFF
highlight default link asSwitches Structure
" stuff from KIDE
syn keyword asStructure ADC
syn keyword asStructure CNTADC
syn keyword asStructure COLCALOFF COLCALON COLCOLDOFF COLCOLDON COLINIT COLMVOFF COLMVON COLR COLRJ COLRJOFF COLRJON COLROFF COLRON COLSTATE COLT COLTJ COLTJOFF COLTJON COLTOFF COLTON
Expand All @@ -106,52 +138,58 @@ syn keyword asStructure DAOFFSET OUTDA
syn keyword asStructure PMODEND PMODLIMIT PMODPRINTDATA PMODSTART PMODTXYZ PMODXYZ PMOD_LINSP PMOD_ROTSP
syn keyword asStructure SETCCVSLOPE SETCOLTHID SETLCVSLOPE SETOUTDA SIGAPPRO SIGDEPART SIGPOINT
syn keyword asStructure TCP_ACCEPT TCP_CLOSE TCP_CONNECT TCP_END_LISTEN TCP_ISLINK TCP_LISTEN TCP_RECV TCP_SEND TCP_STATUS
syn keyword asStructure TRQNM
syn keyword asStructure UDP_RECVFROM UDP_SENDTO
syn keyword asStructure ZCNTUP
syn keyword asStructure CBS_TOOLCHG CBS_AUXTOOL1 CBS_BASE
highlight default link asStructure Structure
" }}} Predefined Structure and Enum

" Statements, keywords et al {{{
" keywords
syn keyword asStatement ABORT ABOVE ABS.SPEED ABS ABSDRIVE ACCEL ACCEPT ACCURACY AFTER.WAIT.TMR ALIGN ALLERESET ALLROB_SPSET ALONE ALWAYS ASC ATAN2 AVE_TRANS
syn keyword asStatement AUTOSTART.PC AUTOSTART2.PC AUTOSTART3.PC AUTOSTART4.PC AUTOSTART5.PC AUTOSTART6.PC AUTOSTART7.PC AUTOSTART8.PC
syn keyword asStatement BASE BATCHK BELOW BITS BITS32 BREAK BSPEED BY
syn keyword asStatement CALL CBSMON_EXTDISABLE CBSMON_EXTENABLE CBSMON_SETDEVICE CCENTER CHECK.HOLD CHSUM CLAMP CLOSE CLOSEI CLOSES CM/MIN CM/S COM CONF_VARIABLE CONTINUE COOP.DRIVE.EX1 COOP.DRIVE.EX2 COOPSTATUS COPY COS CP CS CSHIFT CURLIM CURLIMM CURLIMP CVRESETSIG_DELAY CYCLE.STOP
syn keyword asStatement DECEL DECMPCOLR DECMPCOLRJ DECOMPOSE DEFSIG DEG/MIN DEG/S DELAY DELETE DEST DEST_CIRINT DEXT DIRECTORY DISP.EXESTEP DISPIO_01 DISTANCE DIVIDE.TPKEY_S DLYSIG DRAW DRIVE DWRIST DX DY DZ
syn keyword asStatement EDIT ENA_TOOLSHAPE ENC_TEMP ENCCHK_EMG ENCCHK_PON ENV_DATA ENV2_DATA ENVCHKRATE ERESET ERR_ALLROBSTOP ERRLOG ERROR ERRSTART.PC EXECUTE EXTCALL
syn keyword asStatement EXISTCHAR EXISTDATA EXISTINTEGER EXISTJOINT EXISTLOCALCHAR EXISTLOCALINTEGER EXISTLOCALJOINT EXISTLOCALREAL EXISTLOCALTRANS EXISTPGM EXISTREAL EXISTTRANS
syn keyword asStatement FB_PORT_ASSIGN FB_RESET_ABCC FB_S_CCL FB_SET_WORD FB_SIG_ORDER FFRESET FFSET FFSET_STATUS FINE FLOWRATE FRAME FREE
syn keyword asStatement GETENCTEMP GETLLMIT GETULIMIT GUNOFF GUNOFFTIMER GUNON GUNONTIMER
syn keyword asStatement HALT HELP/DO HELP/F HELP/MC HELP/M HELP/PPC HELP/P HELP/SW HELP HERE HOLD HOLD.STEP HOME HSENSE HSENSESET HSETCLAMP
syn keyword asStatement ID IFAKEY IFPDISP IFPLABEL IFPTITLE IFPWOVERWRITE IFPWPRINT IGNORE INPUT INRANGE INS_POWER INSERT_NO_CONFIRM INSTR INT INTERP_FTOOL INTFCHK INVALID.TPKEY_S IO IPEAKCLR IPEAKLOG IQARM
syn keyword asStatement ABORT ABOVE ABSDRIVE ACCEL ACCEPT ACCURACY ALLERESET ALLROB_SPSET ALONE ALWAYS
syn keyword asStatement BATCHK BELOW BREAK BSPEED BY
syn match asStatement /\c\v^\s*BASE>/
syn match asStatement /\c\v^\s*BITS>/
syn match asStatement /\c\v^\s*BITS32>/
syn keyword asStatement CALL CBSMON_EXTDISABLE CBSMON_EXTENABLE CBSMON_SETDEVICE CHSUM CLAMP CLOSE CLOSEI CLOSES CM/MIN CM/S COM CONTINUE COOP.DRIVE.EX1 COOP.DRIVE.EX2 COOPSTATUS COPY CURLIM CVRESETSIG_DELAY
syn keyword asStatement DECEL DECMPCOLR DECMPCOLRJ DECOMPOSE DEFSIG DEG/MIN DEG/S DELAY DELETE DIRECTORY DLYSIG DRAW DWRIST
syn keyword asStatement EDIT ENA_TOOLSHAPE ENC_TEMP ENCCHK_EMG ENCCHK_PON ENV_DATA ENV2_DATA ERESET ERR_ALLROBSTOP ERRLOG EXECUTE EXTCALL
syn match asStatement /\c\v^\s*ENVCHKRATE>/
syn keyword asStatement FB_PORT_ASSIGN FB_RESET_ABCC FB_S_CCL FB_SET_WORD FB_SIG_ORDER FFRESET FFSET FFSET_STATUS FINE FREE
syn keyword asStatement GETLLMIT GETULIMIT GUNOFF GUNOFFTIMER GUNON GUNONTIMER
syn keyword asStatement HALT HELP HELP/DO HELP/F HELP/M HELP/MC HELP/P HELP/PPC HELP/SW HOLD HOME HSENSE HSENSESET HSETCLAMP
syn match asStatement /\c\v^\s*HERE>/
syn keyword asStatement ID IFPDISP IFPLABEL IFPTITLE IFPWOVERWRITE IFPWPRINT IGNORE INPUT INS_POWER INTFCHK IO IO/E IPEAKCLR IPEAKLOG
syn keyword asStatement JUMP
syn keyword asStatement KILL
syn keyword asStatement L3ACCURACY L3ARMSLOWMODE L3ARMSLOWRATE L3ARMSLOWSET L3JNT L3LINKSLOWMODE L3LINKSLOWRATE L3LINKSLOWSET L3SPEED L3TOOL L3TRN
syn keyword asStatement LANGUAGE LEFTY LEN LIST LLIMIT LOAD/F LOAD/Q LOAD LOCK LSTRACE
syn keyword asStatement MASTER MAXINDEX MAXVAL MC MESSAGES MHERE MININDEX MINVAL MM/MIN MM/S MNTINFOGET MOD MON_SPEED MON_TWAIT MSPEED MSPEED2 MSTEP MVWAIT
syn keyword asStatement NCHOFF NCHON NEXT NLOAD NO_SJISCONV NOEXIST_SET_L NOEXIST_SET_R NOEXIST_SET_S
syn keyword asStatement ONE ONI OPEINFO OPEINFOCLR OPEN OPENI OPENS OPLOG OUTDA OUTPUT OX.PREOUT OXZERO
syn keyword asStatement PALMODE PAUSE PCABORT PCCONTINUE PCEND PCENDMSG_MASK PCEXECUTE PCKILL PCSCAN PCSTATUS PCSTEP PI PLCAIN PLCAOUT PNL_CYCST PNL_ERESET PNL_MPOWER POWER PREFETCH.SIGINS PRIME PRINT PRIORITY PROG.DATE PROMPT PULSE
syn keyword asStatement LANGUAGE LEFTY LIST LIST/P LIST/L LIST/R LIST/S LLIMIT LOAD/F LOAD/Q LOAD LOCK LSTRACE
syn keyword asStatement MASTER MC MHERE MM/MIN MM/S MNTINFOGET MOD MON_TWAIT MSTEP MVWAIT
syn keyword asStatement NCHOFF NCHON NEXT NLOAD NOEXIST_SET_L NOEXIST_SET_R NOEXIST_SET_S
syn keyword asStatement ONE ONI OPEINFO OPEINFOCLR OPEN OPENI OPENS OPLOG OUTDA OUTPUT
syn keyword asStatement PALMODE PAUSE PCABORT PCCONTINUE PCEND PCEXECUTE PCKILL PCSCAN PCSTATUS PCSTEP PLCAIN PLCAOUT PRIME PRINT PROMPT PULSE
syn keyword asStatement POINT/10 POINT/11 POINT/12 POINT/13 POINT/14 POINT/15 POINT/16 POINT/17 POINT/18 POINT/7 POINT/8 POINT/9 POINT/A POINT/EXT POINT/OAT POINT/O POINT/T POINT/X POINT/Y POINT/Z POINT
syn keyword asStatement QTOOL
syn keyword asStatement RANDOM REC REC_ACCEPT REFFLTRESET REFFLTSET REFFLTSET_STATUS RELAX RELAXI RELAXS RENAME REP_ONCE REP_ONCE.RPS_LAST REPEAT REPEAT RESET RESTRACE RETURN RETURNE RGSO RIGHTY ROBNET_TCHMASTER ROBNETID ROBNETROBOT ROBNETSIG ROUND RPS RSIGCORRECT RSIGPOINT RSIGRANGE RUN RUNMASK RX RY RZ
syn keyword asStatement REC REC_ACCEPT REFFLTRESET REFFLTSET REFFLTSET_STATUS RELAX RELAXI RELAXS RENAME RESET RESTRACE RETURN RETURNE RIGHTY
syn keyword asStatement ROBNET_TCHMASTER ROBNETID ROBNETROBOT ROBNETSIG RSIGCORRECT RSIGPOINT RSIGRANGE RUNMASK
syn match asStatement /\c\v^\s*REPEAT>/
syn keyword asStatement S_HERE
syn keyword asStatement SAVE/ALLLOG SAVE/A SAVE/ELOG SAVE/FULL SAVE/L SAVE/OLOG SAVE/OPLOG SAVE/P SAVE/ROB SAVE/R SAVE/STG SAVE/SYS SAVE/S SAVE
syn keyword asStatement SC2RECEIVE SC2SEND SCALL SCASE SCNT SCNTRESET SCPROTOCOL SCREEN SCSETSIO
syn keyword asStatement SC2RECEIVE SC2SEND SCALL SCASE SCNT SCNTRESET SCPROTOCOL SCSETSIO
syn keyword asStatement SET_MAXTOOLSHAPENUM SET_TOOLSHAPE SET2HOME SETENCTEMP_THRES SETHOME SETOUTDA SETPICK SETPLACE SETTIME SETTRACE
syn keyword asStatement SFLK SFLP SHIFT SHUTDOWN
syn keyword asStatement SIG SIG2 SIGMON_TEACH SIGNAL SIGRSTCONF
syn keyword asStatement SIN SINGULAR SJUMP SLAVE SLOAD SLOW SLOW_REPEAT SLOW_START SOUT SPEED SQRT STABLE STAT_ON_KYBD STATUS STEP STG_CHCOMBI STG_SAMPLING STG_START STG_STOP STIM STOP STP_ONCE STPNEXT
syn keyword asStatement STRGCLR STRGSET STRGSETIO STRGSTART STRGSTOP STRTOPOS STRTOVAL
syn keyword asStatement SFLK SFLP SHUTDOWN
syn keyword asStatement SIGNAL
syn keyword asStatement SJUMP SLAVE SLOAD SLOW SLOW_REPEAT SOUT SPEED STABLE STATUS STEP STG_CHCOMBI STG_SAMPLING STG_START STG_STOP STIM STOP STPNEXT
syn keyword asStatement STRGCLR STRGSET STRGSETIO STRGSTART STRGSTOP
syn keyword asStatement SVALUE SWAIT SYSDATA SYSINIT SYSINIT/SW SYSINIT/U
syn keyword asStatement TASK TASKNO TDRAW TEACH_LOCK TILL TIME TIMER TOOL TOOLSHAPE TOUCH.ENA TOUCHST.ENA TPKEY_A TPKEY_S TPLIGHT TPSPEED.RESET TRACE TRADD TRANS TRIGGER TRSUB TWAIT TYPE
syn match asStatement /\c\v^\s*SWITCH>/
syn keyword asStatement TASKNO TDRAW TILL TIME TOOLSHAPE TPLIGHT TRACE TWAIT TYPE
syn match asStatement /\c\v^\s*TIMER>/
syn match asStatement /\c\v^\s*TOOL>/
syn keyword asStatement ULIMIT
syn keyword asStatement USB_COPY USB_FDEL USB_FDIR USB_LOAD USB_MKDIR USB_RENAME USB_SAVE/A USB_SAVE/ALLLOG USB_SAVE/ELOG USB_SAVE/FULL USB_SAVE/L USB_SAVE/OPLOG USB_SAVE/P USB_SAVE/R USB_SAVE/ROB USB_SAVE/S USB_SAVE/STG USB_SAVE/SYS USB_SAVE
syn keyword asStatement USE_ISO8859_5 UTIMER UWRIST
syn keyword asStatement VAL VALUE
syn keyword asStatement WAIT WAITREL_AUTO WEIGHT WHERE WHICHTASK WS.ZERO WS_COMPOFF
syn keyword asStatement UWRIST
syn match asStatement /\c\v^\s*UTIMER>/
syn keyword asStatement VALUE
syn keyword asStatement WAIT WEIGHT WHERE
syn keyword asStatement XD XFER XP XQ XS XY
syn keyword asStatement ZALLPGKILL ZAREASLOWMODE ZAREASLOWRATE ZAREASLOWSET ZINTFTOOLMDL ZINTFXLINK2BRAD ZINTFXLINK2RAD ZINTFXLINKRAD ZL3LINK2BOX ZPOWER ZRMTSET ZRMTSET2 ZSIGMAP ZSIGMAP_CLEAR ZSIGSPEC ZSOFT_EXCHANGE ZSOFT_EXCHANGE_AUTO ZZERO

Expand All @@ -169,7 +207,7 @@ highlight default link asLabel Label
" }}} Statements, keywords et al

" special keywords for movement commands {{{
syn keyword asMovement BRAKE C2MOVE C2MOVE CVJMOVE CVL3LMOVE CVMLJMOVE CVMLL3LMOVE FJMOVE FLMOVE HMOVE JMOVE L3C1MOVE L3C2MOVE L3LMOVE LMOVE MLC1MOVE MLC2MOVE MLJMOVE MLLMOVE MLZL3LMOVE MRC1MOVE MRC2MOVE MRLMOVE XMOVE
syn keyword asMovement ALIGN BRAKE C2MOVE C2MOVE CVJMOVE CVL3LMOVE CVMLJMOVE CVMLL3LMOVE DRIVE FJMOVE FLMOVE HMOVE JMOVE L3C1MOVE L3C2MOVE L3LMOVE LMOVE MLC1MOVE MLC2MOVE MLJMOVE MLLMOVE MLZL3LMOVE MRC1MOVE MRC2MOVE MRLMOVE XMOVE
syn keyword asMovement HOME
syn keyword asMovement JAPPRO JDEPART LAPPRO LDEPART
if g:asGroupName
Expand All @@ -180,10 +218,27 @@ endif
" }}} special keywords for movement commands

" BuildInFunction {{{
syn keyword asFunction CHR DATE DECODE ENCODE ERROR ERRORS LEFT MID RIGHT SPACE TIME TIME_MS REPLACE STR_ID STR_ID2 SYSDATA ERRLOG
highlight default link asFunction Function
syn keyword asBuildInFunction contained ABS ASC ATAN2 AVE_TRANS
syn keyword asBuildInFunction contained BASE BITS BITS32 CCENTER $CHR COS CSHIFT CURLIMM CURLIMP
syn keyword asBuildInFunction contained $DATE $DECODE DEST #DEST DEXT DISTANCE DX DY DZ
syn keyword asBuildInFunction contained $ENCODE ERROR $ERROR $ERRORS $ERRLOG ENVCHKRATE $LEFT
syn keyword asBuildInFunction contained EXISTCHAR EXISTDATA EXISTINTEGER EXISTJOINT EXISTLOCALCHAR EXISTLOCALINTEGER EXISTLOCALJOINT EXISTLOCALREAL EXISTLOCALTRANS EXISTPGM EXISTREAL EXISTTRANS
syn keyword asBuildInFunction contained FRAME GETENCTEMP #HOME INRANGE INSTR INT IQARM LEN MAXINDEX MAXVAL $MID MININDEX MINVAL RIGHT SWITCH TASK
syn keyword asBuildInFunction contained $TIME TIMER TIME_MS #PPOINT REPLACE $RIGHT ROUND RX RY RZ
syn keyword asBuildInFunction contained SHIFT SIG SIG2 SIN $SPACE SQRT STR_ID STR_ID2 STRTOPOS STRTOVAL SYSDATA $SYSDATA TRADD TRANS TRQNM TRSUB UTIMER VAL
syn keyword asBuildInFunction HERE #HERE MSPEED MSPEED2 PRIORITY TOOL WHICHTASK RANDOM
if g:asGroupName
highlight default link asBuildInFunction BuildInFunction
else
highlight default link asBuildInFunction Function
endif
" }}} BuildInFunction

" Function {{{
syn match asFunction /[a-zA-Z_][a-zA-Z0-9_.]* *(/me=e-1 contains=asBuildInFunction
highlight default link asFunction Function
" }}} Function

" Finish {{{
let &cpo = s:keepcpo
unlet s:keepcpo
Expand Down

0 comments on commit 72f36e8

Please sign in to comment.