秀丸エディタ用の HSP 強調表示ファイルの実験バージョンです。バージョンでいうと、 1.20a1 になるかな。
まだ、ラベルと乗算記号が正しく判別できてません、難しい。おまけ程度につけているツリー定義も正確なものにしたいと思うも無理そう。プリプロセス文全体が強調されるようにしたのは完全に実験です、プリプロセスのキーワードの方を強調するのとどっちが良いだろうね。
ラベルを表す正規表現をまた変更。
(?<=([ \t:=,]|^))\*[A-Z_a-z@`。-゚、-黑][0-9A-Z_a-z@`。-゚、-黑]{0,58}
(?<=([(,:=]|^)[ \t]*)\*[A-Z_a-z@`。-゚、-黑][0-9A-Z_a-z@`。-゚、-黑]{0,58}
これで、乗算記号で間違うことはなくなりましたが、同時に goto 、 gosub 、 onclick などなどの命令の第一引数だと強調表示されなくなります。関数の最初は左小括弧で判別できますが、命令の最初はどう判別すればいいのかな。 goto 、 gosub などのキーワードを一つ一つ書いてもいいんだろうけど(以下のような)、あまり良い方法じゃないと思う。
(?<=([),:=]|^|goto[ \t]|gosub[ \t])[ \t]*)\*[A-Z_a-z@`。-゚、-黑][0-9A-Z_a-z@`。-゚、-黑]{0,58}
145,(?<=([ \t:=,]|^))\*[A-Z_a-z@`。-゚、-黑][0-9A-Z_a-z@`。-゚、-黑]{0,58}
105,_debug
105,_continue
105,_break
105,__time__
105,__hspver__
105,__hsp30__
105,__date__
41,axobj
41,await
41,atan
41,assert
105,and
105,alloc
41,absf
41,abs
41,button
41,buffer
41,bsave
41,break
41,boxf
41,bmpsave
41,bload
41,bgscr
41,bcopy
41,cos
41,continue
41,comres
41,comevent
41,comevdisp
41,comevarg
41,combox
41,color
41,cnvwtos
41,cnvstow
41,cnt
41,cls
41,clrobj
41,circle
41,chkbox
41,chgdisp
41,chdpm
41,chdir
105,case
41,callfunc
41,dupptr
41,dup
41,double
105,do
41,dirlist
41,dirinfo
105,dir_win
105,dir_sys
105,dir_mydoc
105,dir_exe
105,dir_desktop
105,dir_cur
105,dir_cmdline
41,dimtype
41,dim
41,dialog
41,delmod
41,delete
41,delcom
105,default
105,ddim
41,expf
41,exist
41,exgoto
41,exec
41,err
41,end
41,else
41,foreach
105,for
105,font_underline
105,font_strikeout
105,font_normal
105,font_italic
105,font_bold
105,font_antialias
41,font
41,gzoom
41,gsquare
41,gsel
41,grotate
41,groll
41,grect
41,goto
41,gosub
105,gmode_sub
105,gmode_rgb0alpha
105,gmode_rgb0
105,gmode_pixela
105,gmode_mem
105,gmode_gdi
105,gmode_alpha
105,gmode_add
41,gmode
105,ginfo_wy2
105,ginfo_wy1
105,ginfo_wx2
105,ginfo_wx1
105,ginfo_winy
105,ginfo_winx
105,ginfo_vy
105,ginfo_vx
105,ginfo_sy
105,ginfo_sx
105,ginfo_sizey
105,ginfo_sizex
105,ginfo_sel
105,ginfo_r
105,ginfo_paluse
105,ginfo_my
105,ginfo_mx
105,ginfo_mesy
105,ginfo_mesx
105,ginfo_intid
105,ginfo_g
105,ginfo_dispy
105,ginfo_dispx
105,ginfo_cy
105,ginfo_cx
105,ginfo_b
105,ginfo_act
41,ginfo
41,gettime
41,getstr
41,getpath
41,getkey
41,gcopy
41,hwnd
41,hsvcolor
41,hspver
41,hspstat
41,hinstance
41,hdc
41,iparam
41,int
41,instr
41,input
41,if
41,lpoke
41,lpeek
41,lparam
41,looplev
41,loop
41,logmes
41,logf
41,listbox
41,line
41,limitf
41,limit
41,libptr
41,length4
41,length3
41,length2
41,length
105,msmincho
105,msgothic
41,mref
41,mousey
41,mousex
41,mousew
41,mouse
41,mmstop
41,mmplay
41,mmload
41,mkdir
41,mesbox
41,mes
41,memset
41,memfile
41,memexpand
41,memcpy
41,mci
41,mcall
41,noteunsel
105,notesize
41,notesel
41,notesave
105,notemax
41,noteload
41,noteinfo
41,noteget
41,notedel
41,noteadd
105,not
105,next
41,newmod
41,newcom
105,or
41,onkey
41,onexit
41,onerror
41,oncmd
41,onclick
41,on
41,objsize
41,objsel
41,objprm
105,objmode_usefont
105,objmode_normal
105,objmode_guifont
41,objmode
105,objinfo_mode
105,objinfo_hwnd
105,objinfo_bmscr
41,objinfo
41,pset
41,print
41,pos
41,poke
41,picload
41,pget
41,peek
41,palette
41,palcolor
41,querycom
41,run
41,rnd
41,return
41,repeat
41,refstr
41,refdval
41,redraw
41,randomize
41,system
41,sysinfo
41,sysfont
41,syscolor
105,switch
105,swend
105,swbreak
41,sublev
41,strsize
41,strmid
41,strlen
41,strf
41,str
41,stop
41,stick
41,stat
41,sqrt
41,sin
41,sendmsg
41,sdim
105,screen_tool
105,screen_palette
105,screen_normal
105,screen_hide
105,screen_frame
105,screen_fixedsize
41,screen
41,sarrayconv
41,title
41,thismod
41,tan
105,until
41,varuse
41,vartype
41,varptr
41,wpoke
41,wpeek
41,wparam
41,winobj
41,width
105,while
105,wend
41,wait
105,xor
/<HilightMulti>
/0003,00000003,00,00,00000002,";",00000002,""
/0003,00000003,00,00,00000002,"//",00000002,""
/0014,00000002,00,5C,00000002,"\"",00010003,"\"|$"
/0014,00000002,00,5C,00000002,"'",00010003,"'|$"
/0003,00000002,00,00,00000002,"/*",00000002,"*/"
/0014,00000002,00,5C,00000002,"{\"",00000002,"\"}"
/0016,00000002,00,00,00000002,"#",00010003,"(?<!\\\\)$"
/<TreeWord>
/0000,0004,0000,00000000,00000112,"*","ラベル"
/0001,0002,0000,00000000,00000116,"#module","モジュール"
/0002,0002,0000,00000000,00000116,"#deffunc",""
/0002,0002,0000,00000000,00002116,"#defcfunc",""