Merge branch 'master' of http://repo.or.cz/r/msysgit into devel
[msysgit/historical-msysgit.git] / share / vim / vim58 / syntax / clipper.vim
blob989b257f7d20e252ddcfbdd9c9c98e1343586f81
1 " Vim syntax file:
2 " Language:     Clipper 5.2 & FlagShip
3 " Maintainer:   C R Zamana <zamana@zip.net>
4 " Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio
5 " Last Change:  Sat Sep 09 2000
7 " For version 5.x: Clear all syntax items
8 " For version 6.x: Quit when a syntax file was already loaded
9 if version < 600
10   syntax clear
11 elseif exists("b:current_syntax")
12   finish
13 endif
15 " Exceptions for my "Very Own" (TM) user variables naming style.
16 " If you don't like this, comment it
17 syn match  clipperUserVariable  "\<[a,b,c,d,l,n,o,u,x][A-Z][A-Za-z0-9_]*\>"
18 syn match  clipperUserVariable  "\<[a-z]\>"
20 " Clipper is case insensitive ( see "exception" above )
21 syn case ignore
23 " Clipper keywords ( in no particular order )
24 syn keyword clipperStatement    ACCEPT APPEND BLANK FROM AVERAGE CALL CANCEL
25 syn keyword clipperStatement    CLEAR ALL GETS MEMORY TYPEAHEAD CLOSE
26 syn keyword clipperStatement    COMMIT CONTINUE SHARED NEW PICT
27 syn keyword clipperStatement    COPY FILE STRUCTURE STRU EXTE TO COUNT
28 syn keyword clipperStatement    CREATE FROM NIL
29 syn keyword clipperStatement    DELETE FILE DIR DISPLAY EJECT ERASE FIND GO
30 syn keyword clipperStatement    INDEX INPUT VALID WHEN
31 syn keyword clipperStatement    JOIN KEYBOARD LABEL FORM LIST LOCATE MENU TO
32 syn keyword clipperStatement    NOTE PACK QUIT READ
33 syn keyword clipperStatement    RECALL REINDEX RELEASE RENAME REPLACE REPORT
34 syn keyword clipperStatement    RETURN FORM RESTORE
35 syn keyword clipperStatement    RUN SAVE SEEK SELECT
36 syn keyword clipperStatement    SKIP SORT STORE SUM TEXT TOTAL TYPE UNLOCK
37 syn keyword clipperStatement    UPDATE USE WAIT ZAP
38 syn keyword clipperStatement    BEGIN SEQUENCE
39 syn keyword clipperStatement    SET ALTERNATE BELL CENTURY COLOR CONFIRM CONSOLE
40 syn keyword clipperStatement    CURSOR DATE DECIMALS DEFAULT DELETED DELIMITERS
41 syn keyword clipperStatement    DEVICE EPOCH ESCAPE EXACT EXCLUSIVE FILTER FIXED
42 syn keyword clipperStatement    FORMAT FUNCTION INTENSITY KEY MARGIN MESSAGE
43 syn keyword clipperStatement    ORDER PATH PRINTER PROCEDURE RELATION SCOREBOARD
44 syn keyword clipperStatement    SOFTSEEK TYPEAHEAD UNIQUE WRAP
45 syn keyword clipperStatement    BOX CLEAR GET PROMPT SAY ? ??
46 syn keyword clipperStatement    DELETE TAG GO RTLINKCMD TMP DBLOCKINFO
47 syn keyword clipperStatement    DBEVALINFO DBFIELDINFO DBFILTERINFO DBFUNCTABLE
48 syn keyword clipperStatement    DBOPENINFO DBORDERCONDINFO DBORDERCREATEINF
49 syn keyword clipperStatement    DBORDERINFO DBRELINFO DBSCOPEINFO DBSORTINFO
50 syn keyword clipperStatement    DBSORTITEM DBTRANSINFO DBTRANSITEM WORKAREA
52 " Conditionals
53 syn keyword clipperConditional  CASE OTHERWISE ENDCASE
54 syn keyword clipperConditional  IF ELSE ENDIF IIF IFDEF IFNDEF
56 " Loops
57 syn keyword clipperRepeat       DO WHILE ENDDO
58 syn keyword clipperRepeat       FOR TO NEXT STEP
60 " Visibility
61 syn keyword clipperStorageClass ANNOUNCE STATIC
62 syn keyword clipperStorageClass DECLARE EXTERNAL LOCAL MEMVAR PARAMETERS
63 syn keyword clipperStorageClass PRIVATE PROCEDURE PUBLIC REQUEST STATIC
64 syn keyword clipperStorageClass FIELD FUNCTION
65 syn keyword clipperStorageClass EXIT PROCEDURE INIT PROCEDURE
67 " Operators
68 syn match   clipperOperator     "$\|%\|&\|+\|-\|->\|!"
69 syn match   clipperOperator     "\.AND\.\|\.NOT\.\|\.OR\."
70 syn match   clipperOperator     ":=\|<\|<=\|<>\|!=\|#\|=\|==\|>\|>=\|@"
71 syn match   clipperOperator     "*"
73 " Numbers
74 syn match   clipperNumber       "\<\d\+\(u\=l\=\|lu\|f\)\>"
76 " Includes
77 syn region clipperIncluded      contained start=+"+ skip=+\\\\\|\\"+ end=+"+
78 syn match  clipperIncluded      contained "<[^>]*>"
79 syn match  clipperInclude       "^\s*#\s*include\>\s*["<]" contains=clipperIncluded
81 " String and Character constants
82 syn region clipperString        start=+"+ end=+"+
83 syn region clipperString        start=+'+ end=+'+
85 " Delimiters
86 syn match  ClipperDelimiters    "[()]\|[\[\]]\|[{}]\|[||]"
88 " Special
89 syn match clipperLineContinuation       ";"
91 " This is from Bram Moolenaar:
92 if exists("c_comment_strings")
93   " A comment can contain cString, cCharacter and cNumber.
94   " But a "*/" inside a cString in a clipperComment DOES end the comment!
95   " So we need to use a special type of cString: clipperCommentString, which
96   " also ends on "*/", and sees a "*" at the start of the line as comment
97   " again. Unfortunately this doesn't very well work for // type of comments :-(
98   syntax match clipperCommentSkip       contained "^\s*\*\($\|\s\+\)"
99   syntax region clipperCommentString    contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=clipperCommentSkip
100   syntax region clipperComment2String   contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$"
101   syntax region clipperComment          start="/\*" end="\*/" contains=clipperCommentString,clipperCharacter,clipperNumber,clipperString
102   syntax match  clipperComment          "//.*" contains=clipperComment2String,clipperCharacter,clipperNumber
103 else
104   syn region clipperComment             start="/\*" end="\*/"
105   syn match clipperComment              "//.*"
106 endif
107 syntax match clipperCommentError        "\*/"
109 " Lines beggining with an "*" are comments too
110 syntax match clipperComment             "^\*.*"
113 " Define the default highlighting.
114 " For version 5.7 and earlier: only when not done already
115 " For version 5.8 and later: only when an item doesn't have highlighting yet
116 if version >= 508 || !exists("did_clipper_syntax_inits")
117   if version < 508
118     let did_clipper_syntax_inits = 1
119     command -nargs=+ HiLink hi link <args>
120   else
121     command -nargs=+ HiLink hi def link <args>
122   endif
124   HiLink clipperConditional             Conditional
125   HiLink clipperRepeat                  Repeat
126   HiLink clipperNumber                  Number
127   HiLink clipperInclude         Include
128   HiLink clipperComment         Comment
129   HiLink clipperOperator                Operator
130   HiLink clipperStorageClass            StorageClass
131   HiLink clipperStatement               Statement
132   HiLink clipperString                  String
133   HiLink clipperFunction                Function
134   HiLink clipperLineContinuation        Special
135   HiLink clipperDelimiters              Delimiter
136   HiLink clipperUserVariable            Identifier
138   delcommand HiLink
139 endif
141 let b:current_syntax = "clipper"
143 " vim: ts=4