Initial Commit
[packages] / xemacs-packages / semantic / wisent / wisent-python-wy.el
1 ;;; wisent-python-wy.el --- Generated parser support file
2
3 ;; Copyright (C) 2002, 2003, 2004, 2007 Richard Kim
4
5 ;; Author: Eric M. Ludlam <zappo@projectile.siege-engine.com>
6 ;; Created: 2007-06-05 21:47:04-0400
7 ;; Keywords: syntax
8 ;; X-RCS: $Id: wisent-python-wy.el,v 1.1 2007-11-26 15:12:33 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-python.wy.
31
32 ;;; History:
33 ;;
34
35 ;;; Code:
36 \f
37 ;;; Prologue
38 ;;
39 \f
40 ;;; Declarations
41 ;;
42 (defconst wisent-python-wy--keyword-table
43   (semantic-lex-make-keyword-table
44    '(("and" . AND)
45      ("assert" . ASSERT)
46      ("break" . BREAK)
47      ("class" . CLASS)
48      ("continue" . CONTINUE)
49      ("def" . DEF)
50      ("del" . DEL)
51      ("elif" . ELIF)
52      ("else" . ELSE)
53      ("except" . EXCEPT)
54      ("exec" . EXEC)
55      ("finally" . FINALLY)
56      ("for" . FOR)
57      ("from" . FROM)
58      ("global" . GLOBAL)
59      ("if" . IF)
60      ("import" . IMPORT)
61      ("in" . IN)
62      ("is" . IS)
63      ("lambda" . LAMBDA)
64      ("not" . NOT)
65      ("or" . OR)
66      ("pass" . PASS)
67      ("print" . PRINT)
68      ("raise" . RAISE)
69      ("return" . RETURN)
70      ("try" . TRY)
71      ("while" . WHILE)
72      ("yield" . YIELD))
73    '(("yield" summary "Create a generator function")
74      ("while" summary "Start a 'while' loop")
75      ("try" summary "Start of statements protected by exception handlers")
76      ("return" summary "Return from a function")
77      ("raise" summary "Raise an exception")
78      ("print" summary "Print each argument to standard output")
79      ("pass" summary "Statement that does nothing")
80      ("or" summary "Binary logical 'or' operator")
81      ("not" summary "Unary boolean negation operator")
82      ("is" summary "Binary operator that tests for object equality")
83      ("in" summary "Part of 'for' statement ")
84      ("import" summary "Load specified modules")
85      ("if" summary "Start 'if' conditional statement")
86      ("global" summary "Declare one or more symbols as global symbols")
87      ("from" summary "Modify behavior of 'import' statement")
88      ("for" summary "Start a 'for' loop")
89      ("finally" summary "Specify code to be executed after 'try' statements whether or not an exception occured")
90      ("exec" summary "Dynamically execute python code")
91      ("except" summary "Specify exception handlers along with 'try' keyword")
92      ("else" summary "Start the 'else' clause following an 'if' statement")
93      ("elif" summary "Shorthand for 'else if' following an 'if' statement")
94      ("del" summary "Delete specified objects, i.e., undo what assignment did")
95      ("def" summary "Define a new function")
96      ("continue" summary "Skip to the next interation of enclosing for or whilte loop")
97      ("class" summary "Define a new class")
98      ("break" summary "Terminate 'for' or 'while loop")
99      ("assert" summary "Raise AssertionError exception if <expr> is false")
100      ("and" summary "Logical AND binary operator ... ")))
101   "Table of language keywords.")
102
103 (defconst wisent-python-wy--token-table
104   (semantic-lex-make-type-table
105    '(("symbol"
106       (NAME))
107      ("number"
108       (NUMBER_LITERAL))
109      ("string"
110       (STRING_LITERAL))
111      ("punctuation"
112       (BACKQUOTE . "`")
113       (ASSIGN . "=")
114       (COMMA . ",")
115       (SEMICOLON . ";")
116       (COLON . ":")
117       (BAR . "|")
118       (TILDE . "~")
119       (PERIOD . ".")
120       (MINUS . "-")
121       (PLUS . "+")
122       (MOD . "%")
123       (DIV . "/")
124       (MULT . "*")
125       (AMP . "&")
126       (GT . ">")
127       (LT . "<")
128       (HAT . "^")
129       (NE . "!=")
130       (LTGT . "<>")
131       (HATEQ . "^=")
132       (OREQ . "|=")
133       (AMPEQ . "&=")
134       (MODEQ . "%=")
135       (DIVEQ . "/=")
136       (MULTEQ . "*=")
137       (MINUSEQ . "-=")
138       (PLUSEQ . "+=")
139       (LE . "<=")
140       (GE . ">=")
141       (EQ . "==")
142       (EXPONENT . "**")
143       (GTGT . ">>")
144       (LTLT . "<<")
145       (DIVDIV . "//")
146       (DIVDIVEQ . "//=")
147       (EXPEQ . "**=")
148       (GTGTEQ . ">>=")
149       (LTLTEQ . "<<="))
150      ("close-paren"
151       (RBRACK . "]")
152       (RBRACE . "}")
153       (RPAREN . ")"))
154      ("open-paren"
155       (LBRACK . "[")
156       (LBRACE . "{")
157       (LPAREN . "("))
158      ("block"
159       (BRACK_BLOCK . "(LBRACK RBRACK)")
160       (BRACE_BLOCK . "(LBRACE RBRACE)")
161       (PAREN_BLOCK . "(LPAREN RPAREN)"))
162      ("indentation"
163       (INDENT_BLOCK . "(INDENT DEDENT)")
164       (DEDENT . "[^:INDENT:]")
165       (INDENT . "^\\s-+"))
166      ("newline"
167       (NEWLINE . "\n"))
168      ("charquote"
169       (BACKSLASH . "\\")))
170    '(("keyword" :declared t)
171      ("symbol" :declared t)
172      ("number" :declared t)
173      ("punctuation" :declared t)
174      ("block" :declared t)))
175   "Table of lexical tokens.")
176
177 (defconst wisent-python-wy--parse-table
178   (progn
179     (eval-when-compile
180       (require 'wisent-comp))
181     (wisent-compile-grammar
182      '((BACKSLASH NEWLINE INDENT DEDENT INDENT_BLOCK PAREN_BLOCK BRACE_BLOCK BRACK_BLOCK LPAREN RPAREN LBRACE RBRACE LBRACK RBRACK LTLTEQ GTGTEQ EXPEQ DIVDIVEQ DIVDIV LTLT GTGT EXPONENT EQ GE LE PLUSEQ MINUSEQ MULTEQ DIVEQ MODEQ AMPEQ OREQ HATEQ LTGT NE HAT LT GT AMP MULT DIV MOD PLUS MINUS PERIOD TILDE BAR COLON SEMICOLON COMMA ASSIGN BACKQUOTE STRING_LITERAL NUMBER_LITERAL NAME AND ASSERT BREAK CLASS CONTINUE DEF DEL ELIF ELSE EXCEPT EXEC FINALLY FOR FROM GLOBAL IF IMPORT IN IS LAMBDA NOT OR PASS PRINT RAISE RETURN TRY WHILE YIELD)
183        nil
184        (goal
185         ((NEWLINE))
186         ((simple_stmt))
187         ((compound_stmt)))
188        (simple_stmt
189         ((small_stmt_list semicolon_opt NEWLINE)))
190        (small_stmt_list
191         ((small_stmt))
192         ((small_stmt_list SEMICOLON small_stmt)))
193        (small_stmt
194         ((expr_stmt))
195         ((print_stmt))
196         ((del_stmt))
197         ((pass_stmt))
198         ((flow_stmt))
199         ((import_stmt))
200         ((global_stmt))
201         ((exec_stmt))
202         ((assert_stmt)))
203        (print_stmt
204         ((PRINT print_stmt_trailer)
205          (wisent-raw-tag
206           (semantic-tag-new-code $1 nil))))
207        (print_stmt_trailer
208         ((test_list_opt)
209          nil)
210         ((GTGT test trailing_test_list_with_opt_comma_opt)
211          nil))
212        (trailing_test_list_with_opt_comma_opt
213         (nil)
214         ((trailing_test_list comma_opt)
215          nil))
216        (trailing_test_list
217         ((COMMA test)
218          nil)
219         ((trailing_test_list COMMA test)
220          nil))
221        (expr_stmt
222         ((testlist expr_stmt_trailer)
223          (if
224              (and $2
225                   (stringp $1)
226                   (string-match "^\\(\\sw\\|\\s_\\)+$" $1))
227              (wisent-raw-tag
228               (semantic-tag-new-variable $1 nil nil))
229            (wisent-raw-tag
230             (semantic-tag-new-code $1 nil)))))
231        (expr_stmt_trailer
232         ((augassign testlist))
233         ((eq_testlist_zom)))
234        (eq_testlist_zom
235         (nil)
236         ((eq_testlist_zom ASSIGN testlist)
237          (identity $3)))
238        (augassign
239         ((PLUSEQ))
240         ((MINUSEQ))
241         ((MULTEQ))
242         ((DIVEQ))
243         ((MODEQ))
244         ((AMPEQ))
245         ((OREQ))
246         ((HATEQ))
247         ((LTLTEQ))
248         ((GTGTEQ))
249         ((EXPEQ))
250         ((DIVDIVEQ)))
251        (del_stmt
252         ((DEL exprlist)
253          (wisent-raw-tag
254           (semantic-tag-new-code $1 nil))))
255        (exprlist
256         ((expr_list comma_opt)
257          nil))
258        (expr_list
259         ((expr)
260          nil)
261         ((expr_list COMMA expr)
262          nil))
263        (pass_stmt
264         ((PASS)
265          (wisent-raw-tag
266           (semantic-tag-new-code $1 nil))))
267        (flow_stmt
268         ((break_stmt))
269         ((continue_stmt))
270         ((return_stmt))
271         ((raise_stmt))
272         ((yield_stmt)))
273        (break_stmt
274         ((BREAK)
275          (wisent-raw-tag
276           (semantic-tag-new-code $1 nil))))
277        (continue_stmt
278         ((CONTINUE)
279          (wisent-raw-tag
280           (semantic-tag-new-code $1 nil))))
281        (return_stmt
282         ((RETURN testlist_opt)
283          (wisent-raw-tag
284           (semantic-tag-new-code $1 nil))))
285        (testlist_opt
286         (nil)
287         ((testlist)
288          nil))
289        (yield_stmt
290         ((YIELD testlist)
291          (wisent-raw-tag
292           (semantic-tag-new-code $1 nil))))
293        (raise_stmt
294         ((RAISE zero_one_two_or_three_tests)
295          (wisent-raw-tag
296           (semantic-tag-new-code $1 nil))))
297        (zero_one_two_or_three_tests
298         (nil)
299         ((test zero_one_or_two_tests)
300          nil))
301        (zero_one_or_two_tests
302         (nil)
303         ((COMMA test zero_or_one_comma_test)
304          nil))
305        (zero_or_one_comma_test
306         (nil)
307         ((COMMA test)
308          nil))
309        (import_stmt
310         ((IMPORT dotted_as_name_list)
311          (wisent-raw-tag
312           (semantic-tag-new-include $2 nil)))
313         ((FROM dotted_name IMPORT star_or_import_as_name_list)
314          (wisent-raw-tag
315           (semantic-tag-new-include $2 nil))))
316        (dotted_as_name_list
317         ((dotted_as_name))
318         ((dotted_as_name_list COMMA dotted_as_name)))
319        (star_or_import_as_name_list
320         ((MULT)
321          nil)
322         ((import_as_name_list)
323          nil))
324        (import_as_name_list
325         ((import_as_name)
326          nil)
327         ((import_as_name_list COMMA import_as_name)
328          nil))
329        (import_as_name
330         ((NAME name_name_opt)
331          nil))
332        (dotted_as_name
333         ((dotted_name name_name_opt)))
334        (name_name_opt
335         (nil)
336         ((NAME NAME)
337          nil))
338        (dotted_name
339         ((NAME))
340         ((dotted_name PERIOD NAME)
341          (format "%s.%s" $1 $3)))
342        (global_stmt
343         ((GLOBAL comma_sep_name_list)
344          (wisent-raw-tag
345           (semantic-tag-new-code $1 nil))))
346        (comma_sep_name_list
347         ((NAME))
348         ((comma_sep_name_list COMMA NAME)))
349        (exec_stmt
350         ((EXEC expr exec_trailer)
351          (wisent-raw-tag
352           (semantic-tag-new-code $1 nil))))
353        (exec_trailer
354         (nil)
355         ((IN test comma_test_opt)
356          nil))
357        (comma_test_opt
358         (nil)
359         ((COMMA test)
360          nil))
361        (assert_stmt
362         ((ASSERT test comma_test_opt)
363          (wisent-raw-tag
364           (semantic-tag-new-code $1 nil))))
365        (compound_stmt
366         ((if_stmt))
367         ((while_stmt))
368         ((for_stmt))
369         ((try_stmt))
370         ((funcdef))
371         ((class_declaration)))
372        (if_stmt
373         ((IF test COLON suite elif_suite_pair_list else_suite_pair_opt)
374          (wisent-raw-tag
375           (semantic-tag-new-code $1 nil))))
376        (elif_suite_pair_list
377         (nil)
378         ((elif_suite_pair_list ELIF test COLON suite)
379          nil))
380        (else_suite_pair_opt
381         (nil)
382         ((ELSE COLON suite)
383          nil))
384        (suite
385         ((simple_stmt)
386          (list $1))
387         ((NEWLINE indented_block)
388          (progn $2)))
389        (indented_block
390         ((INDENT_BLOCK)
391          (semantic-parse-region
392           (car $region1)
393           (cdr $region1)
394           'indented_block_body 1)))
395        (indented_block_body
396         ((INDENT)
397          nil)
398         ((DEDENT)
399          nil)
400         ((simple_stmt))
401         ((compound_stmt)))
402        (while_stmt
403         ((WHILE test COLON suite else_suite_pair_opt)
404          (wisent-raw-tag
405           (semantic-tag-new-code $1 nil))))
406        (for_stmt
407         ((FOR exprlist IN testlist COLON suite else_suite_pair_opt)
408          (wisent-raw-tag
409           (semantic-tag-new-code $1 nil))))
410        (try_stmt
411         ((TRY COLON suite except_clause_suite_pair_list else_suite_pair_opt)
412          (wisent-raw-tag
413           (semantic-tag-new-code $1 nil)))
414         ((TRY COLON suite FINALLY COLON suite)
415          (wisent-raw-tag
416           (semantic-tag-new-code $1 nil))))
417        (except_clause_suite_pair_list
418         ((except_clause COLON suite)
419          nil)
420         ((except_clause_suite_pair_list except_clause COLON suite)
421          nil))
422        (except_clause
423         ((EXCEPT zero_one_or_two_test)
424          nil))
425        (zero_one_or_two_test
426         (nil)
427         ((test zero_or_one_comma_test)
428          nil))
429        (funcdef
430         ((DEF NAME function_parameter_list COLON suite)
431          (wisent-raw-tag
432           (semantic-tag-new-function $2 nil $3))))
433        (function_parameter_list
434         ((PAREN_BLOCK)
435          (let
436              ((wisent-python-EXPANDING-block t))
437            (semantic-parse-region
438             (car $region1)
439             (cdr $region1)
440             'function_parameters 1))))
441        (function_parameters
442         ((LPAREN)
443          nil)
444         ((RPAREN)
445          nil)
446         ((function_parameter COMMA))
447         ((function_parameter RPAREN)))
448        (function_parameter
449         ((fpdef_opt_test))
450         ((MULT NAME)
451          (wisent-raw-tag
452           (semantic-tag-new-variable $2 nil nil)))
453         ((EXPONENT NAME)
454          (wisent-raw-tag
455           (semantic-tag-new-variable $2 nil nil))))
456        (class_declaration
457         ((CLASS NAME paren_class_list_opt COLON suite)
458          (wisent-raw-tag
459           (semantic-tag-new-type $2 $1 $5
460                                  (cons $3 nil)))))
461        (paren_class_list_opt
462         (nil)
463         ((paren_class_list)))
464        (paren_class_list
465         ((PAREN_BLOCK)
466          (let
467              ((wisent-python-EXPANDING-block t))
468            (mapcar 'semantic-tag-name
469                    (semantic-parse-region
470                     (car $region1)
471                     (cdr $region1)
472                     'paren_classes 1)))))
473        (paren_classes
474         ((LPAREN)
475          nil)
476         ((RPAREN)
477          nil)
478         ((paren_class COMMA)
479          (wisent-raw-tag
480           (semantic-tag-new-variable $1 nil nil)))
481         ((paren_class RPAREN)
482          (wisent-raw-tag
483           (semantic-tag-new-variable $1 nil nil))))
484        (paren_class
485         ((dotted_name)))
486        (test
487         ((test_test))
488         ((lambdef)))
489        (test_test
490         ((and_test))
491         ((test_test OR and_test)
492          nil))
493        (and_test
494         ((not_test))
495         ((and_test AND not_test)
496          nil))
497        (not_test
498         ((NOT not_test)
499          nil)
500         ((comparison)))
501        (comparison
502         ((expr))
503         ((comparison comp_op expr)
504          nil))
505        (comp_op
506         ((LT))
507         ((GT))
508         ((EQ))
509         ((GE))
510         ((LE))
511         ((LTGT))
512         ((NE))
513         ((IN))
514         ((NOT IN))
515         ((IS))
516         ((IS NOT)))
517        (expr
518         ((xor_expr))
519         ((expr BAR xor_expr)
520          nil))
521        (xor_expr
522         ((and_expr))
523         ((xor_expr HAT and_expr)
524          nil))
525        (and_expr
526         ((shift_expr))
527         ((and_expr AMP shift_expr)
528          nil))
529        (shift_expr
530         ((arith_expr))
531         ((shift_expr shift_expr_operators arith_expr)
532          nil))
533        (shift_expr_operators
534         ((LTLT))
535         ((GTGT)))
536        (arith_expr
537         ((term))
538         ((arith_expr plus_or_minus term)
539          nil))
540        (plus_or_minus
541         ((PLUS))
542         ((MINUS)))
543        (term
544         ((factor))
545         ((term term_operator factor)
546          nil))
547        (term_operator
548         ((MULT))
549         ((DIV))
550         ((MOD))
551         ((DIVDIV)))
552        (factor
553         ((prefix_operators factor)
554          nil)
555         ((power)))
556        (prefix_operators
557         ((PLUS))
558         ((MINUS))
559         ((TILDE)))
560        (power
561         ((atom trailer_zom exponent_zom)
562          (concat $1
563                  (if $2
564                      (concat " " $2 " ")
565                    "")
566                  (if $3
567                      (concat " " $3)
568                    ""))))
569        (trailer_zom
570         (nil)
571         ((trailer_zom trailer)
572          nil))
573        (exponent_zom
574         (nil)
575         ((exponent_zom EXPONENT factor)
576          nil))
577        (trailer
578         ((PAREN_BLOCK)
579          nil)
580         ((BRACK_BLOCK)
581          nil)
582         ((PERIOD NAME)
583          nil))
584        (atom
585         ((PAREN_BLOCK)
586          nil)
587         ((BRACK_BLOCK)
588          nil)
589         ((BRACE_BLOCK)
590          nil)
591         ((BACKQUOTE testlist BACKQUOTE)
592          nil)
593         ((NAME))
594         ((NUMBER_LITERAL))
595         ((one_or_more_string)))
596        (test_list_opt
597         (nil)
598         ((testlist)
599          nil))
600        (testlist
601         ((comma_sep_test_list comma_opt)))
602        (comma_sep_test_list
603         ((test))
604         ((comma_sep_test_list COMMA test)
605          (format "%s, %s" $1 $3)))
606        (one_or_more_string
607         ((STRING_LITERAL))
608         ((one_or_more_string STRING_LITERAL)
609          (concat $1 $2)))
610        (lambdef
611         ((LAMBDA varargslist_opt COLON test)
612          (format "%s %s" $1
613                  (or $2 ""))))
614        (varargslist_opt
615         (nil)
616         ((varargslist)))
617        (varargslist
618         ((fpdef_opt_test_list_comma_zom rest_args)
619          (nconc $2 $1))
620         ((fpdef_opt_test_list comma_opt)))
621        (rest_args
622         ((MULT NAME multmult_name_opt)
623          nil)
624         ((EXPONENT NAME)
625          nil))
626        (multmult_name_opt
627         (nil)
628         ((COMMA EXPONENT NAME)
629          (wisent-raw-tag
630           (semantic-tag-new-variable $3 nil nil))))
631        (fpdef_opt_test_list_comma_zom
632         (nil)
633         ((fpdef_opt_test_list_comma_zom fpdef_opt_test COMMA)
634          (nconc $2 $1)))
635        (fpdef_opt_test_list
636         ((fpdef_opt_test))
637         ((fpdef_opt_test_list COMMA fpdef_opt_test)
638          (nconc $3 $1)))
639        (fpdef_opt_test
640         ((fpdef eq_test_opt)))
641        (fpdef
642         ((NAME)
643          (wisent-raw-tag
644           (semantic-tag-new-variable $1 nil nil))))
645        (fplist
646         ((fpdef_list comma_opt)))
647        (fpdef_list
648         ((fpdef))
649         ((fpdef_list COMMA fpdef)))
650        (eq_test_opt
651         (nil)
652         ((ASSIGN test)
653          nil))
654        (comma_opt
655         (nil)
656         ((COMMA)))
657        (semicolon_opt
658         (nil)
659         ((SEMICOLON))))
660      '(goal function_parameter paren_class indented_block function_parameters paren_classes indented_block_body)))
661   "Parser table.")
662
663 (defun wisent-python-wy--install-parser ()
664   "Setup the Semantic Parser."
665   (semantic-install-function-overrides
666    '((parse-stream . wisent-parse-stream)))
667   (setq semantic-parser-name "LALR"
668         semantic--parse-table wisent-python-wy--parse-table
669         semantic-debug-parser-source "wisent-python.wy"
670         semantic-flex-keywords-obarray wisent-python-wy--keyword-table
671         semantic-lex-types-obarray wisent-python-wy--token-table)
672   ;; Collect unmatched syntax lexical tokens
673   (semantic-make-local-hook 'wisent-discarding-token-functions)
674   (add-hook 'wisent-discarding-token-functions
675             'wisent-collect-unmatched-syntax nil t))
676
677 \f
678 ;;; Analyzers
679 ;;
680 (require 'semantic-lex)
681
682 (define-lex-keyword-type-analyzer wisent-python-wy--<keyword>-keyword-analyzer
683   "keyword analyzer for <keyword> tokens."
684   "\\(\\sw\\|\\s_\\)+")
685
686 (define-lex-block-type-analyzer wisent-python-wy--<block>-block-analyzer
687   "block analyzer for <block> tokens."
688   "\\s(\\|\\s)"
689   '((("(" LPAREN PAREN_BLOCK)
690      ("{" LBRACE BRACE_BLOCK)
691      ("[" LBRACK BRACK_BLOCK))
692     (")" RPAREN)
693     ("}" RBRACE)
694     ("]" RBRACK))
695   )
696
697 (define-lex-regex-type-analyzer wisent-python-wy--<symbol>-regexp-analyzer
698   "regexp analyzer for <symbol> tokens."
699   "\\(\\sw\\|\\s_\\)+"
700   nil
701   'NAME)
702
703 (define-lex-regex-type-analyzer wisent-python-wy--<number>-regexp-analyzer
704   "regexp analyzer for <number> tokens."
705   semantic-lex-number-expression
706   nil
707   'NUMBER_LITERAL)
708
709 (define-lex-string-type-analyzer wisent-python-wy--<punctuation>-string-analyzer
710   "string analyzer for <punctuation> tokens."
711   "\\(\\s.\\|\\s$\\|\\s'\\)+"
712   '((BACKQUOTE . "`")
713     (ASSIGN . "=")
714     (COMMA . ",")
715     (SEMICOLON . ";")
716     (COLON . ":")
717     (BAR . "|")
718     (TILDE . "~")
719     (PERIOD . ".")
720     (MINUS . "-")
721     (PLUS . "+")
722     (MOD . "%")
723     (DIV . "/")
724     (MULT . "*")
725     (AMP . "&")
726     (GT . ">")
727     (LT . "<")
728     (HAT . "^")
729     (NE . "!=")
730     (LTGT . "<>")
731     (HATEQ . "^=")
732     (OREQ . "|=")
733     (AMPEQ . "&=")
734     (MODEQ . "%=")
735     (DIVEQ . "/=")
736     (MULTEQ . "*=")
737     (MINUSEQ . "-=")
738     (PLUSEQ . "+=")
739     (LE . "<=")
740     (GE . ">=")
741     (EQ . "==")
742     (EXPONENT . "**")
743     (GTGT . ">>")
744     (LTLT . "<<")
745     (DIVDIV . "//")
746     (DIVDIVEQ . "//=")
747     (EXPEQ . "**=")
748     (GTGTEQ . ">>=")
749     (LTLTEQ . "<<="))
750   'punctuation)
751
752 \f
753 ;;; Epilogue
754 ;;
755
756 (provide 'wisent-python-wy)
757
758 ;;; wisent-python-wy.el ends here