vba.st - enscript - GNU Enscript
 (HTM) git clone git://thinkerwim.org/enscript.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       vba.st (2554B)
       ---
            1 /**
            2  * Name: vba
            3  * Description: Visual Basic (for Applications)
            4  * Author: Kevin Grover <grover@wizard.com>
            5  */
            6 
            7 /* To Do
            8  * - ?Get parser to work for X.X.X.X and not hilight separate Xs
            9  * - ?recognize type declaration characters ($,%,@, etc.. on variables)
           10  * - ?Look for line numbers/labels (for Goto's)  /^\s*[0-9A-Za-z]+:/
           11  */
           12 
           13 state vba extends HighlightEntry
           14 {
           15   /* Comments. */
           16   /[\']|^\s*Rem/ {
           17     comment_face (true);
           18     language_print ($0);
           19     call (eat_one_line);
           20     comment_face (false);
           21   }
           22 
           23   /* String constants. */
           24   /\".*\"/ {
           25     string_face (true);
           26     language_print ($0);
           27     string_face (false);
           28   }
           29 
           30   /* Keywords. From:
           31                Excel for Windows 95 Power Programming with VGA
           32                2nd Ed, John Walkenbach, pg 160
           33 
           34      (build-re '(
           35      Abs And Any As Boolean ByRef ByVal Call Case CBool CCur CDate
           36      CDbl CDecl CInt Circle CLng Close Const CSng CStr CurDirrase
           37      Currency CVar CVDate CVErr Date Debug Declare
           38 
           39      DefBool DefCur DefDate DefDbl DefInt DefLng DefObj DefSng DefStr
           40      DefVar Dim Dir Do Double Each Else ElsIf Empty End EndIf Eqv Erase
           41      Error Exit False Fix For Format FreeFile
           42 
           43      Function Get Global GoSub GoTo If Imp In Input InputB Instr InstrB Int
           44      Integer Is LBound Len LenB Let Like Line Load Local Lock Long Loop
           45      LSet Me Mid
           46 
           47      MidB Mod Name New Next Not Nothing Null Object On Open Option Optional
           48      Or Point Preserve Print Private Property PSet Public Put ReDim Rem
           49      Resume Return RSet Scale Seek
           50 
           51      Select Set Sgn Shared Single Spc Static Stop StrComp String Sub Tab
           52      Then TO True Type TypeOf UBound Unload Unlock Until Variant Wend While
           53      Width With Write Xor))
           54   */
           55   /\b(A(bs|n(d|y)|s)|B(oolean|y(Ref|Val))\
           56 |C(Bool|Cur|D(ate|bl|ecl)|Int|Lng|S(ng|tr)|V(Date|Err|ar)|a(ll|se)|ircle\
           57 |lose|onst|ur(Dirrase|rency))\
           58 |D(ate|e(bug|clare|f(Bool|Cur|D(ate|bl)|Int|Lng|Obj|S(ng|tr)|Var))\
           59 |i(m|r)|o(|uble))\
           60 |E(ach|ls(If|e)|mpty|nd(|If)|qv|r(ase|ror)|xit)\
           61 |F(alse|ix|or(|mat)|reeFile|unction)|G(et|lobal|o(Sub|To))\
           62 |I(f|mp|n(|put(|B)|str(|B)|t(|eger))|s)\
           63 |L(Bound|Set|e(n(|B)|t)|i(ke|ne)|o(ad|c(al|k)|ng|op))|M(e|id(|B)|od)\
           64 |N(ame|e(w|xt)|ot(|hing)|ull)|O(bject|n|p(en|tion(|al))|r)\
           65 |P(Set|oint|r(eserve|i(nt|vate)|operty)|u(blic|t))\
           66 |R(Set|e(Dim|m|sume|turn))\
           67 |S(cale|e(ek|lect|t)|gn|hared|ingle|pc|t(atic|op|r(Comp|ing))|ub)\
           68 |T(O|ab|hen|rue|ype(|Of))|U(Bound|n(lo(ad|ck)|til))|Variant\
           69 |W(end|hile|i(dth|th)|rite)|Xor)\b/ {
           70     keyword_face (true);
           71     language_print ($0);
           72     keyword_face (false);
           73   }
           74 }
           75 
           76 
           77 /*
           78 Local variables:
           79 mode: c
           80 End:
           81 */