#-------------------------------------------------------------------------------
#
#	Name    : AspicScript
#	Purpose : Display Aspic script files
#	Author  :  JMB & FJG
#	Licence : Freeware
#	Version : 1.01, 29.08.24
#
#-------------------------------------------------------------------------------
# 27.07.24 JMB Initial version (named AspicGraph) by Jean-Michel Brck
# 29.08.24 FJG Changed mode name to more accurate AspicScript (IMHO)
#          FJG Changed SyntaxWords groups for more logical grouping
#          FJG Added a SyntaxWords group to colour label references
#          FJG Made SyntaxWords groups case-sensitive (as Aspic is)
#          FJG Use ID definitions to colour variables
#===============================================================================

HelpPath	DrWimpC,C-Version5,C++,C,OS,Wimp,MiscSWIs,InetSWIs,InetSocket,VDU,Toolbox,Desk,OSLib,UnixLib,Temporaries,

ID_FirstChar	$A-Za-z
ID_Middle	A-Za-z0-9

#-------------------------------------------------------------------------------

Search
	Label		{'A-Z0-9'} ":"
	LabelRef	{'A-Z0-9'} @9 " " | (";" >)
End

#-------------------------------------------------------------------------------

SyntaxOptions
	SingleQuote	No
	DoubleQuote	Yes
	QuoteQuote	No
	SplitString	No
	Numbers		Int
	HexPrefix	&
	Binprefix	%
	Numbers		flt
End

SyntaxComment 1
	CommentType	OneLine
	StartWhere	AnyWhere
	StartWith	#
End

Search
	diffcmnd	< "diff " ** >
	diffheader	< ("*** " * NL "--- " * NL )
	diffcontent	< (' !'|("+" ~"+")|("-" ~"-")) * >
	diff		diffcmnd NL diffheader NL {diffcontent NL}+

End



# Environment cmds
SyntaxWords Group1 Case EndAlways
	bLength bDescriptorType  
End

# Global commands
SyntaxWords Group2 Case EndAlways
	 bConfigurationValue  iConfiguration
End

# Drawing commands
SyntaxWords Group3 Case EndAlways
	bInterfaceClass bInterfaceSubClass  bInterfaceProtocol
	iInterface  bInterfaceNumber
End

# Command options
SyntaxWords Group4 Case EndAlways
	bAlternateSetting  bNumEndpoints  bNumInterfaces
End

# Directions/Level
SyntaxWords Group5 Case EndAlways
	
End

# Object positions
SyntaxWords Group6 Case EndAlways
	
End

# Object relations
SyntaxWords Group7 Case EndAlways
	
End

# Label definition
SyntaxWords Group8 StartOfLine Case EndOfExpr Label
	A B C D E F G H I J K L M
	N O P Q R S T U V W X Y Z
End

# Label reference
SyntaxWords Group9 Case EndOfExpr LabelRef
	" A" " B" " C" " D" " E" " F" " G"
	" H" " I" " J" " K" " L" " M" " N"
	" O" " P" " Q" " R" " S" " T"
	" U" " V" " W" " X" " Y" " Z"
End

# segment and sub-segment separators (yellow)
SyntaxWords Group10 Case StartOfLine EndOfLine
##	segment separators
#	diff -c
	***
#	diff -u
	@@
##	sub-segment separators
#	diff & diff -c
	"--- "
	"+++ "
End
# file separators (purple)
SyntaxWords Group11 Case StartOfLine EndOfLine
#	diff, diff -c & diff -u
	=================================================
End


#-------------------------------------------------------------------------------



#-------------------------------------------------------------------------------
