summaryrefslogtreecommitdiff
path: root/runtime/syntax/web.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/web.vim')
-rw-r--r--runtime/syntax/web.vim39
1 files changed, 39 insertions, 0 deletions
diff --git a/runtime/syntax/web.vim b/runtime/syntax/web.vim
new file mode 100644
index 000000000..f7a7fdfdc
--- /dev/null
+++ b/runtime/syntax/web.vim
@@ -0,0 +1,39 @@
+" Vim syntax file
+" Language: WEB
+" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
+" Last Change: April 30, 2001
+
+" Details of the WEB language can be found in the article by Donald E. Knuth,
+" "The WEB System of Structured Documentation", included as "webman.tex" in
+" the standard WEB distribution, available for anonymous ftp at
+" ftp://labrea.stanford.edu/pub/tex/web/.
+
+" 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
+
+" Although WEB is the ur-language for the "Literate Programming" paradigm,
+" we base this syntax file on the modern superset, CWEB. Note: This shortcut
+" may introduce some illegal constructs, e.g., CWEB's "@c" does _not_ start a
+" code section in WEB. Anyway, I'm not a WEB programmer.
+if version < 600
+ source <sfile>:p:h/cweb.vim
+else
+ runtime! syntax/cweb.vim
+ unlet b:current_syntax
+endif
+
+" Replace C/C++ syntax by Pascal syntax.
+syntax include @webIncludedC <sfile>:p:h/pascal.vim
+
+" Double-@ means single-@, anywhere in the WEB source (as in CWEB).
+" Don't misinterpret "@'" as the start of a Pascal string.
+syntax match webIgnoredStuff "@[@']"
+
+let b:current_syntax = "web"
+
+" vim: ts=8