home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 27 / IOPROG_27.ISO / SOFT / TSYNTAX.ZIP / Scripts.ZIP / HTML.txt < prev    next >
Encoding:
Text File  |  1999-03-28  |  33.9 KB  |  683 lines

  1. /* -------------------------------------------------------------------------------------------------
  2.  *  HTML Full Tag Parser
  3.  * ------------------------------------------------------------------------------------------------- */
  4.  
  5. #define ht_DEFAULT                  0
  6. #define ht_NUMBER                   1
  7. #define ht_STRING                   2
  8. #define ht_IDENTIFIER               3
  9. #define ht_TAGNAME                  4
  10. #define ht_TAGSTART                 5
  11. #define    ht_TAGEND                    6
  12. #define ht_ATTRIBUTE                7
  13. #define ht_TAG_SCRIPT                9
  14. #define ht_TAG_SCRIPT_START         10
  15. #define ht_TAG_SCRIPT_END           11
  16. #define ht_COMMENT                  12
  17.  
  18. #define ht_COMMENT_END              14
  19. #define ht_WHITESPACE               15
  20. #define ht_PLAIN_ID                   16
  21. #define ht_SPECIAL                  17
  22.  
  23. #define jt_RESERVED                 30
  24. #define jt_COMMENT                  31
  25. #define jt_WHITESPACE               32
  26. #define jt_STRING                   34
  27. #define jt_STRING_CHAR              35
  28. #define jt_IDENTIFIER               36
  29. #define jt_NUMBER                   37
  30. #define jt_SYMBOL                   38
  31. #define jt_BUILTINMETHOD            39
  32. #define jt_HEXNUMBER                40
  33. #define jt_COMMENT_STAR                42
  34. #define    jt_COMMENT_LINE                43
  35.  
  36. #define ht_ANCHOR_TAG                50
  37. #define ht_ANCHOR_START                51
  38. #define ht_ANCHOR_END                52
  39.  
  40. #define ht_TABLE_TAG                60
  41. #define ht_TABLE_START                61
  42. #define ht_TABLE_END                62
  43.  
  44. #define ht_IMAGE_TAG                70
  45. #define ht_IMAGE_START                71
  46. #define ht_IMAGE_END                72
  47.  
  48. #define ht_CFML_TAG                    80
  49. #define ht_CFML_START                81
  50. #define ht_CFML_END                    82
  51.  
  52. #define ht_ASP_TAG                    104
  53. #define ht_HEXNUMBER                   105
  54. #define ht_CFML_COMMENT                106
  55.  
  56. #define ht_STYLE_TAG                120
  57. #define ht_STYLE_START                121
  58. #define ht_STYLE_END                122
  59.  
  60. #define css_COMMENT                    130
  61. #define css_SELECTOR                131
  62. #define css_PROPERTY                133
  63. #define css_VALUE                    134
  64. #define css_OPENBRACKET                135
  65. #define css_CLOSEBRACKET            136
  66. #define css_COLON                    137
  67. #define css_SEMICOLON                138
  68. #define css_PERIOD                    140
  69. #define css_NUMBER                    141
  70. #define css_STRING                    142
  71. #define css_STRING2                    143
  72. #define css_COMMENT_STAR            144
  73. #define css_HEXNUMBER                145
  74.  
  75. // ht_PUNCTUATION = brackets in scripts and styles; semi-colons and colons in styles
  76. #define ht_PUNCTUATION                150
  77. #define ht_COMMENT_LINE                151
  78.  
  79. /*--------------------------------------------------------------------------------------------------------------------
  80.  *
  81.  * State definitions
  82.  *
  83.  */
  84. #define ss_START                    0
  85. #define ss_SCRIPT                   2
  86. #define ss_INTAG                    3
  87. #define ss_INTABLE                    4
  88. #define ss_INANCHOR                    5
  89. #define ss_INIMAGE                    6
  90. #define ss_INCFML                    7
  91. #define ss_INSTYLE                    10
  92.  
  93. #define ss_IN_CSS_SELECTOR            50
  94. #define ss_IN_CSS_PROPERTY          52
  95. #define ss_IN_CSS_VALUE                53
  96.  
  97. /*--------------------------------------------------------------------------------------------------------------------
  98.  *
  99.  * Common script elements
  100.  *
  101.  */
  102. #define _non_alpha_                 '[^_A-Za-z0-9]'
  103. #define _all_chars_                 '[\x01-\xFF]'
  104. #define _no_chars_                  '[]'
  105. #define _dont_care_                 _all_chars_
  106. #define _DEFAULT_BACKGROUND         clWhite
  107. #define _DEFAULT_FOREGROUND         clBlack
  108.  
  109.  
  110.  
  111. %%language
  112.    Name                      = 'HTML / JS / VBS'
  113.    Case                      = __INSENSITIVE
  114.    StartState                = [ss_START]
  115.    Anchor                    = [ht_TAGSTART]
  116.    ContextStates             = (jt_BUILTINMETHOD, jt_SYMBOL, jt_RESERVED  [ss_SCRIPT])                                          
  117.    ExampleText               = '<!-- Comment -->\n\
  118.                                 \<td><p><a href="link">Plain Text </a>\n\
  119.                                 \<cfquery>\n\
  120.                                 \<img src="image" width=15><%asp%>\n\
  121.                                  \<script="JavaScript">\n\
  122.                                 \   function DoIt {\n\
  123.                                 \      var worldString="Hello, world" }\n\
  124.                                 \</script>\n\
  125.                                 \<style> headline {font-size: 24pt;} </style>\n'
  126.                                 
  127.    EditableStyles     
  128.                 ('Default Text',                ht_DEFAULT),
  129.                 ('HTML Tags',                    ht_TAGNAME),
  130.                 ('HTML Attributes',                ht_ATTRIBUTE),
  131.                 ('Comments',                    ht_COMMENT),
  132.                 ('Strings',                     ht_STRING),
  133.                 ('Numbers',                     ht_NUMBER),
  134.                 ('Microsoft ASP Tags',          ht_ASP_TAG),
  135.                 ('HTML Special Characters',     ht_SPECIAL),
  136.                 ('HTML Anchor Tags',            ht_ANCHOR_TAG),
  137.                 ('HTML Image Tags',             ht_IMAGE_TAG),
  138.                 ('HTML Table Tags',             ht_TABLE_TAG),
  139.                 ('Script Tags',                 ht_TAG_SCRIPT),
  140.                 ('Allaire Cold Fusion Tags',    ht_CFML_TAG),
  141.                 ('HTML Style Tags',             ht_STYLE_TAG), 
  142.                 ('Punctuation { } ; :',         ht_PUNCTUATION),               
  143.                 ('JavaScript Keywords',         jt_RESERVED),
  144.                 ('JavaScript Methods',          jt_BUILTINMETHOD),
  145.                 ('JavaScript Symbols',          jt_SYMBOL),
  146.                 ('JavaScript Strings',          jt_STRING),
  147.                 ('JavaScript Identifiers',      jt_IDENTIFIER),
  148.                 ('JavaScript Numbers',          jt_NUMBER),
  149.                 ('StyleSheet Selectors',        css_SELECTOR),
  150.                 ('StyleSheet Properties',       css_PROPERTY),
  151.                 ('StyleSheet Values',           css_VALUE)
  152.  
  153.  
  154.  
  155. /*--------------------------------------------------------------------------------------------------------------------
  156.  *
  157.  * Fixed lexeme definitions
  158.  *
  159.  */
  160. //     Column 1          Quoted string giving the characters that make up the word
  161. //     Column 2          Quoted string that specifies how the word is terminated
  162. //     Column 3          Token value returned when word is recognised
  163. //     Column 4          Optional state set in which the word is recognised in any one or more of the given states
  164. //
  165.  
  166. %%words
  167. '<'             _dont_care_             ht_TAGSTART                [ss_START]
  168. '</'            _dont_care_             ht_TAGSTART                [ss_START]
  169. '>'             _dont_care_             ht_TAGEND                [ss_INTAG]        
  170. //////////////////////////////////////////////////////////////////////////////////////
  171. '<!---'         _dont_care_             ht_CFML_COMMENT         [ss_START]
  172. '<!--'          _dont_care_             ht_COMMENT              [ss_START]
  173. '<!'            _dont_care_             ht_TAGSTART                [ss_START]
  174. '<%'            _dont_care_             ht_ASP_TAG                [ss_START]
  175. //////////////////////////////////////////////////////////////////////////////////////
  176. '<a'            _non_alpha_             ht_ANCHOR_START            [ss_START]
  177. '</a'            _non_alpha_             ht_ANCHOR_START            [ss_START]
  178. '>'                _dont_care_             ht_ANCHOR_END            [ss_INANCHOR]
  179. //////////////////////////////////////////////////////////////////////////////////////
  180. '<img'            _non_alpha_             ht_IMAGE_START            [ss_START]
  181. '>'                _dont_care_             ht_IMAGE_END            [ss_INIMAGE]
  182. //////////////////////////////////////////////////////////////////////////////////////
  183. '<cf'            _dont_care_             ht_CFML_START            [ss_START]
  184. '</cf'            _dont_care_             ht_CFML_START            [ss_START]
  185. '>'                _dont_care_             ht_CFML_END                [ss_INCFML]
  186. //////////////////////////////////////////////////////////////////////////////////////
  187. // TABLES
  188. //////////////////////////////////////////////////////////////////////////////////////
  189. '<table'        _non_alpha_              ht_TABLE_START            [ss_START]
  190. '<td'            _non_alpha_              ht_TABLE_START            [ss_START]
  191. '<th'            _non_alpha_              ht_TABLE_START            [ss_START]
  192. '<tr'            _non_alpha_              ht_TABLE_START            [ss_START]
  193. '<caption'        _non_alpha_              ht_TABLE_START            [ss_START]
  194. '<col'             _non_alpha_              ht_TABLE_START            [ss_START]
  195. '<colgroup'     _non_alpha_              ht_TABLE_START            [ss_START]
  196. '<tbody'        _non_alpha_              ht_TABLE_START            [ss_START]
  197. '<tfoot'        _non_alpha_              ht_TABLE_START            [ss_START]
  198. '<thead'        _non_alpha_              ht_TABLE_START            [ss_START]
  199. '</table'        _non_alpha_              ht_TABLE_START            [ss_START]
  200. '</td'            _non_alpha_              ht_TABLE_START            [ss_START]
  201. '</th'            _non_alpha_              ht_TABLE_START            [ss_START]
  202. '</tr'            _non_alpha_              ht_TABLE_START            [ss_START]
  203. '</caption'        _non_alpha_              ht_TABLE_START            [ss_START]
  204. '</col'             _non_alpha_              ht_TABLE_START            [ss_START]
  205. '</colgroup'    _non_alpha_              ht_TABLE_START            [ss_START]
  206. '</tbody'        _non_alpha_              ht_TABLE_START            [ss_START]
  207. '</tfoot'        _non_alpha_              ht_TABLE_START            [ss_START]
  208. '</thead'        _non_alpha_              ht_TABLE_START            [ss_START]
  209. '>'                _dont_care_                 ht_TABLE_END            [ss_INTABLE]        
  210. //////////////////////////////////////////////////////////////////////////////////////
  211. // Styles
  212. //////////////////////////////////////////////////////////////////////////////////////
  213. '<style'        _non_alpha_             ht_STYLE_START            [ss_START]
  214. '</style'        _non_alpha_             ht_STYLE_END            [ss_INSTYLE]
  215. '<!--'           _dont_care_              css_COMMENT                [ss_INSTYLE]
  216. '-->'            _dont_care_              css_COMMENT                [ss_INSTYLE]
  217. '{'                _dont_care_                css_OPENBRACKET            [ss_INSTYLE]
  218. '}'                _dont_care_                css_CLOSEBRACKET        [ss_IN_CSS_PROPERTY ss_IN_CSS_VALUE]
  219. '.'                _dont_care_                css_PERIOD                [ss_IN_CSS_SELECTOR]
  220. ':'                _dont_care_                css_COLON                [ss_IN_CSS_PROPERTY]
  221. ';'                _dont_care_                css_SEMICOLON            [ss_IN_CSS_VALUE]
  222. '\/*'           _dont_care_               css_COMMENT_STAR        [ss_INSTYLE]    
  223. '#'                _dont_care_                css_HEXNUMBER            [ss_IN_CSS_PROPERTY ss_IN_CSS_VALUE]
  224. //////////////////////////////////////////////////////////////////////////////////////
  225. // Scripts
  226. //////////////////////////////////////////////////////////////////////////////////////
  227. '<script'       _non_alpha_              ht_TAG_SCRIPT_START     [ss_START]
  228. '</script'      _dont_care_              ht_TAG_SCRIPT_END        [ss_SCRIPT]
  229. '<!--'          _dont_care_              ht_COMMENT_LINE        [ss_SCRIPT] 
  230. '-->'            _dont_care_              ht_COMMENT_END         [ss_SCRIPT]
  231.  
  232. /*--------------------------------------------------------------------------------------------------------------------
  233.  * Fixed lexeme follow on handlers
  234.  */
  235. %%handler
  236. ht_COMMENT            _all_chars_?            '->'            _use_
  237. ht_CFML_COMMENT        _all_chars_?            '\-\-\-\>'      _use_
  238. ht_COMMENT_LINE     '[^\n]'?                '\n'               _discard_
  239. css_COMMENT_STAR    _all_chars_?            '*\/'           _use_
  240.  
  241. ht_ASP_TAG            _all_chars_?            '\%\>'          _use_
  242. css_HEXNUMBER       '[0-9A-Fa-f]'           '[^0-9a-fA-F]'     _discard_
  243.  
  244. ht_TAG_SCRIPT_START    _all_chars_?            '>'                _use_
  245. ht_TAG_SCRIPT_END    _all_chars_?            '>'                _use_
  246.  
  247. /*--------------------------------------------------------------------------------------------------------------------
  248.  *
  249.  * Variable character tokens
  250.  *
  251.  */
  252. //     Column 1          Token value
  253. //     Column 2          Single start character specifier
  254. //     Column 3          Single contains character specifier
  255. //     Column 4          End sequence specifier
  256. //     Column 5          Whether end sequence is part of lexeme
  257. //     Column 6          Valid states for token
  258.  
  259. %%tokens
  260. ht_WHITESPACE           '[\x01-\s]'                 '[\x01-\s]'?       '[^\x01-\s]'     _discard_    [ss_START]
  261. ht_PLAIN_ID             __STD_IDENTIFIER                                                             
  262. ht_SPECIAL              '&'                         '[^;\n\s]'?        '[;\n\s]'        _discard_
  263.  
  264. InState ss_INTAG
  265. (
  266.   ht_TAGNAME                __STD_IDENTIFIER    
  267.   ht_ATTRIBUTE                 __STD_HTML_STRING     
  268.   ht_NUMBER                 __STD_NUMBER_OR_FP  
  269. )
  270.  
  271. InState ss_INIMAGE
  272. (
  273.   ht_IMAGE_TAG                __STD_IDENTIFIER    
  274.   ht_ATTRIBUTE                 __STD_HTML_STRING     
  275.   ht_NUMBER                 __STD_NUMBER_OR_FP  
  276. )
  277.  
  278. InState ss_INTABLE
  279. (
  280.   ht_TABLE_TAG                __STD_IDENTIFIER    
  281.   ht_ATTRIBUTE                 __STD_HTML_STRING     
  282.   ht_NUMBER                 __STD_NUMBER_OR_FP  
  283. )
  284.  
  285. InState ss_INANCHOR
  286. (
  287.   ht_ANCHOR_TAG                __STD_IDENTIFIER    
  288.   ht_ATTRIBUTE                 __STD_HTML_STRING     
  289.   ht_NUMBER                 __STD_NUMBER_OR_FP  
  290. )
  291.  
  292. InState ss_INCFML
  293. (
  294.   ht_CFML_TAG                __STD_IDENTIFIER    
  295.   ht_ATTRIBUTE                 __STD_HTML_STRING     
  296.   ht_NUMBER                 __STD_NUMBER_OR_FP  
  297. )
  298.  
  299. InState ss_IN_CSS_SELECTOR
  300.  (
  301.    css_SELECTOR             __STD_IDENTIFIER  [ss_IN_CSS_SELECTOR]
  302.  )
  303.  
  304. InState ss_IN_CSS_PROPERTY
  305.  (
  306.    css_PROPERTY             __STD_IDENTIFIER   [ss_IN_CSS_PROPERTY]
  307.  )
  308.  
  309. InState ss_IN_CSS_VALUE
  310.  (
  311.    css_VALUE                 __STD_IDENTIFIER       [ss_IN_CSS_VALUE]   
  312.    css_STRING               __STD_HTML_STRING    [ss_IN_CSS_VALUE]
  313.    css_STRING2              __STD_PASCALSTRING    [ss_IN_CSS_VALUE]
  314.    css_NUMBER               __STD_NUMBER_OR_FP    [ss_IN_CSS_VALUE]
  315.  )
  316.  
  317.  
  318. /********************************************************************************************************************\
  319. *                                                                                                                    *
  320. *                                 J A V A S C R I P T   SPECIFIC SCRIPT ITEMS                                        *
  321. *                                 ===========================================                                        *
  322. *                                                                                                                    *
  323. \********************************************************************************************************************/
  324.  
  325.  
  326.  
  327. /*--------------------------------------------------------------------------------------------------------------------
  328.  *
  329.  * Fixed lexeme definitions
  330.  *
  331.  */
  332. %%words
  333. 'abstract'                  _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  334. 'boolean'                   _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  335. 'break'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  336. 'byte'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  337. 'case'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  338. 'catch'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  339. 'char'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  340. 'class'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  341. 'const'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  342. 'continue'                  _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  343. 'default'                   _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  344. 'do'                        _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  345. 'double'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  346. 'else'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  347. 'extends'                   _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  348. 'false'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  349. 'final'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  350. 'finally'                   _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  351. 'float'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  352. 'for'                       _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  353. 'function'                  _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  354. 'goto'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  355. 'if'                        _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  356. 'implements'                _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  357. 'import'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  358. 'in'                        _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  359. 'instanceof'                _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  360. 'int'                       _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  361. 'interface'                 _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  362. 'long'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  363. 'native'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  364. 'new'                       _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  365. 'null'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  366. 'package'                   _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  367. 'private'                   _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  368. 'protected'                 _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  369. 'public'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  370. 'return'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  371. 'short'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  372. 'static'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  373. 'super'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  374. 'switch'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  375. 'synchroniz'                _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  376. 'this'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  377. 'throw'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  378. 'throws'                    _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  379. 'transient'                 _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  380. 'true'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  381. 'try'                       _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  382. 'var'                       _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  383. 'void'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  384. 'while'                     _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  385. 'with'                      _non_alpha_       jt_RESERVED        [ss_SCRIPT]
  386. //
  387. //
  388. //
  389. 'abs'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  390. 'acos'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  391. 'alert'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  392. 'anchor'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  393. 'asin'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  394. 'atan'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  395. 'back'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  396. 'big'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  397. 'blink'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  398. 'blur'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  399. 'bold'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  400. 'ceil'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  401. 'charAt'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  402. 'clear'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  403. 'clearTimeout'              _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  404. 'click'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  405. 'close'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  406. 'confirm'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  407. 'cos'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  408. 'escape'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  409. 'eval'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  410. 'exp'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  411. 'fixed'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  412. 'floor'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  413. 'focus'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  414. 'fontcolor'                 _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  415. 'fontsize'                  _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  416. 'forward'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  417. 'getDate'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  418. 'getDay'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  419. 'getHours'                  _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  420. 'getMinutes'                _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  421. 'getMonth'                  _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  422. 'getSeconds'                _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  423. 'getTime'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  424. 'getTimezoneOffset'         _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  425. 'getYear'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  426. 'go'                        _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  427. 'indexOf'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  428. 'isNaN'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  429. 'italics'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  430. 'lastIndexOf'               _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  431. 'link'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  432. 'log'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  433. 'max'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  434. 'min'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  435. 'open'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  436. 'parse'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  437. 'parseFloat'                _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  438. 'parseInt'                  _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  439. 'pow'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  440. 'prompt'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  441. 'random'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  442. 'round'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  443. 'select'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  444. 'setDate'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  445. 'setHours'                  _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  446. 'setMinutes'                _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  447. 'setMonth'                  _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  448. 'setSeconds'                _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  449. 'setTimeout'                _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  450. 'setTime'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  451. 'setYear'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  452. 'sin'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  453. 'small'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  454. 'sqrt'                      _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  455. 'strike'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  456. 'sub'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  457. 'submit'                    _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  458. 'substring'                 _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  459. 'sup'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  460. 'tan'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  461. 'toGMTString'               _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  462. 'toLocaleString'            _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  463. 'toLowerCase'               _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  464. 'toUpperCase'               _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  465. 'unescape'                  _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  466. 'UTC'                       _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  467. 'write'                     _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  468. 'writeln'                   _non_alpha_       jt_BUILTINMETHOD   [ss_SCRIPT]
  469.  
  470. ','                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  471. '='                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  472. '+='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  473. '-='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  474. '*='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  475. '/='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  476. '%='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  477. '<<='                       _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  478. '>>='                       _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  479. '>>>='                      _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  480. '&='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  481. '^='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  482. '|='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  483. '?:'                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  484. '||'                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  485. '&&'                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  486. '|'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  487. '^'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  488. '&'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  489. '=='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  490. '!='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  491. '<'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  492. '<='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  493. '>'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  494. '>='                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  495. '<<'                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  496. '>>'                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  497. '>>>'                       _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  498. '+'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  499. '-'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  500. '*'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  501. '/'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  502. '%'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  503. '!'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  504. '~'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  505. '++'                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  506. '--'                        _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  507. '('                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  508. ')'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  509. '['                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  510. ']'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  511. '.'                         _dont_care_       jt_SYMBOL          [ss_SCRIPT]
  512.  
  513. '0'                         '[xX]'            jt_HEXNUMBER       [ss_SCRIPT]
  514. '\/\/'                      _dont_care_       jt_COMMENT_LINE    [ss_SCRIPT]
  515. '\/*'                          _dont_care_       jt_COMMENT_STAR    [ss_SCRIPT]
  516.  
  517. /*--------------------------------------------------------------------------------------------------------------------
  518.  *
  519.  * Fixed lexeme follow on handlers
  520.  *
  521.  */
  522. %%handler
  523. jt_COMMENT_STAR        _all_chars_?        '*\/'               _use_
  524. jt_COMMENT_LINE        __STD_JS_LINE_COMMENT
  525. jt_HEXNUMBER        '[xX0-9A-Fa-f]'     '[^0-9a-fA-F]'      _discard_
  526. ht_HEXNUMBER        '[0-9A-Fa-f]'          '[^0-9a-fA-F]'          _discard_
  527.  
  528.  
  529. /*--------------------------------------------------------------------------------------------------------------------
  530.  *
  531.  * Variable character tokens
  532.  *
  533.  */
  534. %%tokens
  535.  
  536. InState ss_SCRIPT
  537.  (
  538.    jt_IDENTIFIER           __STD_IDENTIFIER
  539.    jt_STRING               __STD_C_STRING
  540.    jt_NUMBER               __STD_NUMBER_OR_FP
  541.    jt_WHITESPACE           '[\x01-\s]'    '[\x01-\s]'?  '[^\x01-\s]'      _discard_
  542.    ht_PUNCTUATION          '[\{\}:]'       '[\x01]'?      _all_chars_        _discard_
  543.  )
  544.  
  545.  
  546.  
  547. /*--------------------------------------------------------------------------------------------------------------------
  548.  *
  549.  * Display effects specification
  550.  *
  551.  */
  552. %%effects
  553. ht_DEFAULT              []                      _DEFAULT_FOREGROUND     _DEFAULT_BACKGROUND
  554. ht_TAGNAME              []                        clNavy                  _DEFAULT_BACKGROUND*
  555. ht_COMMENT              [fsItalic]              clGray                    _DEFAULT_BACKGROUND*
  556. ht_ATTRIBUTE            []                         clBlue                    _DEFAULT_BACKGROUND*
  557. ht_STRING               []                         clBlue                    _DEFAULT_BACKGROUND*
  558. ht_NUMBER               []                      clBlue                  _DEFAULT_BACKGROUND*
  559. ht_SPECIAL              [fsItalic, fsBold]      _DEFAULT_FOREGROUND*    _DEFAULT_BACKGROUND*
  560. ht_ASP_TAG                []                        _DEFAULT_FOREGROUND*     clYellow
  561. ht_ANCHOR_TAG            []                        clGreen                    _DEFAULT_BACKGROUND*
  562. ht_IMAGE_TAG            []                        clPurple                _DEFAULT_BACKGROUND*
  563. ht_TABLE_TAG            []                        clTeal                    _DEFAULT_BACKGROUND*
  564. ht_CFML_TAG                []                       clMaroon                _DEFAULT_BACKGROUND*
  565. ht_TAG_SCRIPT            []                       clMaroon                _DEFAULT_BACKGROUND*
  566. ht_STYLE_TAG            []                        clPurple                _DEFAULT_BACKGROUND*
  567. ht_PUNCTUATION            [fsBold]                   clNavy                  _DEFAULT_BACKGROUND*
  568. jt_RESERVED             [fsBold]                clNavy                    _DEFAULT_BACKGROUND*
  569. jt_BUILTINMETHOD        [fsBold]                _DEFAULT_FOREGROUND*    _DEFAULT_BACKGROUND*
  570. jt_SYMBOL               []                      clBlue                  _DEFAULT_BACKGROUND*
  571. jt_STRING               [fsItalic]              _DEFAULT_FOREGROUND*    _DEFAULT_BACKGROUND*
  572. jt_IDENTIFIER           []                       _DEFAULT_FOREGROUND*    _DEFAULT_BACKGROUND*
  573. jt_NUMBER               []                      clFuchsia               _DEFAULT_BACKGROUND*
  574. css_SELECTOR            []                      clFuchsia               _DEFAULT_BACKGROUND*
  575. css_PROPERTY            []                         clNavy                    _DEFAULT_BACKGROUND*
  576. css_VALUE                []                       clRed                    _DEFAULT_BACKGROUND*
  577. /*--------------------------------------------------------------------------------------------------------------------
  578.  *
  579.  * State switching definitions
  580.  *
  581.  */
  582. %%states
  583. ht_TAG_SCRIPT_START         (+[ss_SCRIPT]                                -[ss_START ss_INTAG])
  584. ht_TAG_SCRIPT_END           (+[ss_START]                                  -[ss_SCRIPT])
  585. ht_COMMENT_END              (+[ss_START]                                   -[ss_SCRIPT])
  586.  
  587. ht_TAGSTART                    (+[ss_INTAG])
  588. ht_TAGEND                    (-[ss_INTAG])
  589.  
  590. ht_TABLE_START                (+[ss_INTABLE])
  591. ht_TABLE_END                (-[ss_INTABLE])
  592.  
  593. ht_ANCHOR_START                (+[ss_INANCHOR])
  594. ht_ANCHOR_END                (-[ss_INANCHOR])
  595.  
  596. ht_IMAGE_START                (+[ss_INIMAGE])
  597. ht_IMAGE_END                (-[ss_INIMAGE])
  598.  
  599. ht_CFML_START                (+[ss_INCFML])
  600. ht_CFML_END                    (-[ss_INCFML])
  601.  
  602. ht_STYLE_START                (+[ss_INSTYLE ss_IN_CSS_SELECTOR]            -[ss_SCRIPT ss_START])
  603. ht_STYLE_END                (+[ss_START]                                   -[ss_INSTYLE ss_IN_CSS_SELECTOR ss_IN_CSS_VALUE ss_IN_CSS_PROPERTY])
  604.  
  605. css_OPENBRACKET                (+[ss_IN_CSS_PROPERTY]                         -[ss_IN_CSS_VALUE ss_IN_CSS_SELECTOR])
  606. css_CLOSEBRACKET            (+[ss_IN_CSS_SELECTOR]                         -[ss_IN_CSS_PROPERTY ss_IN_CSS_VALUE])
  607. css_COLON                    (+[ss_IN_CSS_VALUE]                            -[ss_IN_CSS_PROPERTY ss_IN_CSS_SELECTOR])
  608. css_SEMICOLON                (+[ss_IN_CSS_PROPERTY]                         -[ss_IN_CSS_VALUE ss_IN_CSS_SELECTOR])
  609.  
  610. %%map
  611. ht_DEFAULT                        ht_DEFAULT
  612.  
  613. ht_TAGNAME                        ht_TAGNAME
  614. ht_TAGSTART                       ht_TAGNAME
  615. ht_TAGEND                        ht_TAGNAME
  616. ht_ATTRIBUTE                    ht_ATTRIBUTE
  617.  
  618. ht_COMMENT                        ht_COMMENT
  619. ht_CFML_COMMENT                    ht_COMMENT
  620. ht_STRING                         ht_STRING
  621. ht_IDENTIFIER                     ht_TAGNAME
  622. ht_NUMBER                         ht_NUMBER
  623. ht_SPECIAL                        ht_SPECIAL
  624. ht_TAG_SCRIPT                    ht_TAG_SCRIPT
  625. ht_TAG_SCRIPT_END                ht_TAG_SCRIPT
  626. ht_TAG_SCRIPT_START                ht_TAG_SCRIPT
  627. ht_COMMENT_END                    ht_COMMENT
  628. ht_PLAIN_ID                       ht_DEFAULT
  629. ht_ASP_TAG                        ht_ASP_TAG
  630. ht_HEXNUMBER                    ht_NUMBER
  631. ht_WHITESPACE                    ht_DEFAULT    
  632.  
  633. ht_CFML_TAG                        ht_CFML_TAG
  634. ht_CFML_START                    ht_CFML_TAG
  635. ht_CFML_END                        ht_CFML_TAG
  636.  
  637. ht_IMAGE_TAG                    ht_IMAGE_TAG
  638. ht_IMAGE_START                    ht_IMAGE_TAG
  639. ht_IMAGE_END                    ht_IMAGE_TAG
  640.  
  641. ht_ANCHOR_TAG                   ht_ANCHOR_TAG
  642. ht_ANCHOR_START                    ht_ANCHOR_TAG
  643. ht_ANCHOR_END                   ht_ANCHOR_TAG
  644.  
  645. ht_TABLE_TAG                    ht_TABLE_TAG
  646. ht_TABLE_START                    ht_TABLE_TAG
  647. ht_TABLE_END                    ht_TABLE_TAG
  648.         
  649. ht_STYLE_TAG                    ht_STYLE_TAG
  650. ht_STYLE_START                    ht_STYLE_TAG
  651. ht_STYLE_END                    ht_STYLE_TAG
  652. ht_COMMENT_LINE                    ht_COMMENT
  653. ht_PUNCTUATION                    ht_PUNCTUATION
  654.     
  655. jt_RESERVED                       jt_RESERVED
  656. jt_STRING                        jt_STRING
  657. jt_COMMENT                        ht_COMMENT
  658. jt_IDENTIFIER                     jt_IDENTIFIER
  659. jt_COMMENT_STAR                    ht_COMMENT
  660. jt_COMMENT_LINE                    ht_COMMENT
  661. jt_STRING                         jt_STRING
  662. jt_STRING_CHAR                    jt_STRING
  663. jt_BUILTINMETHOD                 jt_BUILTINMETHOD
  664. jt_HEXNUMBER                      jt_NUMBER
  665. jt_NUMBER                         jt_NUMBER
  666. jt_IDENTIFIER                     jt_IDENTIFIER
  667. jt_WHITESPACE                     ht_DEFAULT
  668. jt_SYMBOL                         jt_SYMBOL
  669.  
  670. css_SELECTOR                    css_SELECTOR
  671. css_PROPERTY                    css_PROPERTY
  672. css_VALUE                        css_VALUE
  673. css_NUMBER                        ht_NUMBER
  674. css_HEXNUMBER                    ht_NUMBER
  675. css_STRING                        ht_STRING
  676. css_STRING2                        ht_STRING
  677. css_OPENBRACKET                    ht_PUNCTUATION
  678. css_CLOSEBRACKET                ht_PUNCTUATION
  679. css_PERIOD                        ht_PUNCTUATION
  680. css_COLON                        ht_PUNCTUATION
  681. css_SEMICOLON                    ht_PUNCTUATION
  682. css_COMMENT_STAR                ht_COMMENT
  683. css_COMMENT                        ht_COMMENT