<?xml version="1.0"?>
<!-- $Id: vbscript.xml,v 1.2 2008/01/02 00:05:52 ssttoo Exp $ -->

<highlight lang="vbscript" case="no">

  <authors>
    <author name="Daniel Fruzynski" email="daniel-AT-poradnik-webmastera.com" />
  </authors>

  <default innerClass="code" />

  <region name="brackets" delimClass="brackets" innerClass="code" start="\(" end="\)">
    <contains all="yes"/>
  </region>


  <region name="strdouble" delimClass="quotes" innerClass="string" start="&quot;" end="&quot;"/>

  <region name="comment" start="'|[Rr][Ee][Mm]\b" end="/$/m" innerClass="comment">
    <contains block="cvstag"/>
  </region>

  <block name="number" match="\d*\.?\d+" innerClass="number"/>
  <block name="hexnumber" match="&amp;H[0-9a-fA-F]+" innerClass="number"/>

  <block name="identifier" match="[a-z_]\w*" innerClass="identifier" case="no"/>

  <block name="url" match="((https?|ftp):\/\/[\w\?\.\-\&amp;=\/%+]+)|(^|[\s,!?])www\.\w+\.\w+[\w\?\.\&amp;=\/%+]*" innerClass="url" contained="yes">
    <onlyin region="comment"/>
  </block>

  <block name="email" match="\w+[\.\w\-]+@(\w+[\.\w\-])+" innerClass="url" contained="yes">
    <onlyin region="comment"/>
  </block>

  <block name="note" match="\b(note|fixme):" innerClass="inlinedoc" contained="yes" case="no">
    <onlyin region="comment"/>
  </block>


  <block name="cvstag" match="\$\w+:.+\$" innerClass="inlinedoc" contained="yes">
    <onlyin region="comment"/>
  </block>

  <keywords name="constants" inherits="identifier" innerClass="builtin" case="no">
    <!-- Color Constants -->
    <keyword match="vbBlack" />
    <keyword match="vbRed" />
    <keyword match="vbGreen" />
    <keyword match="vbYellow" />
    <keyword match="vbBlue" />
    <keyword match="vbMagenta" />
    <keyword match="vbCyan" />
    <keyword match="vbWhite" />
    <!-- Comparison Constants -->
    <keyword match="vbBinaryCompare" />
    <keyword match="vbTextCompare" />
    <!-- Date and Time Constants -->
    <keyword match="vbSunday" />
    <keyword match="vbMonday" />
    <keyword match="vbTuesday" />
    <keyword match="vbWednesday" />
    <keyword match="vbThursday" />
    <keyword match="vbFriday" />
    <keyword match="vbSaturday" />
    <keyword match="vbUseSystemDayOfWeek" />
    <keyword match="vbFirstJan1" />
    <keyword match="vbFirstFourDays" />
    <keyword match="vbFirstFullWeek" />
    <!-- Date Format Constants -->
    <keyword match="vbGeneralDate" />
    <keyword match="vbLongDate" />
    <keyword match="vbShortDate" />
    <keyword match="vbLongTime" />
    <keyword match="vbShortTime" />
    <!-- Miscellaneous Constants -->
    <keyword match="vbObjectError" />
    <!-- MsgBox Constants -->
    <keyword match="vbOKOnly" />
    <keyword match="vbOKCancel" />
    <keyword match="vbAbortRetryIgnore" />
    <keyword match="vbYesNoCancel" />
    <keyword match="vbYesNo" />
    <keyword match="vbRetryCancel" />
    <keyword match="vbCritical" />
    <keyword match="vbQuestion" />
    <keyword match="vbExclamation" />
    <keyword match="vbInformation" />
    <keyword match="vbDefaultButton1" />
    <keyword match="vbDefaultButton2" />
    <keyword match="vbDefaultButton3" />
    <keyword match="vbDefaultButton4" />
    <keyword match="vbApplicationModal" />
    <keyword match="vbSystemModal" />
    <keyword match="vbOK" />
    <keyword match="vbCancel" />
    <keyword match="vbAbort" />
    <keyword match="vbRetry" />
    <keyword match="vbIgnore" />
    <keyword match="vbYes" />
    <keyword match="vbNo" />
    <!-- String Constants -->
    <keyword match="vbCr" />
    <keyword match="VbCrLf" />
    <keyword match="vbFormFeed" />
    <keyword match="vbLf" />
    <keyword match="vbNewLine" />
    <keyword match="vbNullChar" />
    <keyword match="vbNullString" />
    <keyword match="vbTab" />
    <keyword match="vbVerticalTab" />
    <!-- Tristate Constants -->
    <keyword match="vbUseDefault" />
    <keyword match="vbTrue" />
    <keyword match="vbFalse" />
    <!-- VarType Constants -->
    <keyword match="vbEmpty" />
    <keyword match="vbNull" />
    <keyword match="vbInteger" />
    <keyword match="vbLong" />
    <keyword match="vbSingle" />
    <keyword match="vbDouble" />
    <keyword match="vbCurrency" />
    <keyword match="vbDate" />
    <keyword match="vbString" />
    <keyword match="vbObject" />
    <keyword match="vbError" />
    <keyword match="vbBoolean" />
    <keyword match="vbVariant" />
    <keyword match="vbDataObject" />
    <keyword match="vbDecimal" />
    <keyword match="vbByte" />
    <keyword match="vbArray" />
  </keywords>

  <keywords name="functions" inherits="identifier" innerClass="builtin" case="no">
    <keyword match="Abs" />
    <keyword match="Array" />
    <keyword match="Asc" />
    <keyword match="Atn" />
    <keyword match="CBool" />
    <keyword match="CByte" />
    <keyword match="CCur" />
    <keyword match="CDate" />
    <keyword match="CDbl" />
    <keyword match="Chr" />
    <keyword match="CInt" />
    <keyword match="CLng" />
    <keyword match="Cos" />
    <keyword match="CreateObject" />
    <keyword match="CSng" />
    <keyword match="CStr" />
    <keyword match="Date" />
    <keyword match="DateAdd" />
    <keyword match="DateDiff" />
    <keyword match="DatePart" />
    <keyword match="DateSerial" />
    <keyword match="DateValue" />
    <keyword match="Day" />
    <keyword match="Escape" />
    <keyword match="Eval" />
    <keyword match="Exp" />
    <keyword match="Filter" />
    <keyword match="FormatCurrency" />
    <keyword match="FormatDateTime" />
    <keyword match="FormatNumber" />
    <keyword match="FormatPercent" />
    <keyword match="GetLocale" />
    <keyword match="GetObject" />
    <keyword match="GetRef" />
    <keyword match="Hex" />
    <keyword match="Hour" />
    <keyword match="InputBox" />
    <keyword match="InStr" />
    <keyword match="InStrRev" />
    <keyword match="Int" />
    <keyword match="Fix" />
    <keyword match="IsArray" />
    <keyword match="IsDate" />
    <keyword match="IsEmpty" />
    <keyword match="IsNull" />
    <keyword match="IsNumeric" />
    <keyword match="IsObject" />
    <keyword match="Join" />
    <keyword match="LBound" />
    <keyword match="LCase" />
    <keyword match="Left" />
    <keyword match="Len" />
    <keyword match="LoadPicture" />
    <keyword match="Log" />
    <keyword match="LTrim" />
    <keyword match="RTrim" />
    <keyword match="Trim" />
    <keyword match="Mid" />
    <keyword match="Minute" />
    <keyword match="Month" />
    <keyword match="MonthName" />
    <keyword match="MsgBox" />
    <keyword match="Now" />
    <keyword match="Oct" />
    <keyword match="Replace" />
    <keyword match="RGB" />
    <keyword match="Right" />
    <keyword match="Rnd" />
    <keyword match="Round" />
    <keyword match="ScriptEngine" />
    <keyword match="ScriptEngineBuildVersion" />
    <keyword match="ScriptEngineMajorVersion" />
    <keyword match="ScriptEngineMinorVersion" />
    <keyword match="Second" />
    <keyword match="SetLocale" />
    <keyword match="Sgn" />
    <keyword match="Sin" />
    <keyword match="Space" />
    <keyword match="Split" />
    <keyword match="Sqr" />
    <keyword match="StrComp" />
    <keyword match="String" />
    <keyword match="StrReverse" />
    <keyword match="Tan" />
    <keyword match="Time" />
    <keyword match="Timer" />
    <keyword match="TimeSerial" />
    <keyword match="TimeValue" />
    <keyword match="TypeName" />
    <keyword match="UBound" />
    <keyword match="UCase" />
    <keyword match="Unescape" />
    <keyword match="VarType" />
    <keyword match="Weekday" />
    <keyword match="WeekdayName" />
    <keyword match="Year" />
  </keywords>

  <keywords name="builtin" inherits="identifier" innerClass="builtin" case="no">
    <!--<keyword match="Class" />-->
    <keyword match="Debug" />
    <keyword match="Err" />
    <keyword match="Match" />
    <keyword match="RegExp" />
  </keywords>

  <keywords name="reserved" inherits="identifier" innerClass="reserved" case="no">
    <keyword match="Empty" />
    <keyword match="False" />
    <keyword match="Nothing" />
    <keyword match="Null" />
    <keyword match="True" />
    <keyword match="And" />
    <keyword match="Eqv" />
    <keyword match="Imp" />
    <keyword match="Is" />
    <keyword match="Mod" />
    <keyword match="Not" />
    <keyword match="Or" />
    <keyword match="Xor" />
    <keyword match="Call" />
    <keyword match="Class" />
    <keyword match="End" />
    <keyword match="Const" />
    <keyword match="Public" />
    <keyword match="Private" />
    <keyword match="Dim" />
    <keyword match="Do" />
    <keyword match="While" />
    <keyword match="Until" />
    <keyword match="Exit" />
    <keyword match="Loop" />
    <keyword match="Erase" />
    <keyword match="Execute" />
    <keyword match="ExecuteGlobal" />
    <keyword match="For" />
    <keyword match="Each" />
    <keyword match="In" />
    <keyword match="To" />
    <keyword match="Step" />
    <keyword match="Next" />
    <keyword match="Function" />
    <keyword match="Default" />
    <keyword match="If" />
    <keyword match="Then" />
    <keyword match="Else" />
    <keyword match="ElseIf" />
    <keyword match="On" />
    <keyword match="Error" />
    <keyword match="Resume" />
    <keyword match="Goto" />
    <keyword match="Option" />
    <keyword match="Explicit" />
    <keyword match="Property" />
    <keyword match="Get" />
    <keyword match="Let" />
    <keyword match="Set" />
    <keyword match="Randomize" />
    <keyword match="ReDim" />
    <keyword match="Preserve" />
    <keyword match="Select" />
    <keyword match="Case" />
    <keyword match="Stop" />
    <keyword match="Sub" />
    <keyword match="Wend" />
    <keyword match="With" />
  </keywords>

</highlight>
