Initial Commit
[packages] / xemacs-packages / semantic / wisent / wisent-java-tags-wy.el
1 ;;; wisent-java-tags-wy.el --- Generated parser support file
2
3 ;; Copyright (C) 2002, 2007 David Ponce
4
5 ;; Author: Eric M. Ludlam <zappo@projectile.siege-engine.com>
6 ;; Created: 2007-06-05 21:46:53-0400
7 ;; Keywords: syntax
8 ;; X-RCS: $Id: wisent-java-tags-wy.el,v 1.1 2007-11-26 15:12:31 michaels Exp $
9
10 ;; This file is not part of GNU Emacs.
11 ;;
12 ;; This program is free software; you can redistribute it and/or
13 ;; modify it under the terms of the GNU General Public License as
14 ;; published by the Free Software Foundation; either version 2, or (at
15 ;; your option) any later version.
16 ;;
17 ;; This software is distributed in the hope that it will be useful,
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20 ;; General Public License for more details.
21 ;;
22 ;; You should have received a copy of the GNU General Public License
23 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25 ;; Boston, MA 02110-1301, USA.
26
27 ;;; Commentary:
28 ;;
29 ;; PLEASE DO NOT MANUALLY EDIT THIS FILE!  It is automatically
30 ;; generated from the grammar file wisent-java-tags.wy.
31
32 ;;; History:
33 ;;
34
35 ;;; Code:
36 \f
37 ;;; Prologue
38 ;;
39 \f
40 ;;; Declarations
41 ;;
42 (defconst wisent-java-tags-wy--keyword-table
43   (semantic-lex-make-keyword-table
44    '(("abstract" . ABSTRACT)
45      ("boolean" . BOOLEAN)
46      ("break" . BREAK)
47      ("byte" . BYTE)
48      ("case" . CASE)
49      ("catch" . CATCH)
50      ("char" . CHAR)
51      ("class" . CLASS)
52      ("const" . CONST)
53      ("continue" . CONTINUE)
54      ("default" . DEFAULT)
55      ("do" . DO)
56      ("double" . DOUBLE)
57      ("else" . ELSE)
58      ("extends" . EXTENDS)
59      ("final" . FINAL)
60      ("finally" . FINALLY)
61      ("float" . FLOAT)
62      ("for" . FOR)
63      ("goto" . GOTO)
64      ("if" . IF)
65      ("implements" . IMPLEMENTS)
66      ("import" . IMPORT)
67      ("instanceof" . INSTANCEOF)
68      ("int" . INT)
69      ("interface" . INTERFACE)
70      ("long" . LONG)
71      ("native" . NATIVE)
72      ("new" . NEW)
73      ("package" . PACKAGE)
74      ("private" . PRIVATE)
75      ("protected" . PROTECTED)
76      ("public" . PUBLIC)
77      ("return" . RETURN)
78      ("short" . SHORT)
79      ("static" . STATIC)
80      ("strictfp" . STRICTFP)
81      ("super" . SUPER)
82      ("switch" . SWITCH)
83      ("synchronized" . SYNCHRONIZED)
84      ("this" . THIS)
85      ("throw" . THROW)
86      ("throws" . THROWS)
87      ("transient" . TRANSIENT)
88      ("try" . TRY)
89      ("void" . VOID)
90      ("volatile" . VOLATILE)
91      ("while" . WHILE)
92      ("@author" . _AUTHOR)
93      ("@version" . _VERSION)
94      ("@param" . _PARAM)
95      ("@return" . _RETURN)
96      ("@exception" . _EXCEPTION)
97      ("@throws" . _THROWS)
98      ("@see" . _SEE)
99      ("@since" . _SINCE)
100      ("@serial" . _SERIAL)
101      ("@serialData" . _SERIALDATA)
102      ("@serialField" . _SERIALFIELD)
103      ("@deprecated" . _DEPRECATED))
104    '(("@deprecated" javadoc
105       (seq 12 usage
106            (type function variable)
107            opt t))
108      ("@serialField" javadoc
109       (seq 11 usage
110            (variable)
111            opt t))
112      ("@serialData" javadoc
113       (seq 10 usage
114            (function)
115            opt t))
116      ("@serial" javadoc
117       (seq 9 usage
118            (variable)
119            opt t))
120      ("@since" javadoc
121       (seq 8 usage
122            (type function variable)
123            opt t))
124      ("@see" javadoc
125       (seq 7 usage
126            (type function variable)
127            opt t with-ref t))
128      ("@throws" javadoc
129       (seq 6 usage
130            (function)
131            with-name t))
132      ("@exception" javadoc
133       (seq 5 usage
134            (function)
135            with-name t))
136      ("@return" javadoc
137       (seq 4 usage
138            (function)))
139      ("@param" javadoc
140       (seq 3 usage
141            (function)
142            with-name t))
143      ("@version" javadoc
144       (seq 2 usage
145            (type)))
146      ("@author" javadoc
147       (seq 1 usage
148            (type)))
149      ("while" summary "while (<expr>) <stmt> | do <stmt> while (<expr>);")
150      ("volatile" summary "Field declaration modifier: volatile <type> <name> ...")
151      ("void" summary "Method return type: void <name> ...")
152      ("try" summary "try {<stmts>} [catch(<parm>) {<stmts>} ...] [finally {<stmts>}]")
153      ("transient" summary "Field declaration modifier: transient <type> <name> ...")
154      ("throws" summary "Method|Constructor declaration: throws <classType>, ...")
155      ("throw" summary "throw <expr> ;")
156      ("synchronized" summary "synchronized (<expr>) ... | Method decl. modifier: synchronized <type> <name> ...")
157      ("switch" summary "switch(<expr>) {[case <const-expr>: <stmts> ...] [default: <stmts>]}")
158      ("strictfp" summary "Declaration modifier: strictfp {class|interface|<type>} <name> ...")
159      ("static" summary "Declaration modifier: static {class|interface|<type>} <name> ...")
160      ("short" summary "Integral primitive type (-32768 to 32767)")
161      ("return" summary "return [<expr>] ;")
162      ("public" summary "Access level modifier: public {class|interface|<type>} <name> ...")
163      ("protected" summary "Access level modifier: protected {class|interface|<type>} <name> ...")
164      ("private" summary "Access level modifier: private {class|interface|<type>} <name> ...")
165      ("package" summary "Package declaration: package <name>")
166      ("native" summary "Method declaration modifier: native <type> <name> ...")
167      ("long" summary "Integral primitive type (-9223372036854775808 to 9223372036854775807)")
168      ("interface" summary "Interface declaration: interface <name>")
169      ("int" summary "Integral primitive type (-2147483648 to 2147483647)")
170      ("import" summary "Import package declarations: import <package>")
171      ("implements" summary "Class SuperInterfaces declaration: implements <name> [, ...]")
172      ("if" summary "if (<expr>) <stmt> [else <stmt>]")
173      ("goto" summary "Unused reserved word")
174      ("for" summary "for ([<init-expr>]; [<expr>]; [<update-expr>]) <stmt>")
175      ("float" summary "Primitive floating-point type (single-precision 32-bit IEEE 754)")
176      ("finally" summary "try {<stmts>} ... finally {<stmts>}")
177      ("final" summary "Class|Member declaration modifier: final {class|<type>} <name> ...")
178      ("extends" summary "SuperClass|SuperInterfaces declaration: extends <name> [, ...]")
179      ("else" summary "if (<expr>) <stmt> else <stmt>")
180      ("double" summary "Primitive floating-point type (double-precision 64-bit IEEE 754)")
181      ("do" summary "do <stmt> while (<expr>);")
182      ("default" summary "switch(<expr>) { ... default: <stmts>}")
183      ("continue" summary "continue [<label>] ;")
184      ("const" summary "Unused reserved word")
185      ("class" summary "Class declaration: class <name>")
186      ("char" summary "Integral primitive type ('u0000' to 'uffff') (0 to 65535)")
187      ("catch" summary "try {<stmts>} catch(<parm>) {<stmts>} ... ")
188      ("case" summary "switch(<expr>) {case <const-expr>: <stmts> ... }")
189      ("byte" summary "Integral primitive type (-128 to 127)")
190      ("break" summary "break [<label>] ;")
191      ("boolean" summary "Primitive logical quantity type (true or false)")
192      ("abstract" summary "Class|Method declaration modifier: abstract {class|<type>} <name> ...")))
193   "Table of language keywords.")
194
195 (defconst wisent-java-tags-wy--token-table
196   (semantic-lex-make-type-table
197    '(("unicode"
198       (unicodecharacter))
199      ("number"
200       (NUMBER_LITERAL))
201      ("string"
202       (STRING_LITERAL))
203      ("symbol"
204       (IDENTIFIER))
205      ("punctuation"
206       (COMP . "~")
207       (OROR . "||")
208       (OREQ . "|=")
209       (OR . "|")
210       (XOREQ . "^=")
211       (XOR . "^")
212       (QUESTION . "?")
213       (URSHIFTEQ . ">>>=")
214       (URSHIFT . ">>>")
215       (RSHIFTEQ . ">>=")
216       (RSHIFT . ">>")
217       (GTEQ . ">=")
218       (GT . ">")
219       (EQEQ . "==")
220       (EQ . "=")
221       (LTEQ . "<=")
222       (LSHIFTEQ . "<<=")
223       (LSHIFT . "<<")
224       (LT . "<")
225       (SEMICOLON . ";")
226       (COLON . ":")
227       (DIVEQ . "/=")
228       (DIV . "/")
229       (DOT . ".")
230       (MINUSEQ . "-=")
231       (MINUSMINUS . "--")
232       (MINUS . "-")
233       (COMMA . ",")
234       (PLUSEQ . "+=")
235       (PLUSPLUS . "++")
236       (PLUS . "+")
237       (MULTEQ . "*=")
238       (MULT . "*")
239       (ANDEQ . "&=")
240       (ANDAND . "&&")
241       (AND . "&")
242       (MODEQ . "%=")
243       (MOD . "%")
244       (NOTEQ . "!=")
245       (NOT . "!"))
246      ("close-paren"
247       (RBRACK . "]")
248       (RBRACE . "}")
249       (RPAREN . ")"))
250      ("open-paren"
251       (LBRACK . "[")
252       (LBRACE . "{")
253       (LPAREN . "("))
254      ("block"
255       (BRACK_BLOCK . "(LBRACK RBRACK)")
256       (BRACE_BLOCK . "(LBRACE RBRACE)")
257       (PAREN_BLOCK . "(LPAREN RPAREN)")))
258    '(("keyword" :declared t)
259      ("unicode" syntax "\\\\u[0-9a-f][0-9a-f][0-9a-f][0-9a-f]")
260      ("unicode" :declared t)
261      ("number" :declared t)
262      ("string" :declared t)
263      ("symbol" :declared t)
264      ("punctuation" :declared t)
265      ("block" :declared t)))
266   "Table of lexical tokens.")
267
268 (defconst wisent-java-tags-wy--parse-table
269   (progn
270     (eval-when-compile
271       (require 'wisent-comp))
272     (wisent-compile-grammar
273      '((PAREN_BLOCK BRACE_BLOCK BRACK_BLOCK LPAREN RPAREN LBRACE RBRACE LBRACK RBRACK NOT NOTEQ MOD MODEQ AND ANDAND ANDEQ MULT MULTEQ PLUS PLUSPLUS PLUSEQ COMMA MINUS MINUSMINUS MINUSEQ DOT DIV DIVEQ COLON SEMICOLON LT LSHIFT LSHIFTEQ LTEQ EQ EQEQ GT GTEQ RSHIFT RSHIFTEQ URSHIFT URSHIFTEQ QUESTION XOR XOREQ OR OREQ OROR COMP IDENTIFIER STRING_LITERAL NUMBER_LITERAL unicodecharacter ABSTRACT BOOLEAN BREAK BYTE CASE CATCH CHAR CLASS CONST CONTINUE DEFAULT DO DOUBLE ELSE EXTENDS FINAL FINALLY FLOAT FOR GOTO IF IMPLEMENTS IMPORT INSTANCEOF INT INTERFACE LONG NATIVE NEW PACKAGE PRIVATE PROTECTED PUBLIC RETURN SHORT STATIC STRICTFP SUPER SWITCH SYNCHRONIZED THIS THROW THROWS TRANSIENT TRY VOID VOLATILE WHILE _AUTHOR _VERSION _PARAM _RETURN _EXCEPTION _THROWS _SEE _SINCE _SERIAL _SERIALDATA _SERIALFIELD _DEPRECATED)
274        nil
275        (compilation_unit
276         ((package_declaration))
277         ((import_declaration))
278         ((type_declaration)))
279        (package_declaration
280         ((PACKAGE qualified_name SEMICOLON)
281          (wisent-raw-tag
282           (semantic-tag-new-package $2 nil))))
283        (import_declaration
284         ((IMPORT qualified_name SEMICOLON)
285          (wisent-raw-tag
286           (semantic-tag-new-include $2 nil)))
287         ((IMPORT qualified_name DOT MULT SEMICOLON)
288          (wisent-raw-tag
289           (semantic-tag-new-include
290            (concat $2 $3 $4)
291            nil))))
292        (type_declaration
293         ((SEMICOLON)
294          nil)
295         ((class_declaration))
296         ((interface_declaration)))
297        (class_declaration
298         ((modifiers_opt CLASS qualified_name superc_opt interfaces_opt class_body)
299          (wisent-raw-tag
300           (semantic-tag-new-type $3 $2 $6
301                                  (if
302                                      (or $4 $5)
303                                      (cons $4 $5))
304                                  :typemodifiers $1))))
305        (superc_opt
306         (nil)
307         ((EXTENDS qualified_name)
308          (identity $2)))
309        (interfaces_opt
310         (nil)
311         ((IMPLEMENTS qualified_name_list)
312          (nreverse $2)))
313        (class_body
314         ((BRACE_BLOCK)
315          (semantic-parse-region
316           (car $region1)
317           (cdr $region1)
318           'class_member_declaration 1)))
319        (class_member_declaration
320         ((LBRACE)
321          nil)
322         ((RBRACE)
323          nil)
324         ((block)
325          nil)
326         ((static_initializer)
327          nil)
328         ((constructor_declaration))
329         ((interface_declaration))
330         ((class_declaration))
331         ((method_declaration))
332         ((field_declaration)))
333        (interface_declaration
334         ((modifiers_opt INTERFACE IDENTIFIER extends_interfaces_opt interface_body)
335          (wisent-raw-tag
336           (semantic-tag-new-type $3 $2 $5
337                                  (if $4
338                                      (cons nil $4))
339                                  :typemodifiers $1))))
340        (extends_interfaces_opt
341         (nil)
342         ((EXTENDS qualified_name_list)
343          (identity $2)))
344        (interface_body
345         ((BRACE_BLOCK)
346          (semantic-parse-region
347           (car $region1)
348           (cdr $region1)
349           'interface_member_declaration 1)))
350        (interface_member_declaration
351         ((LBRACE)
352          nil)
353         ((RBRACE)
354          nil)
355         ((interface_declaration))
356         ((class_declaration))
357         ((method_declaration))
358         ((field_declaration)))
359        (static_initializer
360         ((STATIC block)))
361        (constructor_declaration
362         ((modifiers_opt constructor_declarator throwsc_opt constructor_body)
363          (wisent-raw-tag
364           (semantic-tag-new-function
365            (car $2)
366            nil
367            (cdr $2)
368            :typemodifiers $1 :throws $3 :constructor-flag t))))
369        (constructor_declarator
370         ((IDENTIFIER formal_parameter_list)
371          (cons $1 $2)))
372        (constructor_body
373         ((block)))
374        (method_declaration
375         ((modifiers_opt VOID method_declarator throwsc_opt method_body)
376          (wisent-raw-tag
377           (semantic-tag-new-function
378            (car $3)
379            $2
380            (cdr $3)
381            :typemodifiers $1 :throws $4)))
382         ((modifiers_opt type method_declarator throwsc_opt method_body)
383          (wisent-raw-tag
384           (semantic-tag-new-function
385            (car $3)
386            $2
387            (cdr $3)
388            :typemodifiers $1 :throws $4))))
389        (method_declarator
390         ((IDENTIFIER formal_parameter_list dims_opt)
391          (cons
392           (concat $1 $3)
393           $2)))
394        (throwsc_opt
395         (nil)
396         ((THROWS qualified_name_list)
397          (nreverse $2)))
398        (qualified_name_list
399         ((qualified_name_list COMMA qualified_name)
400          (cons $3 $1))
401         ((qualified_name)
402          (list $1)))
403        (method_body
404         ((SEMICOLON))
405         ((block)))
406        (block
407            ((BRACE_BLOCK)))
408        (formal_parameter_list
409         ((PAREN_BLOCK)
410          (semantic-parse-region
411           (car $region1)
412           (cdr $region1)
413           'formal_parameters 1)))
414        (formal_parameters
415         ((LPAREN)
416          nil)
417         ((RPAREN)
418          nil)
419         ((formal_parameter COMMA))
420         ((formal_parameter RPAREN)))
421        (formal_parameter
422         ((formal_parameter_modifier_opt type variable_declarator_id)
423          (wisent-raw-tag
424           (semantic-tag-new-variable $3 $2 nil :typemodifiers $1))))
425        (formal_parameter_modifier_opt
426         (nil)
427         ((FINAL)
428          (list $1)))
429        (field_declaration
430         ((modifiers_opt type variable_declarators SEMICOLON)
431          (wisent-raw-tag
432           (semantic-tag-new-variable $3 $2 nil :typemodifiers $1))))
433        (variable_declarators
434         ((variable_declarators COMMA variable_declarator)
435          (progn
436            (setcdr
437             (cdr
438              (car $1))
439             (cdr $region2))
440            (cons $3 $1)))
441         ((variable_declarator)
442          (list $1)))
443        (variable_declarator
444         ((variable_declarator_id EQ variable_initializer)
445          (cons $1 $region))
446         ((variable_declarator_id)
447          (cons $1 $region)))
448        (variable_declarator_id
449         ((IDENTIFIER dims_opt)
450          (concat $1 $2)))
451        (variable_initializer
452         ((expression)))
453        (expression
454         ((expression term))
455         ((term)))
456        (term
457         ((literal))
458         ((operator))
459         ((primitive_type))
460         ((IDENTIFIER))
461         ((BRACK_BLOCK))
462         ((PAREN_BLOCK))
463         ((BRACE_BLOCK))
464         ((NEW))
465         ((CLASS))
466         ((THIS))
467         ((SUPER)))
468        (literal
469         ((STRING_LITERAL))
470         ((NUMBER_LITERAL)))
471        (operator
472         ((NOT))
473         ((PLUS))
474         ((PLUSPLUS))
475         ((MINUS))
476         ((MINUSMINUS))
477         ((NOTEQ))
478         ((MOD))
479         ((MODEQ))
480         ((AND))
481         ((ANDAND))
482         ((ANDEQ))
483         ((MULT))
484         ((MULTEQ))
485         ((PLUSEQ))
486         ((MINUSEQ))
487         ((DOT))
488         ((DIV))
489         ((DIVEQ))
490         ((COLON))
491         ((LT))
492         ((LSHIFT))
493         ((LSHIFTEQ))
494         ((LTEQ))
495         ((EQ))
496         ((EQEQ))
497         ((GT))
498         ((GTEQ))
499         ((RSHIFT))
500         ((RSHIFTEQ))
501         ((URSHIFT))
502         ((URSHIFTEQ))
503         ((QUESTION))
504         ((XOR))
505         ((XOREQ))
506         ((OR))
507         ((OREQ))
508         ((OROR))
509         ((COMP))
510         ((INSTANCEOF)))
511        (primitive_type
512         ((BOOLEAN))
513         ((CHAR))
514         ((LONG))
515         ((INT))
516         ((SHORT))
517         ((BYTE))
518         ((DOUBLE))
519         ((FLOAT)))
520        (modifiers_opt
521         (nil)
522         ((modifiers)
523          (nreverse $1)))
524        (modifiers
525         ((modifiers modifier)
526          (cons $2 $1))
527         ((modifier)
528          (list $1)))
529        (modifier
530         ((STRICTFP))
531         ((VOLATILE))
532         ((TRANSIENT))
533         ((SYNCHRONIZED))
534         ((NATIVE))
535         ((FINAL))
536         ((ABSTRACT))
537         ((STATIC))
538         ((PRIVATE))
539         ((PROTECTED))
540         ((PUBLIC)))
541        (type
542         ((qualified_name dims_opt)
543          (concat $1 $2))
544         ((primitive_type dims_opt)
545          (concat $1 $2)))
546        (qualified_name
547         ((qualified_name DOT IDENTIFIER)
548          (concat $1 $2 $3))
549         ((IDENTIFIER)))
550        (dims_opt
551         (nil
552          (identity ""))
553         ((dims)))
554        (dims
555         ((dims BRACK_BLOCK)
556          (concat $1 "[]"))
557         ((BRACK_BLOCK)
558          (identity "[]"))))
559      '(compilation_unit package_declaration import_declaration class_declaration field_declaration method_declaration formal_parameter constructor_declaration interface_declaration class_member_declaration interface_member_declaration formal_parameters)))
560   "Parser table.")
561
562 (defun wisent-java-tags-wy--install-parser ()
563   "Setup the Semantic Parser."
564   (semantic-install-function-overrides
565    '((parse-stream . wisent-parse-stream)))
566   (setq semantic-parser-name "LALR"
567         semantic--parse-table wisent-java-tags-wy--parse-table
568         semantic-debug-parser-source "wisent-java-tags.wy"
569         semantic-flex-keywords-obarray wisent-java-tags-wy--keyword-table
570         semantic-lex-types-obarray wisent-java-tags-wy--token-table)
571   ;; Collect unmatched syntax lexical tokens
572   (semantic-make-local-hook 'wisent-discarding-token-functions)
573   (add-hook 'wisent-discarding-token-functions
574             'wisent-collect-unmatched-syntax nil t))
575
576 \f
577 ;;; Analyzers
578 ;;
579 (require 'semantic-lex)
580
581 (define-lex-keyword-type-analyzer wisent-java-tags-wy--<keyword>-keyword-analyzer
582   "keyword analyzer for <keyword> tokens."
583   "\\(\\sw\\|\\s_\\)+")
584
585 (define-lex-block-type-analyzer wisent-java-tags-wy--<block>-block-analyzer
586   "block analyzer for <block> tokens."
587   "\\s(\\|\\s)"
588   '((("(" LPAREN PAREN_BLOCK)
589      ("{" LBRACE BRACE_BLOCK)
590      ("[" LBRACK BRACK_BLOCK))
591     (")" RPAREN)
592     ("}" RBRACE)
593     ("]" RBRACK))
594   )
595
596 (define-lex-regex-type-analyzer wisent-java-tags-wy--<symbol>-regexp-analyzer
597   "regexp analyzer for <symbol> tokens."
598   "\\(\\sw\\|\\s_\\)+"
599   nil
600   'IDENTIFIER)
601
602 (define-lex-sexp-type-analyzer wisent-java-tags-wy--<string>-sexp-analyzer
603   "sexp analyzer for <string> tokens."
604   "\\s\""
605   'STRING_LITERAL)
606
607 (define-lex-regex-type-analyzer wisent-java-tags-wy--<number>-regexp-analyzer
608   "regexp analyzer for <number> tokens."
609   semantic-lex-number-expression
610   nil
611   'NUMBER_LITERAL)
612
613 (define-lex-string-type-analyzer wisent-java-tags-wy--<punctuation>-string-analyzer
614   "string analyzer for <punctuation> tokens."
615   "\\(\\s.\\|\\s$\\|\\s'\\)+"
616   '((COMP . "~")
617     (OROR . "||")
618     (OREQ . "|=")
619     (OR . "|")
620     (XOREQ . "^=")
621     (XOR . "^")
622     (QUESTION . "?")
623     (URSHIFTEQ . ">>>=")
624     (URSHIFT . ">>>")
625     (RSHIFTEQ . ">>=")
626     (RSHIFT . ">>")
627     (GTEQ . ">=")
628     (GT . ">")
629     (EQEQ . "==")
630     (EQ . "=")
631     (LTEQ . "<=")
632     (LSHIFTEQ . "<<=")
633     (LSHIFT . "<<")
634     (LT . "<")
635     (SEMICOLON . ";")
636     (COLON . ":")
637     (DIVEQ . "/=")
638     (DIV . "/")
639     (DOT . ".")
640     (MINUSEQ . "-=")
641     (MINUSMINUS . "--")
642     (MINUS . "-")
643     (COMMA . ",")
644     (PLUSEQ . "+=")
645     (PLUSPLUS . "++")
646     (PLUS . "+")
647     (MULTEQ . "*=")
648     (MULT . "*")
649     (ANDEQ . "&=")
650     (ANDAND . "&&")
651     (AND . "&")
652     (MODEQ . "%=")
653     (MOD . "%")
654     (NOTEQ . "!=")
655     (NOT . "!"))
656   'punctuation)
657
658 (define-lex-regex-type-analyzer wisent-java-tags-wy--<unicode>-regexp-analyzer
659   "regexp analyzer for <unicode> tokens."
660   "\\\\u[0-9a-f][0-9a-f][0-9a-f][0-9a-f]"
661   nil
662   'unicodecharacter)
663
664 \f
665 ;;; Epilogue
666 ;;
667 ;; Define the lexer for this grammar
668 (define-lex wisent-java-tags-lexer
669   "Lexical analyzer that handles Java buffers.
670 It ignores whitespaces, newlines and comments."
671   semantic-lex-ignore-whitespace
672   semantic-lex-ignore-newline
673   semantic-lex-ignore-comments
674   ;;;; Auto-generated analyzers.
675   wisent-java-tags-wy--<number>-regexp-analyzer
676   wisent-java-tags-wy--<string>-sexp-analyzer
677   ;; Must detect keywords before other symbols
678   wisent-java-tags-wy--<keyword>-keyword-analyzer
679   wisent-java-tags-wy--<symbol>-regexp-analyzer
680   wisent-java-tags-wy--<punctuation>-string-analyzer
681   wisent-java-tags-wy--<block>-block-analyzer
682   ;; In theory, unicode chars should be turned into normal chars
683   ;; and then combined into regular ascii keywords and text.  This
684   ;; analyzer just keeps these things from making the lexer go boom.
685   wisent-java-tags-wy--<unicode>-regexp-analyzer
686   ;;;;
687   semantic-lex-default-action)
688
689 (provide 'wisent-java-tags-wy)
690
691 ;;; wisent-java-tags-wy.el ends here