home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / Software / TemaCD / SuperIDE / Super.exe / _SETUP.1 / old_HTML.lng < prev    next >
Encoding:
Text File  |  1998-06-19  |  72.2 KB  |  1,153 lines

  1. /****************************************************************************\
  2. * TSyntaxMemoParser Script                                                   *
  3. * ------------------------                                                   *
  4. *                                                                            *
  5. * Author  :          David Brock                                             *
  6. * Date    :          March 28 1998                                           *
  7. * Language:          HTML with JavaScript and VBScript                       *
  8. \****************************************************************************/
  9.  
  10. /*--------------------------------------------------------------------------------------------------------------------
  11.  *
  12.  * Token value definitions
  13.  *
  14.  */
  15. #define ht_DEFAULT                  0
  16. #define ht_NUMBER                   1
  17. #define ht_STRING                   2
  18. #define ht_IDENTIFIER               3
  19. #define ht_TAGNAME                  4
  20. #define ht_ATTRIBUTE                5
  21. #define ht_TAGSTART                 6
  22. #define ht_TAGEND                   7
  23. #define ht_TAGCLOSE                 8
  24. #define ht_TAG_SCRIPT_START         9
  25. #define ht_TAG_SCRIPT_END           10
  26. #define ht_COMMENT                  11
  27. #define ht_EQUAL                    12
  28.  
  29. #define ht_COMMENT_END              13
  30. #define ht_WHITESPACE               14
  31. #define ht_PLAIN_ID                 15
  32. #define ht_SPECIAL                  16
  33. #define ht_TAG_UNK                  17
  34. #define ht_WEBURL                   18
  35. #define ht_MAILURL                  19
  36. #define ht_FIELD_UNK                20
  37.  
  38. #define ht_TAGNAME                  21
  39. #define ht_TAGCLOSE_SCRIPT          22
  40.  
  41. #define jt_RESERVED                 30
  42. #define jt_COMMENT                  31
  43. #define jt_WHITESPACE               32
  44. #define jt_COMMENT_LINE             33
  45. #define jt_STRING                   34
  46. #define jt_STRING_CHAR              35
  47. #define jt_IDENTIFIER               36
  48. #define jt_NUMBER                   37
  49. #define jt_SYMBOL                   38
  50. #define jt_BUILTINMETHOD            39
  51. #define jt_HEXNUMBER                40
  52. #define jt_IDENTIFIER               41
  53.  
  54. #define vb_FUNCTION                 50
  55. #define vb_METHOD                   51
  56. #define vb_RESERVED                 52
  57. #define vb_COMMENT                  53
  58. #define vb_SYMBOL                   54
  59. #define vb_STRING                   55
  60. #define vb_IDENTIFIER               56
  61. #define vb_NUMBER                   57
  62. #define vb_WHITESPACE               58
  63.  
  64. #define sv_LANGUAGE                 60
  65. #define sv_JAVA_STRING              61
  66. #define sv_VB_STRING                62
  67. #define ht_JS_SCRIPT                63
  68. #define ht_VB_SCRIPT                64
  69.  
  70. /*--------------------------------------------------------------------------------------------------------------------
  71.  *
  72.  * State definitions
  73.  *
  74.  */
  75. #define ss_START                    0
  76. #define ss_SCRIPT                   1
  77. #define ss_STRING                   2
  78. #define ss_INTAG                    3
  79. #define ss_ATTRIBUTES               4
  80. #define ss_JAVASCRIPT               5
  81. #define ss_VBSCRIPT                 6
  82. #define ss_LANGTYPE                 7
  83. #define ss_JAVA_LANG                8
  84. #define ss_VB_LANG                  9
  85.  
  86. /*--------------------------------------------------------------------------------------------------------------------
  87.  *
  88.  * Common script elements
  89.  *
  90.  */
  91. #define _non_alpha_                 '[^_A-Za-z0-9]'
  92. #define _all_chars_                 '[\x00-\xFF]'
  93. #define _no_chars_                  '[]'
  94. #define _dont_care_                 _all_chars_
  95. #define _DEFAULT_BACKGROUND         clWhite
  96. #define _DEFAULT_FOREGROUND         clBlack
  97.  
  98.  
  99.  
  100.  
  101. /*--------------------------------------------------------------------------------------------------------------------
  102.  *
  103.  * Language style definitions
  104.  *
  105.  * NAME            Short description of the language defined in this script
  106.  *                 Default is <Custom language>
  107.  *
  108.  * CASE            Case-sensitivity of the characters of the language.
  109.  *                 May take the following values:
  110.  *                   __INSENSITIVE     No case sensitivity
  111.  *                   __SENSITIVE       Case sensitive
  112.  *                 Default is __INSENSITIVE
  113.  *
  114.  * OPTIONS         TSyntaxMemo default start-up options.
  115.  *                 May take the following values:
  116.  *                       __DEFAULT_OPTIONS            Component default options, denoted by (*) below
  117.  *                       __OPT_SHOW_RIGHT_MARGIN      (*) Show right margin position
  118.  *                       __OPT_SHOW_GUTTER            (*) Show left gutter area
  119.  *                       __OPT_PRINT_WRAP             (*) Wrap lines when printing
  120.  *                       __OPT_PRINT_LINENOS          (*) Print line numbers
  121.  *                       __OPT_PRINT_FILENAME         (*) Print filename in header
  122.  *                       __OPT_PRINT_DATE             (*) Print date in header
  123.  *                       __OPT_PRINT_PAGENOS          (*) Print page numbers in footer
  124.  *                       __OPT_WORDWRAP               ( ) Word-wrap text
  125.  *                       __OPT_AUTOINDENT             (*) Auto-indent new lines
  126.  *                       __OPT_TABCOLUMN              (*) 'Smart' tab key action
  127.  *                       __OPT_WRAP_OVERRIDE          ( ) Override word-wrap on certain lines
  128.  *                       __WORD_SELECT                (*) Double click selects word at cursor
  129.  *                       __OPT_SHOW_RMARGIN           (*) Show right margin position (Synonym for __OPT_SHOW_RIGHT_MARGIN)
  130.  *                       __OPT_SHOW_WRAPCOLUMN        ( ) Show word-wrap column in word-wrap mode
  131.  *                       __OPT_TITLE_AS_FILENAME      (*) Set print page title to filename when loading/saving
  132.  *                       __OPT_PROCESS_DROP_FILES     ( ) Generate event for dropping of files from explorer
  133.  *                       __OPT_BLOCK_CURSOR           (*) Use block cursor in overwrite mode
  134.  *                 The above options may be combined by adding (+) together the options desired
  135.  *                 Default is __DEFAULT_OPTIONS
  136.  *
  137.  * WORDWRAPCOLUMN  Column number at which word-wrapping will occur.
  138.  *                 May take the following values:
  139.  *                       _EDGE                        Word-wrap at edge of view window
  140.  *                       0                            Word-wrap at edge of view window (Synonym for _EDGE)
  141.  *                       <n>                          Decimal column number
  142.  *                 Default is _EDGE
  143.  *
  144.  * GUTTER          Width of left gutter in pixels.
  145.  *                 May take a velue of:
  146.  *                       0                            Left gutter is not visible
  147.  *                       >= 34                        Gutter width
  148.  *                 The gutter cannot be set to a value in the range 1..33 since space must be available
  149.  *                 for the side by side glyphs on each line.
  150.  *
  151.  * STARTSTATE
  152.  * ANCHOR
  153.  * CONTEXTSTATES
  154.  * EXAMPLETEXT
  155.  * EDITABLESTYLES
  156.  * FONTNAME
  157.  * FONTSIZE
  158.  * TABCOLUMNS
  159.  * TABDEFAULT
  160.  * INDENTSTEP
  161.  * WRAPOVERRIDE
  162.  * SELTEXTCOLOR
  163.  * SELTEXTBACK
  164.  *
  165.  */
  166. %%language
  167.    Name                      = 'HTML'
  168.    Case                      = __INSENSITIVE
  169.    Options                   = __DEFAULT_OPTIONS
  170.    WordWrapColumn            = _EDGE
  171.    Gutter                    = _DEFAULT_GUTTER
  172.    StartState                = [ss_START]
  173.    Anchor                    = [ht_TAGSTART
  174.                                 jt_BUILTINMETHOD jt_SYMBOL             jt_RESERVED        jt_COMMENT
  175.                                 jt_STRING        jt_STRING_CHAR        jt_IDENTIFIER      jt_NUMBER
  176.                                 jt_HEXNUMBER
  177.                                 vb_FUNCTION      vb_METHOD             vb_RESERVED        vb_COMMENT
  178.                                 vb_SYMBOL        vb_STRING             vb_IDENTIFIER      vb_NUMBER]
  179.    ContextStates             = (ht_JS_SCRIPT,    jt_BUILTINMETHOD,     jt_RESERVED,       jt_SYMBOL,
  180.                                 jt_COMMENT,      jt_STRING,            jt_STRING_CHAR,    jt_IDENTIFIER,
  181.                                 jt_NUMBER,       jt_HEXNUMBER
  182.                                 [ss_SCRIPT ss_JAVASCRIPT]),
  183.  
  184.                                (ht_VB_SCRIPT,    vb_FUNCTION,          vb_METHOD,         vb_RESERVED,
  185.                                 vb_COMMENT,      vb_SYMBOL,            vb_STRING,         vb_IDENTIFIER,
  186.                                 vb_NUMBER
  187.                                 [ss_SCRIPT ss_VBSCRIPT])
  188.                                 
  189.    ExampleText               = '<!-- Syntax Highlighting -->\n\
  190.                                \<HTML>\n\
  191.                                \<HEAD><TITLE>New Page</TITLE></HEAD>\n\
  192.                                \<p align=center>\n\
  193.                                \Plain HTML body text </p>\n\
  194.                                \<a href="mailto:dbrock@cqm.co.uk">Author</a>\n\
  195.                                \</BODY>\n\
  196.                                \</HTML>\n'
  197.  
  198.    EditableStyles              ('Comment',       ht_COMMENT),
  199.                                ('String',        ht_STRING),
  200.                                ('Tag name',      ht_TAGNAME),
  201.                                ('Field name',    ht_ATTRIBUTE),
  202.                                ('Special char',  ht_SPECIAL),
  203.                                ('Number',        ht_NUMBER),
  204.                                ('Web URLs',      ht_WEBURL),
  205.                                ('JS Comment',    jt_COMMENT),
  206.                                ('JS Keyword',    jt_RESERVED),
  207.                                ('JS Method',     jt_BUILTINMETHOD),
  208.                                ('JS Symbol',     jt_SYMBOL),
  209.                                ('JS String',     jt_STRING),
  210.                                ('JS Indentifier',jt_IDENTIFIER),
  211.                                ('JS Number',     jt_NUMBER),
  212.                                ('VB Comment',    vb_COMMENT),
  213.                                ('VB Keyword',    vb_RESERVED),
  214.                                ('VB Method',     vb_METHOD),
  215.                                ('VB Function',   vb_FUNCTION),
  216.                                ('VB Symbol',     vb_SYMBOL),
  217.                                ('VB String',     vb_STRING),
  218.                                ('VB Indentifier',vb_IDENTIFIER),
  219.                                ('VB Number',     vb_NUMBER),
  220.                                ('Default',       ht_DEFAULT)
  221.  
  222.  
  223. /********************************************************************************************************************\
  224. *                                                                                                                    *
  225. *                                 H T M L      SPECIFIC SCRIPT ITEMS                                                 *
  226. *                                 ==================================                                                 *
  227. *                                                                                                                    *
  228. \********************************************************************************************************************/
  229.  
  230.  
  231.  
  232. /*--------------------------------------------------------------------------------------------------------------------
  233.  *
  234.  * Fixed lexeme definitions
  235.  *
  236.  */
  237. %%words
  238. '</'                 _dont_care_              ht_TAGEND
  239. '<'                  _dont_care_              ht_TAGSTART
  240. '>'                  _dont_care_              ht_TAGCLOSE                [ss_INTAG ss_ATTRIBUTES]
  241. '>'                  _dont_care_              ht_TAGCLOSE_SCRIPT         [ss_SCRIPT]
  242. '<!--'               _dont_care_              ht_COMMENT                 [ss_START]
  243. '<!--'               _dont_care_              ht_JS_SCRIPT               [ss_JAVA_LANG ss_JAVASCRIPT]
  244. '<!--'               _dont_care_              ht_VB_SCRIPT               [ss_VB_LANG   ss_VBSCRIPT]
  245. '-->'                _dont_care_              ht_COMMENT_END             [ss_SCRIPT ss_JAVASCRIPT ss_VBSCRIPT]
  246. '<!'                 _dont_care_              ht_TAGSTART
  247. '</script'           _dont_care_              ht_TAG_SCRIPT_END          [ss_START ss_JAVASCRIPT ss_VBSCRIPT]
  248. '<script'            _non_alpha_              ht_TAG_SCRIPT_START
  249. 'language'           _non_alpha_              sv_LANGUAGE                [ss_SCRIPT]
  250. 'javascript'         _dont_care_              sv_JAVA_STRING             [ss_SCRIPT ss_LANGTYPE]
  251. 'javascript1.1'      _dont_care_              sv_JAVA_STRING             [ss_SCRIPT ss_LANGTYPE]
  252. 'vbscript'           _dont_care_              sv_VB_STRING               [ss_SCRIPT ss_LANGTYPE]
  253. '"javascript"'       _dont_care_              sv_JAVA_STRING             [ss_SCRIPT ss_LANGTYPE]
  254. '"javascript1.1"'    _dont_care_              sv_JAVA_STRING             [ss_SCRIPT ss_LANGTYPE]
  255. '"vbscript"'         _dont_care_              sv_VB_STRING               [ss_SCRIPT ss_LANGTYPE]
  256.  
  257. '='                  _dont_care_              ht_EQUAL                   [ss_ATTRIBUTES]
  258. 'a'                  _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  259. 'address'            _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  260. 'align'              _non_alpha_              ht_ATTRIBUTE               [ss_INTAG]
  261. 'alt'                _non_alpha_              ht_ATTRIBUTE               [ss_INTAG]
  262. 'applet'             _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  263. 'b'                  _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  264. 'basefont'           _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  265. 'big'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  266. 'blink'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  267. 'blockquote'         _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  268. 'body'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  269. 'br'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  270. 'caption'            _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  271. 'center'             _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  272. 'cite'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  273. 'code'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  274. 'codebase'           _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  275. 'dd'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  276. 'dir'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  277. 'div'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  278. 'dl'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  279. 'doctype'            _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  280. 'dt'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  281. 'em'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  282. 'embed'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  283. 'font'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  284. 'form'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  285. 'frame'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  286. 'frameset'           _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  287. 'h'                  _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  288. 'h1'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  289. 'h2'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  290. 'h3'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  291. 'h4'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  292. 'h5'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  293. 'h6'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  294. 'head'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  295. 'height'             _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  296. 'hr'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  297. 'href'               _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  298. 'hspace'             _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  299. 'html'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  300. 'i'                  _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  301. 'img'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  302. 'input'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  303. 'isindex'            _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  304. 'kbd'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  305. 'li'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  306. 'link'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  307. 'mark'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  308. 'marquee'            _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  309. 'menu'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  310. 'meta'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  311. 'methods'            _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  312. 'name'               _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  313. 'nextid'             _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  314. 'nobr'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  315. 'noframes'           _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  316. 'ol'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  317. 'option'             _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  318. 'p'                  _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  319. 'pre'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  320. 'samp'               _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  321. 'select'             _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  322. 'small'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  323. 'sound'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  324. 'strike'             _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  325. 'strong'             _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  326. 'sub'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  327. 'sup'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  328. 'rel'                _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  329. 'rev'                _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  330. 'table'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  331. 'target'             _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  332. 'td'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  333. 'textarea'           _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  334. 'th'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  335. 'title'              _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  336. 'tr'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  337. 'tt'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  338. 'u'                  _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  339. 'ul'                 _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  340. 'urn'                _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  341. 'value'              _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  342. 'var'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  343. 'vspace'             _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  344. 'wbr'                _non_alpha_              ht_TAGNAME                 [ss_INTAG]
  345. 'width'              _non_alpha_              ht_ATTRIBUTE               [ss_ATTRIBUTES]
  346.  
  347. 'ß'            _dont_care_              ht_SPECIAL
  348. 'á'           _dont_care_              ht_SPECIAL
  349. 'à'           _dont_care_              ht_SPECIAL
  350. 'â'            _dont_care_              ht_SPECIAL
  351. 'ã'           _dont_care_              ht_SPECIAL
  352. 'å'            _dont_care_              ht_SPECIAL
  353. 'ä'             _dont_care_              ht_SPECIAL
  354. 'æ'            _dont_care_              ht_SPECIAL
  355. 'ç'           _dont_care_              ht_SPECIAL
  356. '©'             _dont_care_              ht_SPECIAL
  357. 'é'           _dont_care_              ht_SPECIAL
  358. 'è'           _dont_care_              ht_SPECIAL
  359. 'ê'            _dont_care_              ht_SPECIAL
  360. 'ð'              _dont_care_              ht_SPECIAL
  361. 'ë'             _dont_care_              ht_SPECIAL
  362. '>'               _dont_care_              ht_SPECIAL
  363. 'í'           _dont_care_              ht_SPECIAL
  364. 'ì'           _dont_care_              ht_SPECIAL
  365. 'î'            _dont_care_              ht_SPECIAL
  366. 'ï'             _dont_care_              ht_SPECIAL
  367. '<'               _dont_care_              ht_SPECIAL
  368. ' '             _dont_care_              ht_SPECIAL
  369. 'ñ'           _dont_care_              ht_SPECIAL
  370. 'ó'           _dont_care_              ht_SPECIAL
  371. 'ò'           _dont_care_              ht_SPECIAL
  372. 'ô'            _dont_care_              ht_SPECIAL
  373. 'õ'           _dont_care_              ht_SPECIAL
  374. 'ö'             _dont_care_              ht_SPECIAL
  375. 'ø'           _dont_care_              ht_SPECIAL
  376. '®'              _dont_care_              ht_SPECIAL
  377. 'þ'            _dont_care_              ht_SPECIAL
  378. '™'            _dont_care_              ht_SPECIAL
  379. 'ú'           _dont_care_              ht_SPECIAL
  380. 'ù'           _dont_care_              ht_SPECIAL
  381. 'û'            _dont_care_              ht_SPECIAL
  382. 'ü'             _dont_care_              ht_SPECIAL
  383. 'ý'           _dont_care_              ht_SPECIAL
  384. 'ÿ'             _dont_care_              ht_SPECIAL
  385. 'http://'            _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  386. 'ftp://'             _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  387. 'mailto:'            _dont_care_              ht_MAILURL                 [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  388. 'news:'              _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  389. 'telnet://'          _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  390. 'gopher://'          _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  391. 'nntp://'            _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  392. 'wais://'            _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  393. 'newsrc://'          _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  394. 'file://'            _dont_care_              ht_WEBURL                  [ss_START ss_INTAG ss_STRING ss_ATTRIBUTES]
  395.  
  396.  
  397. /*--------------------------------------------------------------------------------------------------------------------
  398.  *
  399.  * Fixed lexeme follow on handlers
  400.  *
  401.  */
  402. %%handler
  403. ht_COMMENT              _all_chars_?                '\-\->'                    _use_
  404. ht_MAILURL              __STD_MAIL_URL
  405. ht_WEBURL               _WEB_CHAR                  _all_chars_               _discard_
  406.  
  407.  
  408. /*--------------------------------------------------------------------------------------------------------------------
  409.  *
  410.  * Variable character tokens
  411.  *
  412.  */
  413. %%tokens
  414. ht_WHITESPACE           '[\x00-\s]'                 '[\x00-\s]'?       '[^\x00-\s]'     _discard_    [ss_INTAG ss_START ss_ATTRIBUTES]
  415. ht_PLAIN_ID             __STD_IDENTIFIER                                                             [ss_INTAG ss_ATTRIBUTES]
  416. ht_SPECIAL              '&'                         '[^;\n\s]'?        '[;\n\s]'        _use_
  417.  
  418. InState ss_INTAG
  419.  (
  420.    ht_TAG_UNK             '[a-zA-Z]'                '[a-zA-Z0-9\-]'    '[^a-zA-Z0-9\-]' _discard_    [ss_INTAG ss_ATTRIBUTES]
  421.  )
  422.  
  423. InState ss_ATTRIBUTES
  424.  (
  425.    ht_FIELD_UNK           '[a-zA-Z]'                '[a-zA-Z0-9\-]'    '[^a-zA-Z0-9\-]' _discard_    [ss_INTAG ss_ATTRIBUTES]
  426.    ht_STRING              __STD_HTML_STRING  [ss_INTAG ss_ATTRIBUTES]
  427.    ht_NUMBER              __STD_NUMBER_OR_FP [ss_INTAG ss_ATTRIBUTES]
  428.  )
  429.  
  430.  
  431. /********************************************************************************************************************\
  432. *                                                                                                                    *
  433. *                                 J A V A S C R I P T   SPECIFIC SCRIPT ITEMS                                        *
  434. *                                 ===========================================                                        *
  435. *                                                                                                                    *
  436. \********************************************************************************************************************/
  437.  
  438.  
  439.  
  440. /*--------------------------------------------------------------------------------------------------------------------
  441.  *
  442.  * Fixed lexeme definitions
  443.  *
  444.  */
  445. %%words
  446. 'abstract'                  _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  447. 'boolean'                   _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  448. 'break'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  449. 'byte'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  450. 'case'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  451. 'catch'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  452. 'char'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  453. 'class'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  454. 'const'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  455. 'continue'                  _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  456. 'default'                   _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  457. 'do'                        _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  458. 'double'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  459. 'else'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  460. 'extends'                   _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  461. 'false'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  462. 'final'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  463. 'finally'                   _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  464. 'float'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  465. 'for'                       _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  466. 'function'                  _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  467. 'goto'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  468. 'if'                        _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  469. 'implements'                _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  470. 'import'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  471. 'in'                        _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  472. 'instanceof'                _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  473. 'int'                       _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  474. 'interface'                 _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  475. 'long'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  476. 'native'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  477. 'new'                       _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  478. 'null'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  479. 'package'                   _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  480. 'private'                   _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  481. 'protected'                 _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  482. 'public'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  483. 'return'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  484. 'short'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  485. 'static'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  486. 'super'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  487. 'switch'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  488. 'synchroniz'                _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  489. 'this'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  490. 'throw'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  491. 'throws'                    _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  492. 'transient'                 _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  493. 'true'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  494. 'try'                       _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  495. 'var'                       _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  496. 'void'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  497. 'while'                     _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  498. 'with'                      _non_alpha_       jt_RESERVED        [ss_JAVASCRIPT]
  499. //
  500. //
  501. //
  502. 'abs'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  503. 'acos'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  504. 'alert'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  505. 'anchor'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  506. 'asin'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  507. 'atan'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  508. 'back'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  509. 'big'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  510. 'blink'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  511. 'blur'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  512. 'bold'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  513. 'ceil'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  514. 'charAt'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  515. 'clear'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  516. 'clearTimeout'              _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  517. 'click'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  518. 'close'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  519. 'confirm'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  520. 'cos'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  521. 'escape'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  522. 'eval'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  523. 'exp'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  524. 'fixed'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  525. 'floor'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  526. 'focus'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  527. 'fontcolor'                 _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  528. 'fontsize'                  _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  529. 'forward'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  530. 'getDate'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  531. 'getDay'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  532. 'getHours'                  _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  533. 'getMinutes'                _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  534. 'getMonth'                  _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  535. 'getSeconds'                _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  536. 'getTime'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  537. 'getTimezoneOffset'         _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  538. 'getYear'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  539. 'go'                        _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  540. 'indexOf'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  541. 'isNaN'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  542. 'italics'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  543. 'lastIndexOf'               _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  544. 'link'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  545. 'log'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  546. 'max'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  547. 'min'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  548. 'open'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  549. 'parse'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  550. 'parseFloat'                _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  551. 'parseInt'                  _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  552. 'pow'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  553. 'prompt'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  554. 'random'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  555. 'round'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  556. 'select'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  557. 'setDate'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  558. 'setHours'                  _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  559. 'setMinutes'                _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  560. 'setMonth'                  _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  561. 'setSeconds'                _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  562. 'setTimeout'                _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  563. 'setTime'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  564. 'setYear'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  565. 'sin'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  566. 'small'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  567. 'sqrt'                      _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  568. 'strike'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  569. 'sub'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  570. 'submit'                    _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  571. 'substring'                 _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  572. 'sup'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  573. 'tan'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  574. 'toGMTString'               _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  575. 'toLocaleString'            _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  576. 'toLowerCase'               _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  577. 'toUpperCase'               _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  578. 'unescape'                  _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  579. 'UTC'                       _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  580. 'write'                     _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  581. 'writeln'                   _non_alpha_       jt_BUILTINMETHOD   [ss_JAVASCRIPT]
  582.  
  583. ','                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  584. '='                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  585. '+='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  586. '-='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  587. '*='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  588. '/='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  589. '%='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  590. '<<='                       _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  591. '>>='                       _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  592. '>>>='                      _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  593. '&='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  594. '^='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  595. '|='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  596. '?:'                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  597. '||'                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  598. '&&'                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  599. '|'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  600. '^'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  601. '&'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  602. '=='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  603. '!='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  604. '<'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  605. '<='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  606. '>'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  607. '>='                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  608. '<<'                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  609. '>>'                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  610. '>>>'                       _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  611. '+'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  612. '-'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  613. '*'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  614. '/'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  615. '%'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  616. '!'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  617. '~'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  618. '++'                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  619. '--'                        _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  620. '('                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  621. ')'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  622. '['                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  623. ']'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  624. '.'                         _dont_care_       jt_SYMBOL          [ss_JAVASCRIPT]
  625.  
  626. '0'                         '[xX]'            jt_HEXNUMBER       [ss_JAVASCRIPT]
  627. '\/\/'                      _dont_care_       jt_COMMENT_LINE    [ss_JAVASCRIPT]
  628.  
  629.  
  630. /*--------------------------------------------------------------------------------------------------------------------
  631.  *
  632.  * Fixed lexeme follow on handlers
  633.  *
  634.  */
  635. %%handler
  636. jt_COMMENT_LINE         __STD_JS_LINE_COMMENT
  637. jt_HEXNUMBER            '[xX0-9A-Fa-f]'             '[^0-9a-fA-F]'           _discard_
  638.  
  639.  
  640. /*--------------------------------------------------------------------------------------------------------------------
  641.  *
  642.  * Variable character tokens
  643.  *
  644.  */
  645. %%tokens
  646.  
  647. InState ss_JAVASCRIPT
  648.  (
  649.    jt_IDENTIFIER           __STD_IDENTIFIER
  650.    jt_STRING               __STD_C_STRING
  651.    jt_NUMBER               __STD_NUMBER_OR_FP
  652.    jt_WHITESPACE           '[\x00-\s]'      '[\x00-\s]'?  '[^\x00-\s]'  _discard_
  653.  )
  654.  
  655.  
  656. %%words
  657. 'Abs'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  658. 'Array'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  659. 'Asc'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  660. 'Atn'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  661. 'CBool'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  662. 'CByte'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  663. 'CCur'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  664. 'CDate'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  665. 'CDbl'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  666. 'Chr'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  667. 'CInt'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  668. 'CLng'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  669. 'Cos'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  670. 'CreateObject'              _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  671. 'CSng'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  672. 'CStr'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  673. 'Date'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  674. 'DateAddFunction'           _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  675. 'DateDiff'                  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  676. 'DatePart'                  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  677. 'DateSerial'                _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  678. 'DateValue'                 _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  679. 'Day'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  680. 'Exp'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  681. 'Filter'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  682. 'Fix'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  683. 'FormatCurrency'            _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  684. 'FormatDateTime'            _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  685. 'FormatNumber'              _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  686. 'FormatPercent'             _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  687. 'GetObject'                 _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  688. 'Hex'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  689. 'Hour'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  690. 'InputBox'                  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  691. 'InStr'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  692. 'InStrRev'                  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  693. 'Int'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  694. 'IsArray'                   _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  695. 'IsDate'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  696. 'IsEmpty'                   _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  697. 'IsNull'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  698. 'IsNumeric'                 _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  699. 'IsObject'                  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  700. 'Join'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  701. 'LBound'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  702. 'LCase'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  703. 'Left'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  704. 'Len'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  705. 'LoadPicture'               _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  706. 'Log'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  707. 'LTrim'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  708. 'Mid'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  709. 'Minute'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  710. 'Month'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  711. 'MonthName'                 _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  712. 'MsgBox'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  713. 'Now'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  714. 'Oct'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  715. 'Replace'                   _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  716. 'RGB'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  717. 'Right'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  718. 'Rnd'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  719. 'Round'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  720. 'RTrim'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  721. 'ScriptEngine'              _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  722. 'ScriptEngineBuildVersion'  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  723. 'ScriptEngineMajorVersion'  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  724. 'ScriptEngineMinorVersion'  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  725. 'Second'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  726. 'Sgn'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  727. 'Sin'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  728. 'Space'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  729. 'Split'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  730. 'Sqr'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  731. 'StrComp'                   _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  732. 'StrReverse'                _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  733. 'String'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  734. 'Tan'                       _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  735. 'Time'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  736. 'TimeSerial'                _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  737. 'TimeValue'                 _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  738. 'Trim'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  739. 'TypeName'                  _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  740. 'UBound'                    _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  741. 'UCase'                     _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  742. 'VarType'                   _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  743. 'Weekday'                   _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  744. 'WeekdayName'               _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  745. 'Year'                      _non_alpha_       vb_FUNCTION   [ss_VBSCRIPT]
  746. 'Add'                       _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  747. 'AddFolders'                _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  748. 'BuildPath'                 _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  749. 'Clear'                     _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  750. 'Close'                     _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  751. 'Copy'                      _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  752. 'CopyFile'                  _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  753. 'CopyFolder'                _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  754. 'CreateFolder'              _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  755. 'CreateTextFile'            _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  756. 'Delete'                    _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  757. 'DeleteFile'                _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  758. 'DeleteFolder'              _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  759. 'DriveExists'               _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  760. 'Exists'                    _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  761. 'FileExists'                _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  762. 'FolderExists'              _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  763. 'GetAbsolutePathName'       _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  764. 'GetBaseName'               _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  765. 'GetDrive'                  _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  766. 'GetDriveName'              _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  767. 'GetExtensionName'          _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  768. 'GetFile'                   _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  769. 'GetFileName'               _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  770. 'GetFolder'                 _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  771. 'GetParentFolderName'       _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  772. 'GetSpecialFolder'          _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  773. 'GetTempName'               _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  774. 'Items'                     _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  775. 'Keys'                      _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  776. 'Move'                      _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  777. 'MoveFile'                  _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  778. 'MoveFolder'                _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  779. 'OpenAsTextStream'          _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  780. 'OpenTextFile'              _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  781. 'Raise'                     _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  782. 'Read'                      _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  783. 'ReadAll'                   _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  784. 'ReadLine'                  _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  785. 'Remove'                    _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  786. 'RemoveAll'                 _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  787. 'Skip'                      _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  788. 'SkipLine'                  _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  789. 'Write'                     _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  790. 'WriteBlankLines'           _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  791. 'WriteLine'                 _non_alpha_       vb_METHOD     [ss_VBSCRIPT]
  792. 'call'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  793. 'case'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  794. 'const'                     _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  795. 'dim'                       _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  796. 'do'                        _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  797. 'each'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  798. 'else'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  799. 'elseif'                    _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  800. 'end'                       _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  801. 'erase'                     _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  802. 'error'                     _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  803. 'exit'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  804. 'explicit'                  _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  805. 'for'                       _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  806. 'function'                  _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  807. 'if'                        _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  808. 'in'                        _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  809. 'loop'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  810. 'next'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  811. 'nothing'                   _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  812. 'on'                        _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  813. 'option'                    _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  814. 'preserve'                  _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  815. 'private'                   _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  816. 'public'                    _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  817. 'randomize'                 _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  818. 'redim'                     _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  819. 'rem'                       _non_alpha_       vb_COMMENT    [ss_VBSCRIPT]
  820. '\''                        _dont_care_       vb_COMMENT    [ss_VBSCRIPT]
  821. 'resume'                    _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  822. 'select'                    _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  823. 'set'                       _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  824. 'step'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  825. 'sub'                       _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  826. 'then'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  827. 'to'                        _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  828. 'until'                     _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  829. 'wend'                      _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  830. 'while'                     _non_alpha_       vb_RESERVED   [ss_VBSCRIPT]
  831.  
  832. ','                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  833. '='                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  834. '+='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  835. '-='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  836. '*='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  837. '/='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  838. '%='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  839. '<<='                       _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  840. '>>='                       _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  841. '>>>='                      _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  842. '&='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  843. '^='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  844. '|='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  845. '?:'                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  846. '||'                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  847. '&&'                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  848. '|'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  849. '^'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  850. '&'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  851. '=='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  852. '!='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  853. '<'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  854. '<='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  855. '>'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  856. '>='                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  857. '<<'                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  858. '>>'                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  859. '>>>'                       _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  860. '+'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  861. '-'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  862. '*'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  863. '/'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  864. '%'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  865. '!'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  866. '~'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  867. '++'                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  868. '--'                        _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  869. '('                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  870. ')'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  871. '['                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  872. ']'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  873. '.'                         _dont_care_       vb_SYMBOL          [ss_VBSCRIPT]
  874.  
  875. /*--------------------------------------------------------------------------------------------------------------------
  876.  *
  877.  * Fixed lexeme follow on handlers
  878.  *
  879.  */
  880. %%handler
  881. vb_COMMENT              __STD_JS_LINE_COMMENT
  882.  
  883.  
  884.  
  885. /*--------------------------------------------------------------------------------------------------------------------
  886.  *
  887.  * Variable character tokens
  888.  *
  889.  */
  890. %%tokens
  891.  
  892. InState ss_VBSCRIPT
  893.  (
  894.    vb_IDENTIFIER           __STD_IDENTIFIER
  895.    vb_STRING               __STD_C_STRING
  896.    vb_NUMBER               __STD_NUMBER_OR_FP
  897.    vb_WHITESPACE           '[\x00-\s]'      '[\x00-\s]'?  '[^\x00-\s]'  _discard_
  898.  )
  899.  
  900. #ifdef ht_DEFAULT
  901. /*--------------------------------------------------------------------------------------------------------------------
  902.  *
  903.  * Display effects specification
  904.  *
  905.  */
  906. %%effects
  907. ht_DEFAULT              []                          _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  908. ht_TAGNAME              [fsBold]                    clBlue                      _DEFAULT_BACKGROUND
  909. ht_COMMENT              []                          clGreen                     _DEFAULT_BACKGROUND
  910. ht_IDENTIFIER           [fsBOLD]                    _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  911. ht_STRING               []                          clRed                       _DEFAULT_BACKGROUND
  912. ht_NUMBER               []                          clRed                       _DEFAULT_BACKGROUND
  913. ht_ATTRIBUTE            [fsBold]                    _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  914. ht_SPECIAL              [fsItalic]                  _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  915. ht_WEBURL               [fsUnderline]               clBlue                      _DEFAULT_BACKGROUND  'hotspot'
  916.  
  917. jt_COMMENT              [fsItalic]                  clBlue                      _DEFAULT_BACKGROUND
  918. jt_RESERVED             [fsBold]                    clGreen                     _DEFAULT_BACKGROUND
  919. jt_BUILTINMETHOD        [fsBold]                    _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  920. jt_SYMBOL               []                          clGreen                     _DEFAULT_BACKGROUND
  921. jt_STRING               [fsItalic]                  _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  922. jt_IDENTIFIER           [fsUnderline]               _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  923. jt_NUMBER               []                          clFuchsia                   _DEFAULT_BACKGROUND
  924.  
  925. vb_COMMENT              [fsItalic]                  clBlue                      _DEFAULT_BACKGROUND
  926. vb_RESERVED             [fsBold]                    _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  927. vb_METHOD               [fsUnderline]               _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  928. vb_FUNCTION             [fsUnderline]               _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  929. vb_SYMBOL               []                          clGreen                     _DEFAULT_BACKGROUND
  930. vb_STRING               [fsItalic]                  _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  931. vb_IDENTIFIER           [fsUnderline]               _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  932. vb_NUMBER               []                          _DEFAULT_FOREGROUND         _DEFAULT_BACKGROUND
  933. #endif
  934.  
  935. /*--------------------------------------------------------------------------------------------------------------------
  936.  *
  937.  * State switching definitions
  938.  *
  939.  * State switching is used in the following 2 situations:
  940.  * [1] HTML <script TAG
  941.  *     It is required to leave the <script.......> tag with the following states active:
  942.  *          ss_SCRIPT...........In middle of <script>........</script> section
  943.  *          ss_JAVASCRIPT.......Javascript may be encountered after tag close (default)
  944.  *          ss_VB_SCRIPT........VBScript may be encountered after tag close
  945.  *          ss_VB_LANG..........Recognise common HTML/VBScript lexemes
  946.  *          ss_JAVA_LANG........Recognise common HTML/JavaScript lexemes
  947.  *     The scenario is that the '<script' lexeme defined in %%words as ht_TAG_SCRIPT_START triggers the state
  948.  *     machine transition as below:
  949.  *        ht_TAG_SCRIPT_START ----------> +ss_ATTRIBUTES      Allow recognition of tag attribute names
  950.  *                                        +ss_SCRIPT          Now within a <script>....</script> section
  951.  *                                        +ss_JAVASCRIPT      Enable default script language style
  952.  *                                        +ss_JAVA_LANG       Allow common Javascript/HTML lexemes to be separated
  953.  *
  954.  *     Thereafter, the following lexemes may be encountered in the order listed:
  955.  *        sv_LANGUAGE ------------------> +ss_LANGTYPE        Allow recognition of 'language' attribute values
  956.  *        sv_JAVA_STRING ---------------> +ss_JAVA_LANG       Allow common Javascript/HTML lexemes to be separated
  957.  *                                        +ss_JAVASCRIPT      Enable Javascript lexeme recognition
  958.  *        sv_VB_STRING -----------------> +ss_VB_LANG         Allow common VBscript/HTML lexemes to be separated
  959.  *                                        +ss_VBSCRIPT        Enable VBscript lexeme recognition
  960.  *                                        -ss_JAVASCRIPT      Disable Javascript lexeme recognition
  961.  *                                        -ss_JAVA_LANG       Disable common Javascript/HTML lexeme recognition
  962.  *        ht_TAGCLOSE_SCRIPT -----------> -ss_LANGTYPE        Ensure redundant state is off now
  963.  *     Thus at the end of the script tag we will have ss_SCRIPT, one of (ss_JAVA_LANG, ss_VB_LANG) and one
  964.  *     of (ss_JAVASCRIPT, ss_VBSCRIPT) active.
  965.  *     Finally for the recognition of '</script' we must turn off the scripting states:
  966.  *        ht_TAG_SCRIPT_END ------------> -ss_JAVASCRIPT      Disable Javascript lexeme recognition
  967.  *                                        -ss_VBSCRIPT        Disable VBscript lexeme recognition
  968.  *                                        -ss_VB_LANG         Disable common VBScript/HTML lexeme recognition
  969.  *                                        -ss_JAVA_LANG       Disable common Javascript/HTML lexeme recognition
  970.  *                                        -ss_SCRIPT          Disable script lexeme recognition
  971.  *                                        +ss_ATTRIBUTES      Enable recognition of tag attribute names
  972.  *     At the conclusion of the '</script' tag with '>' we will return to the default state:
  973.  *        ht_TAGCLOSE ------------------> -ss_INTAG           Do not recognise tag names now
  974.  *                                        -ss_ATTRIBUTES      Do not recognise attribute names now
  975.  *     Thus the default state [ss_START] will be active at the end of a complete <script>.....</script> section
  976.  *
  977.  * [2] OTHER HTML TAGS
  978.  */
  979. %%states
  980. // ht_TAGEND == '</'
  981. // Turn on ss_INTAG to allow recognition of tag names
  982. ht_TAGEND                     (+[ss_INTAG])
  983.  
  984. // ht_TAGSTART == '<'
  985. //             == '<!'
  986. // Turn on ss_INTAG to allow recognition of tag names
  987. ht_TAGSTART                   (+[ss_INTAG])
  988.  
  989. // ht_TAGCLOSE == '>'
  990. // *** NOT inside a <script> tag
  991. // Turn off ss_INTAG and ss_ATTRIBUTES so that normal text will be recognised
  992. ht_TAGCLOSE                   (                                          -[ss_INTAG ss_ATTRIBUTES])
  993.  
  994. // ht_TAGNAME  == <identifier>
  995. // *** Only within a tag
  996. // Turn on ss_ATTRIBUTES to recognise attribute names
  997. //      off ss_INTAG so that tagnames will not be recognised now
  998. ht_TAGNAME                    (+[ss_ATTRIBUTES]                          -[ss_INTAG])
  999.  
  1000. // ht_TAG_UNK  == <identifier>
  1001. // *** Only within a tag
  1002. // Treat the same as a known tag....turn on ss_ATTRIBUTES to recognise attribute names
  1003. //                                       off ss_INTAG so that tagnames will not be recognised now
  1004. ht_TAG_UNK                    (+[ss_ATTRIBUTES]                          -[ss_INTAG])
  1005.  
  1006. // ht_TAG_SCRIPT_START == '<script'
  1007. // Treat as a combination of ht_TAGSTART followed by ht_TAGNAME:
  1008. //    ON:     ss_ATTRIBUTES         Recognise attribute names
  1009. //            ss_SCRIPT             We are now inside a <script tag
  1010. //            ss_JAVASCRIPT         Contained script is JavaScript by default
  1011. ht_TAG_SCRIPT_START           (+[ss_SCRIPT ss_ATTRIBUTES ss_JAVASCRIPT ss_JAVA_LANG]  -[ss_START])
  1012.  
  1013. // ht_TAG_SCRIPT_END == '</script'
  1014. // Treat as a combination of ht_TAGEND followed by ht_TAGNAME:
  1015. //    ON:     ss_ATTRIBUTES         Recognise attribute names
  1016. //            ss_START              Re-enable default state again
  1017. //    OFF:    ss_JAVASCRIPT         No script items allowed after this
  1018. //            ss_VBSCRIPT           -------"-------"------"-----------
  1019. //            ss_SCRIPT             -------"-------"------"-----------
  1020. ht_TAG_SCRIPT_END             (+[ss_ATTRIBUTES ss_START]                 -[ss_SCRIPT ss_JAVASCRIPT ss_VBSCRIPT ss_JAVA_LANG ss_VB_LANG ss_LANGTYPE])
  1021.  
  1022. // ht_COMMENT_END == '-->'
  1023. // End of HTML style comment. This is only seen in script sections (since the default ht_COMMENT will
  1024. // eat up the end of normal comments)
  1025. ht_COMMENT_END                (+[ss_START]                               -[ss_JAVASCRIPT ss_VBSCRIPT])
  1026.  
  1027. // ht_TAGCLOSE_SCRIPT == '>'
  1028. // Close of '<script....' tag. We require to turn off all states just leaving the ss_SCRIPT and one of
  1029. // ss_JAVASCRIPT or ss_VBSCRIPT active
  1030. ht_TAGCLOSE_SCRIPT            (                                          -[ss_LANGTYPE ss_ATTRIBUTES ss_INTAG])
  1031.  
  1032. // sv_LANGUAGE == 'language'
  1033. // An attribute inside the '<script......' tag. Enable ss_LANGTYPE so that any following 'JavaScript' or 'VBScript'
  1034. // will be acted upon
  1035. sv_LANGUAGE                   (+[ss_LANGTYPE])
  1036.  
  1037. // sv_JAVA_STRING == 'JavaScript'
  1038. //                == '"JavaScript"'
  1039. // Attribute value of 'language' in a '<script.....' tag
  1040. // Turn on the ss_JAVA_LANG so that HTML comment styles can be mapped to the JavaScript comment styles. Also
  1041. // turn on ss_JAVASCRIPT and make sure that ss_VBSCRIPT is now off.
  1042. sv_JAVA_STRING                (+[ss_JAVA_LANG ss_JAVASCRIPT]             -[ss_VBSCRIPT])
  1043.  
  1044. // sv_VB_STRING == 'VBScript'
  1045. //              == '"VBScript"'
  1046. // Attribute value of 'language' in a '<script.....' tag
  1047. // Turn on the ss_VB_LANG so that HTML comment styles can be mapped to the VBScript comment styles. Also
  1048. // turn on ss_VBSCRIPT and make sure that ss_JAVASCRIPT is now off.
  1049. sv_VB_STRING                  (+[ss_VB_LANG ss_VBSCRIPT]               -[ss_JAVASCRIPT ss_JAVA_LANG])
  1050.  
  1051. %%containers
  1052. //ht_STRING                     (+[ss_STRING]                            -[ss_START ss_INTAG ss_ATTRIBUTES])
  1053.  
  1054.  
  1055.  
  1056. %%map
  1057. sv_LANGUAGE                   ht_ATTRIBUTE
  1058. sv_JAVA_STRING                ht_STRING
  1059. sv_VB_STRING                  ht_STRING
  1060.  
  1061. ht_DEFAULT                    ht_DEFAULT
  1062. ht_TAGNAME                    ht_TAGNAME
  1063. ht_COMMENT                    ht_COMMENT
  1064. ht_IDENTIFIER                 ht_ATTRIBUTE
  1065. ht_STRING                     ht_STRING
  1066. ht_ATTRIBUTE                  ht_ATTRIBUTE
  1067. ht_TAGSTART                   ht_TAGNAME
  1068. ht_TAGEND                     ht_TAGNAME
  1069. ht_TAGCLOSE                   ht_TAGNAME
  1070. ht_WEBURL                     ht_WEBURL
  1071. ht_MAILURL                    ht_WEBURL
  1072. ht_NUMBER                     ht_NUMBER
  1073. ht_SPECIAL                    ht_SPECIAL
  1074. ht_TAG_Script_End             ht_TAGNAME
  1075. ht_TAG_SCRIPT_START           ht_TAGNAME
  1076. ht_JS_Script                  jt_Comment
  1077. ht_Comment_End                jt_Comment
  1078. ht_FIELD_UNK                  ht_IDENTIFIER
  1079. ht_TAG_UNK                    ht_IDENTIFIER
  1080. ht_PLAIN_ID                   ht_DEFAULT
  1081. ht_EQUAL                      ht_DEFAULT
  1082. ht_TAGCLOSE_SCRIPT            ht_TAGCLOSE
  1083.  
  1084. jt_RESERVED                   jt_RESERVED
  1085. jt_STRING                     jt_STRING
  1086. jt_COMMENT                    jt_COMMENT
  1087. jt_IDENTIFIER                 jt_IDENTIFIER
  1088. jt_COMMENT_LINE               jt_COMMENT
  1089. jt_STRING                     jt_STRING
  1090. jt_STRING_CHAR                jt_STRING
  1091. jt_BUILTINMETHOD              jt_BUILTINMETHOD
  1092. jt_HEXNUMBER                  jt_NUMBER
  1093. jt_NUMBER                     jt_NUMBER
  1094. jt_IDENTIFIER                 jt_IDENTIFIER
  1095. jt_WHITESPACE                 ht_WHITESPACE
  1096. jt_SYMBOL                     jt_SYMBOL
  1097.  
  1098. vb_FUNCTION                   vb_FUNCTION
  1099. vb_METHOD                     vb_METHOD
  1100. vb_RESERVED                   vb_RESERVED
  1101. vb_COMMENT                    vb_COMMENT
  1102. vb_SYMBOL                     vb_SYMBOL
  1103. vb_STRING                     vb_STRING
  1104. vb_IDENTIFIER                 vb_IDENTIFIER
  1105. vb_NUMBER                     vb_NUMBER
  1106. vb_WHITESPACE                 ht_WHITESPACE
  1107. ht_VB_Script                  vb_COMMENT
  1108.  
  1109. %%keys
  1110. caLEFT                  ([] Left)                     'Cursor Left'
  1111. caRIGHT                 ([] Right)                    'Cursor Right'
  1112. caLINEHOME              ([] Home)                     'Line start'
  1113. caLINEEND               ([] End)                      'Line end'
  1114. caUP                    ([] Up)                       'Line up'
  1115. caDOWN                  ([] Down)                     'Line down'
  1116. caPAGEUP                ([] PgUp)                     'Page up'
  1117. caPAGEDOWN              ([] PgDn)                     'Page down'
  1118. caWORDLEFT              ([Ctrl] Left)                 'Word left'
  1119. caWORDRIGHT             ([Ctrl] Right)                'Word right'
  1120. caDOCSTART              ([Ctrl] Home)                 'Document start'
  1121. caDOCEND                ([Ctrl] End)                  'Document end'
  1122. caCUT                   ([Ctrl] 'X')                  'Cut to clipboard'
  1123. caCOPY                  ([Ctrl] 'C')                  'Copy to clipboard'
  1124. caPASTE                 ([Ctrl] 'V')                  'Paste from clipboard'
  1125. caDELETE                ([] Delete)                   'Delete at cursor'
  1126. caBACKSPACE             ([] Backspace)                'Delete before cursor'
  1127. caBLOCKIND              ([Ctrl] 'K', 'I')             'Indent block'
  1128. caBLOCKUND              ([Ctrl] 'K', 'U')             'Un-Indent block'
  1129. caINSTOGGLE             ([] Insert)                   'Toggle insert / override mode'
  1130. caSETBOOKMARK0          ([Ctrl] 'K', '0')             'Set bookmark 0'
  1131. caSETBOOKMARK1          ([Ctrl] 'K', '1')             'Set bookmark 1'
  1132. caSETBOOKMARK2          ([Ctrl] 'K', '2')             'Set bookmark 2'
  1133. caSETBOOKMARK3          ([Ctrl] 'K', '3')             'Set bookmark 3'
  1134. caSETBOOKMARK4          ([Ctrl] 'K', '4')             'Set bookmark 4'
  1135. caSETBOOKMARK5          ([Ctrl] 'K', '5')             'Set bookmark 5'
  1136. caSETBOOKMARK6          ([Ctrl] 'K', '6')             'Set bookmark 6'
  1137. caSETBOOKMARK7          ([Ctrl] 'K', '7')             'Set bookmark 7'
  1138. caSETBOOKMARK8          ([Ctrl] 'K', '8')             'Set bookmark 8'
  1139. caSETBOOKMARK9          ([Ctrl] 'K', '9')             'Set bookmark 9'
  1140. caGOTOBOOKMARK0         ([Ctrl] 'Q', '0')             'Goto bookmark 0'
  1141. caGOTOBOOKMARK1         ([Ctrl] 'Q', '1')             'Goto bookmark 1'
  1142. caGOTOBOOKMARK2         ([Ctrl] 'Q', '2')             'Goto bookmark 2'
  1143. caGOTOBOOKMARK3         ([Ctrl] 'Q', '3')             'Goto bookmark 3'
  1144. caGOTOBOOKMARK4         ([Ctrl] 'Q', '4')             'Goto bookmark 4'
  1145. caGOTOBOOKMARK5         ([Ctrl] 'Q', '5')             'Goto bookmark 5'
  1146. caGOTOBOOKMARK6         ([Ctrl] 'Q', '6')             'Goto bookmark 6'
  1147. caGOTOBOOKMARK7         ([Ctrl] 'Q', '7')             'Goto bookmark 7'
  1148. caGOTOBOOKMARK8         ([Ctrl] 'Q', '8')             'Goto bookmark 8'
  1149. caGOTOBOOKMARK9         ([Ctrl] 'Q', '9')             'Goto bookmark 9'
  1150. caUNDO                  ([Ctrl] 'Z')                  'Undo'
  1151. caREDO                  ([Ctrl Shift] 'Z')            'Redo'
  1152.  
  1153.