1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
emacs/lisp/cedet/semantic/bovine/make-by.el
2011-08-02 22:05:38 -07:00

385 lines
7.1 KiB
EmacsLisp
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; semantic/bovine/make-by.el --- Generated parser support file
;; Copyright (C) 1999-2004, 2008-2011 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; This file was generated from etc/grammars/make.by.
;;; Code:
(require 'semantic/lex)
(eval-when-compile (require 'semantic/bovine))
;;; Prologue
;;
;;; Declarations
;;
(defconst semantic-make-by--keyword-table
(semantic-lex-make-keyword-table
'(("if" . IF)
("ifdef" . IFDEF)
("ifndef" . IFNDEF)
("ifeq" . IFEQ)
("ifneq" . IFNEQ)
("else" . ELSE)
("endif" . ENDIF)
("include" . INCLUDE))
'(("include" summary "Macro: include filename1 filename2 ...")
("ifneq" summary "Conditional: ifneq (expression) ... else ... endif")
("ifeq" summary "Conditional: ifeq (expression) ... else ... endif")
("ifndef" summary "Conditional: ifndef (expression) ... else ... endif")
("ifdef" summary "Conditional: ifdef (expression) ... else ... endif")
("endif" summary "Conditional: if (expression) ... else ... endif")
("else" summary "Conditional: if (expression) ... else ... endif")
("if" summary "Conditional: if (expression) ... else ... endif")))
"Table of language keywords.")
(defconst semantic-make-by--token-table
(semantic-lex-make-type-table
'(("punctuation"
(BACKSLASH . "\\`[\\]\\'")
(DOLLAR . "\\`[$]\\'")
(EQUAL . "\\`[=]\\'")
(PLUS . "\\`[+]\\'")
(COLON . "\\`[:]\\'")))
'nil)
"Table of lexical tokens.")
(defconst semantic-make-by--parse-table
`(
(bovine-toplevel
(Makefile)
) ;; end bovine-toplevel
(Makefile
(bol
newline
,(semantic-lambda
(list nil))
)
(bol
variable
,(semantic-lambda
(nth 1 vals))
)
(bol
rule
,(semantic-lambda
(nth 1 vals))
)
(bol
conditional
,(semantic-lambda
(nth 1 vals))
)
(bol
include
,(semantic-lambda
(nth 1 vals))
)
(whitespace
,(semantic-lambda
(list nil))
)
(newline
,(semantic-lambda
(list nil))
)
) ;; end Makefile
(variable
(symbol
opt-whitespace
equals
opt-whitespace
element-list
,(semantic-lambda
(semantic-tag-new-variable
(nth 0 vals) nil
(nth 4 vals)))
)
) ;; end variable
(rule
(targets
opt-whitespace
colons
opt-whitespace
element-list
commands
,(semantic-lambda
(semantic-tag-new-function
(nth 0 vals) nil
(nth 4 vals)))
)
) ;; end rule
(targets
(target
opt-whitespace
targets
,(semantic-lambda
(list
(car
(nth 0 vals))
(car
(nth 2 vals))))
)
(target
,(semantic-lambda
(list
(car
(nth 0 vals))))
)
) ;; end targets
(target
(sub-target
target
,(semantic-lambda
(list
(concat
(car
(nth 0 vals))
(car
(nth 2 vals)))))
)
(sub-target
,(semantic-lambda
(list
(car
(nth 0 vals))))
)
) ;; end target
(sub-target
(symbol)
(string)
(varref)
) ;; end sub-target
(conditional
(IF
some-whitespace
symbol
newline
,(semantic-lambda
(list nil))
)
(IFDEF
some-whitespace
symbol
newline
,(semantic-lambda
(list nil))
)
(IFNDEF
some-whitespace
symbol
newline
,(semantic-lambda
(list nil))
)
(IFEQ
some-whitespace
expression
newline
,(semantic-lambda
(list nil))
)
(IFNEQ
some-whitespace
expression
newline
,(semantic-lambda
(list nil))
)
(ELSE
newline
,(semantic-lambda
(list nil))
)
(ENDIF
newline
,(semantic-lambda
(list nil))
)
) ;; end conditional
(expression
(semantic-list)
) ;; end expression
(include
(INCLUDE
some-whitespace
element-list
,(semantic-lambda
(semantic-tag-new-include
(nth 2 vals) nil))
)
) ;; end include
(equals
(punctuation
"\\`[:]\\'"
punctuation
"\\`[=]\\'"
,(semantic-lambda)
)
(punctuation
"\\`[+]\\'"
punctuation
"\\`[=]\\'"
,(semantic-lambda)
)
(punctuation
"\\`[=]\\'"
,(semantic-lambda)
)
) ;; end equals
(colons
(punctuation
"\\`[:]\\'"
punctuation
"\\`[:]\\'"
,(semantic-lambda)
)
(punctuation
"\\`[:]\\'"
,(semantic-lambda)
)
) ;; end colons
(element-list
(elements
newline
,(semantic-lambda
(nth 0 vals))
)
) ;; end element-list
(elements
(element
some-whitespace
elements
,(semantic-lambda
(nth 0 vals)
(nth 2 vals))
)
(element
,(semantic-lambda
(nth 0 vals))
)
( ;;EMPTY
)
) ;; end elements
(element
(sub-element
element
,(semantic-lambda
(list
(concat
(car
(nth 0 vals))
(car
(nth 1 vals)))))
)
( ;;EMPTY
)
) ;; end element
(sub-element
(symbol)
(string)
(punctuation)
(semantic-list
,(semantic-lambda
(list
(buffer-substring-no-properties
(identity start)
(identity end))))
)
) ;; end sub-element
(varref
(punctuation
"\\`[$]\\'"
semantic-list
,(semantic-lambda
(list
(buffer-substring-no-properties
(identity start)
(identity end))))
)
) ;; end varref
(commands
(bol
shell-command
newline
commands
,(semantic-lambda
(list
(nth 0 vals))
(nth 1 vals))
)
( ;;EMPTY
,(semantic-lambda)
)
) ;; end commands
(opt-whitespace
(some-whitespace
,(semantic-lambda
(list nil))
)
( ;;EMPTY
)
) ;; end opt-whitespace
(some-whitespace
(whitespace
some-whitespace
,(semantic-lambda
(list nil))
)
(whitespace
,(semantic-lambda
(list nil))
)
) ;; end some-whitespace
)
"Parser table.")
(defun semantic-make-by--install-parser ()
"Setup the Semantic Parser."
(setq semantic--parse-table semantic-make-by--parse-table
semantic-debug-parser-source "make.by"
semantic-debug-parser-class 'semantic-bovine-debug-parser
semantic-flex-keywords-obarray semantic-make-by--keyword-table
))
(provide 'semantic/bovine/make-by)
;;; semantic/bovine/make-by.el ends here