" vim: ts=8 " Vim syntax file " Language: Four J's .per " Maintainer: Michael Horst " Last change: 1999 Oktober 19 " February 11, 2005, case ignore, and allow '_' in fieldname (fortiz) " This syntax file is not a complete implementation yet. " Send suggestions to the maintainer. " ( For Bugs with that piece of code. ) " Remove any old syntax stuff hanging around syn clear " Added: Feb 11, 2005, Ignore case syntax case ignore " Special word TODO in comments syn keyword perTodo contained TODO " A bunch of useful per keywords syn keyword perStatement ABORT ADD AFTER ALL ALLOWING syn keyword perStatement AND ANY AS ASC ATTRIBUTES syn keyword perStatement AUTHORIZATION AUTONEXT AVERAGE AVG syn keyword perStatement BACKGROUND BEFORE BEGIN BEGINNING syn keyword perStatement BELL BETWEEN BLACK BLINK BLINK syn keyword perStatement BLUE BORDER BY BYTE CALL syn keyword perStatement CHECK CLOSE CO COBOL syn keyword perStatement COCOMMENTS COLOR COLOR syn keyword perStatement COMMIT COMPOSITES COMPRESS CONSTRUCT syn keyword perStatement CONSTRUCTCOMMENTS CONSTRUCT_COMMENTS syn keyword perStatement CONTINUE COUNT CO_COMMENTS CR CRCOMMENTS syn keyword perStatement CREATE CREATECOMMENTS CREATE_COMMENTS syn keyword perStatement CR_COMMENTS CURRENT CURSOR CYAN syn keyword perStatement DATABASE DAY DEC syn keyword perStatement DECIMAL DECLARE DEFAULT DEFINE syn keyword perStatement DELETE DELIMITERS DESC DISPLAY syn keyword perStatement DISPLAYONLY DISTINCT DOMINANT DOUBLE syn keyword perStatement DOWN DOWNSHIFT EDITADD EDITUPDATE syn keyword perStatement ELSE END ENDING ESCAPE EXEC EXISTS syn keyword perStatement EXITNOW EXTEND FETCH FIELD FLOAT syn keyword perStatement FOR FORMAT FORMAT FORMONLY FORTRAN syn keyword perStatement FOUND FRACTION FROM GO GOTO GRANT syn keyword perStatement GREEN GROUP HAVING HOUR IF IN INCLUDE syn keyword perStatement INDICATOR INFORMIX INPUT INSERT INSTRUCTIONS syn keyword perStatement INTO INVERSE INVERSE syn keyword perStatement INVISIBLE IS JOIN JOINING LANGUAGE syn keyword perStatement LASTCOL LASTLINE LEFT LET LIKE LOOKUP syn keyword perStatement MAGENTA MASTER MATCHES MAX MIN MINUTE syn keyword perStatement MODULE MONEY MONTH NEXT NEXTFIELD NO syn keyword perStatement NOENTRY NOT NOUPDATE NOW NULL NUMERIC syn keyword perStatement OF ON OPEN OPTION OR ORDER PAGE PASCAL syn keyword perStatement PICTURE PLI POSITION PRECISION PRIVILEGES syn keyword perStatement PROCEDURE PROGRAM PUBLIC QUERY QUERYCLEAR syn keyword perStatement REAL RECORD RED REMOVE REQUIRED REVERSE syn keyword perStatement RIGHT ROLLBACK SCHEMA SCREEN SECOND SECTION syn keyword perStatement SELECT SERIAL SET SHIFT SIZE SMALLFLOAT syn keyword perStatement SMALLINT SOME SQL SQLCODE SQLERROR SUM syn keyword perStatement TABLE TABLES TEXT THEN THROUGH THRU TITLE TO syn keyword perStatement TODAY TOTAL TYPE UNDERLINE UNION UNIQUE syn keyword perStatement UNITS UP UPCOMMENTS UPDATE UPDATECOMMENTS syn keyword perStatement UPDATE_COMMENTS UPSHIFT UP_COMMENTSUSER syn keyword perStatement VALIDATE VALUES VARCHAR VARIABLE VERIFY syn keyword perStatement VIEW WHENEVER WHERE WHITE WITH WITHOUT syn keyword perStatement WORDWRAP WORK YEAR YELLOW YES ZEROFILL KEY[S] syn keyword perDatatype INTEGER INT SMALLINT VARCHAR DATE SERIAL syn keyword perDatatype INTERVAL BLOB TEXT BYTE LIKE syn keyword perPreDefs TRUE FALSE STATUS NOTFOUND syn match perParameters "(.*)" contains=perString,perStatement " Feb 11,2005, added '_' as a valid char in field name syn match perField "\[[a-zA-Z][a-zA-Z0-9_ ]*\]"hs=s+1,he=e-1 syn match perAttribute "^ *[a-zA-Z][a-zA-Z0-9]* *=[ ]*[a-zA-Z]"he=e-1 syn region perDatatype start="DATETIME " end="$" contains=perComment syn region perDatatype start="INTERVAL " end="$" contains=perComment syn match perDatatype "CHAR([0-9]*)" contains=perNumber syn match perDatatype "CHARACTER([0-9]*)" contains=perNumber syn match perDatatype "DECIMAL([ 0-9]*,[0-9 ]*)" contains=perNumber syn match perDatatype "DEC([0-9]*,[0-9]*)" contains=perNumber syn match perDatatype "MONEY([0-9]*,[0-9]*)" contains=perNumber "integer number, or floating point number without a dot. syn match perNumber "\<\d\+\>" "floating point number, with dot syn match perNumber "\<\d\+\.\d*\>" "floating point number, starting with a dot syn match perNumber "\.\d\+\>" " String and Character contstants syn match perSpecial contained "\\\d\d\d\|\\." syn region perString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=perSpecial syn region perComment start="[^--]#" end="$" contains=perTodo syn keyword perComment COMMENTS "syn match perTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1 syn match perMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR" if !exists("did_per_syntax_inits") let did_per_syntax_inits = 1 " The default methods for highlighting. Can be overridden later hi link perLabel Label hi link perConditional Conditional hi link perRepeat Repeat hi link perLineNumber Comment hi link perNumber Number hi link perPreDefs Structure hi link perDatatype Structure hi link perStatement Statement hi link perString String hi link perComment Comment hi link perSpecial Special hi link perTodo Todo hi link perUserFunction Identifier hi specListedFilesBin ctermfg=DarkGreen gui=bold guifg=DarkGre hi link perField Todo hi link perAttribute Special hi link perTypeSpecifier Type hi link perFilenumber perTypeSpecifier hi perMathsOperator term=bold cterm=bold gui=bold endif let b:current_syntax = "4gl" " vim: ts=8