updated for version 7.2a
diff --git a/runtime/syntax/pdf.vim b/runtime/syntax/pdf.vim
new file mode 100644
index 0000000..86d80da
--- /dev/null
+++ b/runtime/syntax/pdf.vim
@@ -0,0 +1,73 @@
+" Vim syntax file
+" Language:	PDF
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Last Change:	2007 Dec 16
+
+if exists("b:current_syntax")
+    finish
+endif
+
+if !exists("main_syntax")
+    let main_syntax = 'pdf'
+endif
+
+syn include @pdfXML syntax/xml.vim
+
+syn case match
+
+syn cluster pdfObjects contains=pdfBoolean,pdfConstant,pdfNumber,pdfFloat,pdfName,pdfHexString,pdfString,pdfArray,pdfHash,pdfReference,pdfComment
+syn keyword pdfBoolean  true false contained
+syn keyword pdfConstant null       contained
+syn match   pdfNumber "[+-]\=\<\d\+\>"
+syn match   pdfFloat   "[+-]\=\<\%(\d\+\.\|\d*\.\d\+\)\>" contained
+
+syn match   pdfNameError "#\X\|#\x\X\|#00" contained containedin=pdfName
+syn match   pdfSpecialChar "#\x\x" contained containedin=pdfName
+syn match   pdfName   "/[^[:space:]\[\](){}<>/]*"   contained
+syn match   pdfHexError  "[^[:space:][:xdigit:]<>]" contained
+"syn match   pdfHexString "<\s*\x[^<>]*\x\s*>"    contained contains=pdfHexError
+"syn match   pdfHexString "<\s*\x\=\s*>"          contained
+syn region  pdfHexString matchgroup=pdfDelimiter start="<<\@!" end=">" contained contains=pdfHexError
+syn match   pdfStringError "\\."      contained containedin=pdfString
+syn match   pdfSpecialChar "\\\%(\o\{1,3\}\|[nrtbf()\\]\)"  contained containedin=pdfString
+syn region  pdfString matchgroup=pdfDelimiter start="\\\@<!(" end="\\\@<!)" contains=pdfString
+
+syn region  pdfArray  matchgroup=pdfOperator start="\[" end="\]" contains=@pdfObjects contained
+syn region  pdfHash   matchgroup=pdfOperator start="<<" end=">>" contains=@pdfObjects contained
+syn match   pdfReference "\<\d\+\s\+\d\+\s\+R\>"
+"syn keyword pdfOperator R contained containedin=pdfReference
+
+syn region  pdfObject matchgroup=pdfType start="\<obj\>"     end="\<endobj\>" contains=@pdfObjects
+syn region  pdfObject matchgroup=pdfType start="\<obj\r\=\n" end="\<endobj\>" contains=@pdfObjects fold
+
+" Do these twice.  The ones with only newlines are foldable
+syn region  pdfStream matchgroup=pdfType start="\<stream\r\=\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject
+syn region  pdfXMLStream matchgroup=pdfType start="\<stream\r\=\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML
+syn region  pdfStream matchgroup=pdfType start="\<stream\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject fold
+syn region  pdfXMLStream matchgroup=pdfType start="\<stream\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML fold
+
+syn region  pdfPreProc start="\<xref\%(\r\|\n\|\r\n\)" end="^trailer\%(\r\|\n\|\r\n\)" skipwhite skipempty nextgroup=pdfHash contains=pdfNumber fold
+syn keyword pdfPreProc startxref
+syn match   pdfComment  "%.*\%(\r\|\n\)" contains=pdfPreProc
+syn match   pdfPreProc  "^%\%(%EOF\|PDF-\d\.\d\)\(\r\|\n\)"
+
+hi def link pdfOperator     Operator
+hi def link pdfNumber       Number
+hi def link pdfFloat        Float
+hi def link pdfBoolean      Boolean
+hi def link pdfConstant     Constant
+hi def link pdfName         Identifier
+hi def link pdfNameError    pdfStringError
+hi def link pdfHexString    pdfString
+hi def link pdfHexError     pdfStringError
+hi def link pdfString       String
+hi def link pdfStringError  Error
+hi def link pdfSpecialChar  SpecialChar
+hi def link pdfDelimiter    Delimiter
+hi def link pdfType         Type
+hi def link pdfReference    Tag
+hi def link pdfStream       NonText
+hi def link pdfPreProc      PreProc
+hi def link pdfComment      Comment
+
+let b:current_syntax = "pdf"