updated for version 7.0001
diff --git a/runtime/syntax/aflex.vim b/runtime/syntax/aflex.vim
new file mode 100644
index 0000000..592c98e
--- /dev/null
+++ b/runtime/syntax/aflex.vim
@@ -0,0 +1,100 @@
+
+" Vim syntax file
+" Language:	AfLex (from Lex syntax file)
+" Maintainer:	Mathieu Clabaut <mathieu.clabaut@free.fr>
+" LastChange:	02 May 2001
+" Original:	Lex, maintained by Dr. Charles E. Campbell, Jr.
+" Comment:	Replaced sourcing c.vim file by ada.vim and rename lex*
+"		in aflex*
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+   syntax clear
+elseif exists("b:current_syntax")
+   finish
+endif
+
+" Read the Ada syntax to start with
+if version < 600
+   so <sfile>:p:h/ada.vim
+else
+   runtime! syntax/ada.vim
+   unlet b:current_syntax
+endif
+
+
+" --- AfLex stuff ---
+
+"I'd prefer to use aflex.* , but it doesn't handle forward definitions yet
+syn cluster aflexListGroup		contains=aflexAbbrvBlock,aflexAbbrv,aflexAbbrv,aflexAbbrvRegExp,aflexInclude,aflexPatBlock,aflexPat,aflexBrace,aflexPatString,aflexPatTag,aflexPatTag,aflexPatComment,aflexPatCodeLine,aflexMorePat,aflexPatSep,aflexSlashQuote,aflexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2
+syn cluster aflexListPatCodeGroup	contains=aflexAbbrvBlock,aflexAbbrv,aflexAbbrv,aflexAbbrvRegExp,aflexInclude,aflexPatBlock,aflexPat,aflexBrace,aflexPatTag,aflexPatTag,aflexPatComment,aflexPatCodeLine,aflexMorePat,aflexPatSep,aflexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2
+
+" Abbreviations Section
+syn region aflexAbbrvBlock	start="^\([a-zA-Z_]\+\t\|%{\)" end="^%%$"me=e-2	skipnl	nextgroup=aflexPatBlock contains=aflexAbbrv,aflexInclude,aflexAbbrvComment
+syn match  aflexAbbrv		"^\I\i*\s"me=e-1			skipwhite	contained nextgroup=aflexAbbrvRegExp
+syn match  aflexAbbrv		"^%[sx]"					contained
+syn match  aflexAbbrvRegExp	"\s\S.*$"lc=1				contained nextgroup=aflexAbbrv,aflexInclude
+syn region aflexInclude	matchgroup=aflexSep	start="^%{" end="%}"	contained	contains=ALLBUT,@aflexListGroup
+syn region aflexAbbrvComment	start="^\s\+/\*"	end="\*/"
+
+"%% : Patterns {Actions}
+syn region aflexPatBlock	matchgroup=Todo	start="^%%$" matchgroup=Todo end="^%%$"	skipnl skipwhite contains=aflexPat,aflexPatTag,aflexPatComment
+syn region aflexPat		start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1	contained nextgroup=aflexMorePat,aflexPatSep contains=aflexPatString,aflexSlashQuote,aflexBrace
+syn region aflexBrace	start="\[" skip=+\\\\\|\\+		end="]"		contained
+syn region aflexPatString	matchgroup=String start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
+syn match  aflexPatTag	"^<\I\i*\(,\I\i*\)*>*"			contained nextgroup=aflexPat,aflexPatTag,aflexMorePat,aflexPatSep
+syn match  aflexPatTag	+^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+		contained nextgroup=aflexPat,aflexPatTag,aflexMorePat,aflexPatSep
+syn region aflexPatComment	start="^\s*/\*" end="\*/"		skipnl	contained contains=cTodo nextgroup=aflexPatComment,aflexPat,aflexPatString,aflexPatTag
+syn match  aflexPatCodeLine	".*$"					contained contains=ALLBUT,@aflexListGroup
+syn match  aflexMorePat	"\s*|\s*$"			skipnl	contained nextgroup=aflexPat,aflexPatTag,aflexPatComment
+syn match  aflexPatSep	"\s\+"					contained nextgroup=aflexMorePat,aflexPatCode,aflexPatCodeLine
+syn match  aflexSlashQuote	+\(\\\\\)*\\"+				contained
+syn region aflexPatCode matchgroup=Delimiter start="{" matchgroup=Delimiter end="}"	skipnl contained contains=ALLBUT,@aflexListPatCodeGroup
+
+syn keyword aflexCFunctions	BEGIN	input	unput	woutput	yyleng	yylook	yytext
+syn keyword aflexCFunctions	ECHO	output	winput	wunput	yyless	yymore	yywrap
+
+" <c.vim> includes several ALLBUTs; these have to be treated so as to exclude aflex* groups
+syn cluster cParenGroup	add=aflex.*
+syn cluster cDefineGroup	add=aflex.*
+syn cluster cPreProcGroup	add=aflex.*
+syn cluster cMultiGroup	add=aflex.*
+
+" Synchronization
+syn sync clear
+syn sync minlines=300
+syn sync match aflexSyncPat	grouphere  aflexPatBlock	"^%[a-zA-Z]"
+syn sync match aflexSyncPat	groupthere aflexPatBlock	"^<$"
+syn sync match aflexSyncPat	groupthere aflexPatBlock	"^%%$"
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+
+if version >= 508 || !exists("did_aflex_syntax_inits")
+   if version < 508
+      let did_aflex_syntax_inits = 1
+      command -nargs=+ HiLink hi link <args>
+   else
+      command -nargs=+ HiLink hi def link <args>
+   endif
+  HiLink	aflexSlashQuote	aflexPat
+  HiLink	aflexBrace		aflexPat
+  HiLink aflexAbbrvComment	aflexPatComment
+
+  HiLink	aflexAbbrv		SpecialChar
+  HiLink	aflexAbbrvRegExp	Macro
+  HiLink	aflexCFunctions	Function
+  HiLink	aflexMorePat	SpecialChar
+  HiLink	aflexPat		Function
+  HiLink	aflexPatComment	Comment
+  HiLink	aflexPatString	Function
+  HiLink	aflexPatTag		Special
+  HiLink	aflexSep		Delimiter
+  delcommand HiLink
+endif
+
+let b:current_syntax = "aflex"
+
+" vim:ts=10