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