2 " Language: stql Syntax file
3 " Maintainer: Dawid Chemloul (lahouari@o2.pl)
4 " Last Change: Mon Oct 03 18:43:12 CET 2005
6 " Syntax definition (*.sdf)|*.sdf
8 " For version 5.x: Clear all syntax items
9 " For version 6.x: Quit when a syntax file was already loaded
12 elseif exists("b:current_syntax")
17 syn region stqldefComment start="#" end="\_$"
18 syn region stqldefString start=+"+ skip=+\\"+ end=+"+
20 syn match stqldefFields "\(\<COMPLEX_FIELD\>\|\<DATA_FIELD\>\|\<FIELD\>\|\<RULE_FIELD\>\|\<USER_FIELD\>\)"
22 syn match stqldefConst "\(\<RESERVED\>\|\<CONST_DEF\>\|\<CONST_VALUE\>\)"
24 syn match stqldefType "\(\<CURRENT_OFFSET\>\|\<RAW_DATA\>\)"
26 syn match stqldefControlKWord1 "\(\<IF\>\|\<IFF\>\|\<FOR\>\|\<ELSE\>\)"
27 syn match stqldefControlKWord2 "\(\<BEGIN\>\|\<END\>\|\<BEGIN_FOR\>\|\<END_FOR\>\|\<BEGIN_IF\>\|\<END_IF\>\|\<BEGIN_RULE\>\|\<END_RULE\>\)"
29 syn match stqldefControlSpecial "\(\<FOR_PLUS\>\|\<FOR_MINUS\>\|\<IF_OR\>\|\<IF_AND\>\|\<IFF_OR\>\|\<IFF_AND\>\)"
31 syn match sqldefSpecialKWord "\(\<REWRITE\>\|\<PRE_PARSE\>\|\<QUERY\>\|\<GROUP\>\|\<FIRST_IN_GROUP\>\|\<LAST_IN_GROUP\>\|\<CONTINUITY_CHECK\>\|\<EMPTY\>\|\<VALID\>\|\<VALID_COLLECT\>\|\<IS_CRC\>\|\<VALID_CRC\>\)"
33 syn match stqldefOperator "\(\<EQ\>\|\<GT\>\|\<GE\>\|\<LT\>\|\<LE\>\|\<MASK_EQ\>\|\<EQ_CRC\>\|\<NOT\>\|\<MASK_NEQ\>\|\<NEQ\>\)"
35 syn match stqldefAtribute "\(\<UNKNOWN_ATTRIBUTE\>\|\<EXIST_FIELD\>\|\<EXIST_ATTRIB\>\|\<RAW_DATA_ATTRIB\>\|\<SYNTAX_SUBTYPE_ID\>\|\<ID\>\|\<ZERO_MEANS_LONG\>\|\<BYTE_COUNTER\>\|\<ITER_COUNTER\>\|\<PAYLOAD_DATA\>\|\<MAX_LENGTH\>\|\<GROUP_ID\>\|\<CHILD_LINK\>\|\<COMP\>\|\<COUNTER\>\|\<LAST_COUNTER\>\|\<SET\>\|\<DISTINCT\>\|\<COUNT\>\|\<ALL\>\|\<STATIC_IDENT\>\|\<RUNTIME_IDENT\>\|\<MIN_LENGTH\>\|\<GROUP_KEY\>\|\<CRC32\>\|\<CRC_CHECK\>\)"
37 syn match stqldefSpecialAtribute "\(\<LENGTH\>\|\<MAX_LENGTH\>\|\<NAME\>\|\<HIDDEN\>\)"
39 syn match stqldefLoops "\(\<DATA_LOOP\>\|\<OBJECT_LOOP\>\|\<COMPLEX_LOOP\>\)"
41 syn match stqldefVSSKeyWord "\(\<VSS_GROUP\>\|\<VSS_LEAF_TITLE_1\>\|\<VSS_LEAF_TITLE_2\>\|\<VSS_LEAF_TITLE_3\>\|\<VSS_SET_EXTRA_GROUPING\>\|\<VSS_TEXT\>\)"
43 syn match stqldefNumber "\s\<[0-9]*\>\s"hs=s+1,he=e-1
45 syn match stqldefHex "\s\<0x\c[0-9a-f]*\>\s"hs=s+1,he=e-1
47 if version >= 508 || !exists("did_stqldef_syn_inits")
49 let did_stqldef_syn_inits = 1
50 command -nargs=+ HiLink hi link <args>
52 command -nargs=+ HiLink hi def link <args>
55 HiLink stqldefComment Comment
57 HiLink stqldefString String
59 HiLink stqldefFields Type
61 HiLink stqldefConst Constant
63 HiLink stqldefType Type
65 HiLink stqldefControlKWord1 Special
67 HiLink stqldefControlKWord2 Identifier
69 HiLink stqldefControlSpecial Statement
71 HiLink stqldefVSSKeyWord Macro
73 HiLink sqldefSpecialKWord PreProc
75 HiLink stqldefAtribute String
77 HiLink stqldefOperator Operator
79 HiLink stqldefLoops Identifier
81 HiLink stqldefHex Type
82 HiLink stqldefNumber Type
84 HiLink stqldefSpecialAtribute Error
88 let b:current_syntax = "stqldef"