1 ;;; semantic-erlang-by.el --- Generated parser support file
3 ;; Copyright (C) 2002, 2003 Vladimir G. Sekissov
5 ;; Author: Eric M. Ludlam <zappo@projectile.siege-engine.com>
6 ;; Created: 2007-06-05 21:47:08-0400
8 ;; X-RCS: $Id: semantic-erlang-by.el,v 1.1 2007-11-26 15:11:55 michaels Exp $
10 ;; This file is not part of GNU Emacs.
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.
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.
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.
29 ;; PLEASE DO NOT MANUALLY EDIT THIS FILE! It is automatically
30 ;; generated from the grammar file erlang.by.
42 (defconst semantic-erlang-by--keyword-table
43 (semantic-lex-make-keyword-table
73 ("include_lib" . INCLUDE_LIB)
74 ("behaviour" . BEHAVIOUR)
85 ("unsigned" . UNSIGNED))
87 "Table of language keywords.")
89 (defconst semantic-erlang-by--token-table
90 (semantic-lex-make-type-table
108 (INTEGER . "integer")
111 (VAR2 . "^[A-Z][_a-zA-Z0-9]*")
112 (VAR1 . "^_[a-zA-Z0-9]+")
113 (INT2 . "[0-9]\\{1,2\\}")
114 (INT1 . "[0-9a-eA-E]+")
118 (ATOM1 . "[a-z][a-zA-Z0-9_@]*"))
123 (GREATER . "\\`[>]\\'")
125 (EQUAL . "\\`[=]\\'")
128 (MINUS . "\\`[-]\\'")
130 (DIVIDE . "\\`[/]\\'")
131 (AMPERSAND . "\\`[&]\\'")
133 (SEMICOLON . "\\`[;]\\'")
134 (COLON . "\\`[:]\\'")
135 (PERIOD . "\\`[.]\\'")
136 (HASH . "\\`[#]\\'")))
138 "Table of lexical tokens.")
140 (defconst semantic-erlang-by--parse-table
144 ) ;; end bovine-toplevel
166 ) ;; end list-conc-op
263 "[a-z][a-zA-Z0-9_@]*"
289 ) ;; end float-literal
315 ) ;; end integer-literal
319 ) ;; end char-literal
325 (semantic-tag-new-variable
326 (nth 0 vals) nil nil))
329 "^[A-Z][_a-zA-Z0-9]*"
331 (semantic-tag-new-variable
332 (nth 0 vals) nil nil))
373 binary-segments-rest)
374 ) ;; end binary-segments
376 (binary-segments-rest
385 ) ;; end binary-segments-rest
392 ) ;; end binary-segment
400 binary-type-spec-list)
406 binary-type-spec-list)
409 ) ;; end binary-segment-rest
423 ) ;; end binary-signed
432 ) ;; end binary-endian
447 ) ;; end binary-type-spec
449 (binary-type-spec-list
453 binary-type-spec-list)
455 ) ;; end binary-type-spec-list
473 (semantic-tag-new-package
475 (semantic-bovinate-from-nonterminal
480 'module-attr-name)) nil))
495 ) ;; end module-attr-name
534 ) ;; end module-name-rest
552 ) ;; end anywhere-attr
568 ) ;; end export-name-list
580 (semantic-bovinate-from-nonterminal
601 (semantic-bovinate-from-nonterminal
606 'function-name-list)))
614 ) ;; end import-name-list
629 ) ;; end function-name-list
646 ) ;; end function-names
659 ) ;; end function-arity
668 ) ;; end compile-attr
694 ) ;; end file-attr-list
711 ) ;; end function-decl
715 function-clauses-rest
719 ) ;; end function-clauses
721 (function-clauses-rest
727 ) ;; end function-clauses-rest
733 (semantic-tag-new-function
744 ) ;; end function-clause
755 (semantic-parse-region
774 (semantic-tag-new-type
777 (semantic-parse-region
800 ) ;; end record-decl-tuple
806 (semantic-tag-new-variable
812 (semantic-tag-new-variable
831 ) ;; end record-field-decl
863 pattern-conc-expr-rest
867 ) ;; end pattern-expr
872 ) ;; end pattern-conc-expr
874 (pattern-conc-expr-rest
881 ) ;; end pattern-conc-expr-rest
892 ) ;; end tuple-pattern
904 ) ;; end list-pattern
914 ) ;; end list-pattern-tail
938 ) ;; end patterns-rest
951 ) ;; end record-pattern
953 (record-pattern-tuple
955 record-field-patterns
966 ) ;; end record-pattern-tuple
968 (record-field-patterns
969 (record-field-patterns
972 record-field-pattern)
973 (record-field-pattern)
974 ) ;; end record-field-patterns
976 (record-field-pattern
981 ) ;; end record-field-pattern
1025 ) ;; end send-expr-rest
1030 ) ;; end compare-expr
1037 ) ;; end compare-expr-rest
1041 list-conc-expr-rest)
1042 ) ;; end list-conc-expr
1044 (list-conc-expr-rest
1049 ) ;; end list-conc-expr-rest
1061 ) ;; end add-expr-rest
1073 ) ;; end multi-expr-rest
1079 ) ;; end prefix-expr
1087 ) ;; end record-expr
1095 ) ;; end record-expr-rest
1106 ) ;; end record-expr-field
1108 (record-update-tuple
1112 record-field-updates
1114 ) ;; end record-update-tuple
1116 (record-field-updates
1117 (record-field-update
1118 record-field-updates-rest)
1119 ) ;; end record-field-updates
1121 (record-field-updates-rest
1124 record-field-updates)
1127 ) ;; end record-field-updates-rest
1129 (record-field-update
1132 ) ;; end record-field-update
1140 ) ;; end record-field-value
1150 application-expr-rest)
1151 ) ;; end application-expr
1153 (application-expr-rest
1163 ) ;; end application-expr-rest
1165 (application-expr-list
1171 ) ;; end application-expr-list
1190 ) ;; end primary-expr
1197 ) ;; end string-literal
1222 ) ;; end list-skel-tail
1237 list-compr-exprs-rest)
1238 ) ;; end list-compr-exprs
1240 (list-compr-exprs-rest
1246 ) ;; end list-compr-exprs-rest
1251 ) ;; end list-compr-expr
1299 ) ;; end clause-body
1328 ) ;; end clause-guard
1344 ) ;; end receive-expr
1352 ) ;; end receive-after
1365 ) ;; end fun-clauses
1373 ) ;; end fun-clauses-rest
1382 (semantic-bovinate-from-nonterminal
1387 'clause-pattern-list)))
1391 (clause-pattern-list
1399 ) ;; end clause-pattern-list
1403 clause-patterns-rest
1412 ) ;; end clause-patterns
1414 (clause-patterns-rest
1423 ) ;; end clause-patterns-rest
1428 ) ;; end clause-pattern
1445 ) ;; end match-pattern
1463 ) ;; end paren-expr-list
1500 ) ;; end guard-record-test
1506 ) ;; end guard-recognizer
1512 ) ;; end guard-term-cmp
1518 ) ;; end guard-term-op
1524 ) ;; end paren-guard-test
1532 guard-add-expr-rest)
1533 ) ;; end guard-add-expr
1535 (guard-add-expr-rest
1540 ) ;; end guard-add-expr-rest
1544 guard-multi-expr-rest)
1545 ) ;; end guard-multi-expr
1547 (guard-multi-expr-rest
1552 ) ;; end guard-multi-expr-rest
1556 guard-application-expr)
1557 (guard-application-expr)
1558 ) ;; end guard-prefix-expr
1560 (guard-application-expr
1565 (guard-primary-expr)
1566 ) ;; end guard-application-expr
1574 ) ;; end guard-exprs-list
1579 ) ;; end guard-exprs
1590 ) ;; end guard-exprs-rest
1606 ) ;; end guard-record-expr
1617 ) ;; end guard-primary-expr
1625 ) ;; end guard-tuple-skel
1632 guard-list-skel-tail
1634 ) ;; end guard-list-skel
1636 (guard-list-skel-tail
1642 ) ;; end guard-list-skel-tail
1648 ) ;; end guard-paren-expr
1669 (semantic-bovinate-from-nonterminal
1687 (semantic-tag-new-variable
1689 (nth 4 vals) :constant-flag t))
1691 ) ;; end macro-def-list
1698 ) ;; end macro-def-opt
1707 ) ;; end macro-undef
1728 (semantic-tag-new-include
1730 (semantic-bovinate-from-nonterminal
1735 'include-file-name)) nil))
1737 ) ;; end include-dir
1747 (semantic-tag-new-include
1749 (semantic-bovinate-from-nonterminal
1754 'include-file-name)) nil))
1756 ) ;; end include-lib-dir
1767 ) ;; end include-file-name
1808 (defun semantic-erlang-by--install-parser ()
1809 "Setup the Semantic Parser."
1810 (setq semantic--parse-table semantic-erlang-by--parse-table
1811 semantic-debug-parser-source "erlang.by"
1812 semantic-debug-parser-class 'semantic-bovine-debug-parser
1813 semantic-flex-keywords-obarray semantic-erlang-by--keyword-table
1819 (require 'semantic-lex)
1825 (provide 'semantic-erlang-by)
1827 ;;; semantic-erlang-by.el ends here