summaryrefslogtreecommitdiff
path: root/lisp/cedet/semantic/grammar-wy.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2021-03-05 23:33:21 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2021-03-05 23:33:21 -0500
commit6d580dee309187ac0e5922215e133883e15718f9 (patch)
tree82c498443a74a6929d33858c2877048172295670 /lisp/cedet/semantic/grammar-wy.el
parent4b5155673dcbffeb126a063a2288a360473cd845 (diff)
downloademacs-6d580dee309187ac0e5922215e133883e15718f9.tar.gz
* * lisp/cedet/semantic: Use lexical-binding in the generated grammars
* admin/grammars/c.by (typesimple): Bind `semantic-c-classname` dynamically. * lisp/cedet/semantic/bovine.el: Use lexical-binding. (semantic-lambda): Silence warnings if the `vals` arg is not used. * lisp/cedet/semantic/grammar-wy.el: Re-generate. * lisp/cedet/semantic/bovine/grammar.el: Use lexical-binding. (bovine-grammar-expand-action): Silence warnings if some of the `vals`, `start`, or `end` args is not used. (bovine--make-parser-1): Use lexical-binding in the generated files. * lisp/cedet/semantic/wisent/grammar.el: Use lexical-binding. (wisent--make-parser-1): Use lexical-binding in the generated files.
Diffstat (limited to 'lisp/cedet/semantic/grammar-wy.el')
-rw-r--r--lisp/cedet/semantic/grammar-wy.el424
1 files changed, 217 insertions, 207 deletions
diff --git a/lisp/cedet/semantic/grammar-wy.el b/lisp/cedet/semantic/grammar-wy.el
index 12c9c047fc5..9a7f393072f 100644
--- a/lisp/cedet/semantic/grammar-wy.el
+++ b/lisp/cedet/semantic/grammar-wy.el
@@ -1,6 +1,6 @@
-;;; semantic/grammar-wy.el --- Generated parser support file
+;;; semantic/grammar-wy.el --- Generated parser support file -*- lexical-binding:t -*-
-;; Copyright (C) 2002-2004, 2009-2021 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -23,8 +23,9 @@
;;; Code:
-(require 'semantic)
-
+(require 'semantic/lex)
+(eval-when-compile (require 'semantic/bovine))
+
;;; Prologue
;;
(defvar semantic-grammar-lex-c-char-re)
@@ -36,16 +37,20 @@
;;; Declarations
;;
+(eval-and-compile (defconst semantic-grammar-wy--expected-conflicts
+ nil
+ "The number of expected shift/reduce conflicts in this grammar."))
+
(defconst semantic-grammar-wy--keyword-table
(semantic-lex-make-keyword-table
'(("%default-prec" . DEFAULT-PREC)
("%no-default-prec" . NO-DEFAULT-PREC)
("%keyword" . KEYWORD)
- ("%expectedconflicts" . EXPECTEDCONFLICTS)
("%languagemode" . LANGUAGEMODE)
("%left" . LEFT)
("%nonassoc" . NONASSOC)
("%package" . PACKAGE)
+ ("%expectedconflicts" . EXPECTEDCONFLICTS)
("%provide" . PROVIDE)
("%prec" . PREC)
("%put" . PUT)
@@ -111,239 +116,239 @@
(eval-when-compile
(require 'semantic/wisent/comp))
(wisent-compile-grammar
- '((DEFAULT-PREC NO-DEFAULT-PREC KEYWORD LANGUAGEMODE EXPECTEDCONFLICTS LEFT NONASSOC PACKAGE PROVIDE PREC PUT QUOTEMODE RIGHT SCOPESTART START TOKEN TYPE USE-MACROS STRING SYMBOL PERCENT_PERCENT CHARACTER PREFIXED_LIST SEXP PROLOGUE EPILOGUE PAREN_BLOCK BRACE_BLOCK LPAREN RPAREN LBRACE RBRACE COLON SEMI OR LT GT)
+ '((DEFAULT-PREC NO-DEFAULT-PREC KEYWORD LANGUAGEMODE LEFT NONASSOC PACKAGE EXPECTEDCONFLICTS PROVIDE PREC PUT QUOTEMODE RIGHT SCOPESTART START TOKEN TYPE USE-MACROS STRING SYMBOL PERCENT_PERCENT CHARACTER PREFIXED_LIST SEXP PROLOGUE EPILOGUE PAREN_BLOCK BRACE_BLOCK LPAREN RPAREN LBRACE RBRACE COLON SEMI OR LT GT)
nil
(grammar
- ((prologue))
- ((epilogue))
- ((declaration))
- ((nonterminal))
- ((PERCENT_PERCENT)))
+ ((prologue))
+ ((epilogue))
+ ((declaration))
+ ((nonterminal))
+ ((PERCENT_PERCENT)))
(prologue
- ((PROLOGUE)
- (wisent-raw-tag
+ ((PROLOGUE)
+ (wisent-raw-tag
(semantic-tag-new-code "prologue" nil))))
(epilogue
- ((EPILOGUE)
- (wisent-raw-tag
+ ((EPILOGUE)
+ (wisent-raw-tag
(semantic-tag-new-code "epilogue" nil))))
(declaration
- ((decl)
- (eval $1)))
+ ((decl)
+ (eval $1)))
(decl
- ((default_prec_decl))
- ((no_default_prec_decl))
- ((languagemode_decl))
- ((expectedconflicts_decl))
- ((package_decl))
- ((provide_decl))
- ((precedence_decl))
- ((put_decl))
- ((quotemode_decl))
- ((scopestart_decl))
- ((start_decl))
- ((keyword_decl))
- ((token_decl))
- ((type_decl))
- ((use_macros_decl)))
+ ((default_prec_decl))
+ ((no_default_prec_decl))
+ ((languagemode_decl))
+ ((package_decl))
+ ((expectedconflicts_decl))
+ ((provide_decl))
+ ((precedence_decl))
+ ((put_decl))
+ ((quotemode_decl))
+ ((scopestart_decl))
+ ((start_decl))
+ ((keyword_decl))
+ ((token_decl))
+ ((type_decl))
+ ((use_macros_decl)))
(default_prec_decl
- ((DEFAULT-PREC)
+ ((DEFAULT-PREC)
`(wisent-raw-tag
(semantic-tag "default-prec" 'assoc :value
'("t")))))
(no_default_prec_decl
- ((NO-DEFAULT-PREC)
- `(wisent-raw-tag
+ ((NO-DEFAULT-PREC)
+ `(wisent-raw-tag
(semantic-tag "default-prec" 'assoc :value
- '("nil")))))
+ '("nil")))))
(languagemode_decl
- ((LANGUAGEMODE symbols)
- `(wisent-raw-tag
- (semantic-tag ',(car $2)
- 'languagemode :rest ',(cdr $2)))))
- (expectedconflicts_decl
- ((EXPECTEDCONFLICTS symbols)
- `(wisent-raw-tag
+ ((LANGUAGEMODE symbols)
+ `(wisent-raw-tag
(semantic-tag ',(car $2)
- 'expectedconflicts :rest ',(cdr $2)))))
+ 'languagemode :rest ',(cdr $2)))))
(package_decl
- ((PACKAGE SYMBOL)
- `(wisent-raw-tag
+ ((PACKAGE SYMBOL)
+ `(wisent-raw-tag
(semantic-tag-new-package ',$2 nil))))
+ (expectedconflicts_decl
+ ((EXPECTEDCONFLICTS symbols)
+ `(wisent-raw-tag
+ (semantic-tag ',(car $2)
+ 'expectedconflicts :rest ',(cdr $2)))))
(provide_decl
- ((PROVIDE SYMBOL)
- `(wisent-raw-tag
+ ((PROVIDE SYMBOL)
+ `(wisent-raw-tag
(semantic-tag ',$2 'provide))))
(precedence_decl
- ((associativity token_type_opt items)
- `(wisent-raw-tag
+ ((associativity token_type_opt items)
+ `(wisent-raw-tag
(semantic-tag ',$1 'assoc :type ',$2 :value ',$3))))
(associativity
- ((LEFT)
- (progn "left"))
- ((RIGHT)
- (progn "right"))
- ((NONASSOC)
- (progn "nonassoc")))
+ ((LEFT)
+ (progn "left"))
+ ((RIGHT)
+ (progn "right"))
+ ((NONASSOC)
+ (progn "nonassoc")))
(put_decl
- ((PUT put_name put_value)
- `(wisent-raw-tag
+ ((PUT put_name put_value)
+ `(wisent-raw-tag
(semantic-tag ',$2 'put :value ',(list $3))))
- ((PUT put_name put_value_list)
- `(wisent-raw-tag
+ ((PUT put_name put_value_list)
+ `(wisent-raw-tag
(semantic-tag ',$2 'put :value ',$3)))
- ((PUT put_name_list put_value)
- `(wisent-raw-tag
+ ((PUT put_name_list put_value)
+ `(wisent-raw-tag
(semantic-tag ',(car $2)
- 'put :rest ',(cdr $2)
- :value ',(list $3))))
- ((PUT put_name_list put_value_list)
- `(wisent-raw-tag
+ 'put :rest ',(cdr $2)
+ :value ',(list $3))))
+ ((PUT put_name_list put_value_list)
+ `(wisent-raw-tag
(semantic-tag ',(car $2)
- 'put :rest ',(cdr $2)
- :value ',$3))))
+ 'put :rest ',(cdr $2)
+ :value ',$3))))
(put_name_list
- ((BRACE_BLOCK)
- (mapcar 'semantic-tag-name
- (semantic-parse-region
+ ((BRACE_BLOCK)
+ (mapcar 'semantic-tag-name
+ (semantic-parse-region
(car $region1)
(cdr $region1)
'put_names 1))))
(put_names
- ((LBRACE)
- nil)
- ((RBRACE)
- nil)
- ((put_name)
- (wisent-raw-tag
+ ((LBRACE)
+ nil)
+ ((RBRACE)
+ nil)
+ ((put_name)
+ (wisent-raw-tag
(semantic-tag $1 'put-name))))
(put_name
- ((SYMBOL))
- ((token_type)))
+ ((SYMBOL))
+ ((token_type)))
(put_value_list
- ((BRACE_BLOCK)
- (mapcar 'semantic-tag-code-detail
- (semantic-parse-region
+ ((BRACE_BLOCK)
+ (mapcar 'semantic-tag-code-detail
+ (semantic-parse-region
(car $region1)
(cdr $region1)
'put_values 1))))
(put_values
- ((LBRACE)
- nil)
- ((RBRACE)
- nil)
- ((put_value)
- (wisent-raw-tag
+ ((LBRACE)
+ nil)
+ ((RBRACE)
+ nil)
+ ((put_value)
+ (wisent-raw-tag
(semantic-tag-new-code "put-value" $1))))
(put_value
- ((SYMBOL any_value)
- (cons $1 $2)))
+ ((SYMBOL any_value)
+ (cons $1 $2)))
(scopestart_decl
- ((SCOPESTART SYMBOL)
- `(wisent-raw-tag
+ ((SCOPESTART SYMBOL)
+ `(wisent-raw-tag
(semantic-tag ',$2 'scopestart))))
(quotemode_decl
- ((QUOTEMODE SYMBOL)
- `(wisent-raw-tag
+ ((QUOTEMODE SYMBOL)
+ `(wisent-raw-tag
(semantic-tag ',$2 'quotemode))))
(start_decl
- ((START symbols)
- `(wisent-raw-tag
+ ((START symbols)
+ `(wisent-raw-tag
(semantic-tag ',(car $2)
- 'start :rest ',(cdr $2)))))
+ 'start :rest ',(cdr $2)))))
(keyword_decl
- ((KEYWORD SYMBOL string_value)
- `(wisent-raw-tag
+ ((KEYWORD SYMBOL string_value)
+ `(wisent-raw-tag
(semantic-tag ',$2 'keyword :value ',$3))))
(token_decl
- ((TOKEN token_type_opt SYMBOL string_value)
- `(wisent-raw-tag
+ ((TOKEN token_type_opt SYMBOL string_value)
+ `(wisent-raw-tag
(semantic-tag ',$3 ',(if $2 'token 'keyword)
- :type ',$2 :value ',$4)))
- ((TOKEN token_type_opt symbols)
- `(wisent-raw-tag
+ :type ',$2 :value ',$4)))
+ ((TOKEN token_type_opt symbols)
+ `(wisent-raw-tag
(semantic-tag ',(car $3)
- 'token :type ',$2 :rest ',(cdr $3)))))
+ 'token :type ',$2 :rest ',(cdr $3)))))
(token_type_opt
- (nil)
- ((token_type)))
+ (nil)
+ ((token_type)))
(token_type
- ((LT SYMBOL GT)
- (progn $2)))
+ ((LT SYMBOL GT)
+ (progn $2)))
(type_decl
- ((TYPE token_type plist_opt)
- `(wisent-raw-tag
+ ((TYPE token_type plist_opt)
+ `(wisent-raw-tag
(semantic-tag ',$2 'type :value ',$3))))
(plist_opt
- (nil)
- ((plist)))
+ (nil)
+ ((plist)))
(plist
- ((plist put_value)
- (append
+ ((plist put_value)
+ (append
(list $2)
$1))
- ((put_value)
- (list $1)))
+ ((put_value)
+ (list $1)))
(use_name_list
- ((BRACE_BLOCK)
- (mapcar 'semantic-tag-name
- (semantic-parse-region
+ ((BRACE_BLOCK)
+ (mapcar 'semantic-tag-name
+ (semantic-parse-region
(car $region1)
(cdr $region1)
'use_names 1))))
(use_names
- ((LBRACE)
- nil)
- ((RBRACE)
- nil)
- ((SYMBOL)
- (wisent-raw-tag
+ ((LBRACE)
+ nil)
+ ((RBRACE)
+ nil)
+ ((SYMBOL)
+ (wisent-raw-tag
(semantic-tag $1 'use-name))))
(use_macros_decl
- ((USE-MACROS SYMBOL use_name_list)
- `(wisent-raw-tag
+ ((USE-MACROS SYMBOL use_name_list)
+ `(wisent-raw-tag
(semantic-tag "macro" 'macro :type ',$2 :value ',$3))))
(string_value
- ((STRING)
- (read $1)))
+ ((STRING)
+ (read $1)))
(any_value
- ((SYMBOL))
- ((STRING))
- ((PAREN_BLOCK))
- ((PREFIXED_LIST))
- ((SEXP)))
+ ((SYMBOL))
+ ((STRING))
+ ((PAREN_BLOCK))
+ ((PREFIXED_LIST))
+ ((SEXP)))
(symbols
- ((lifo_symbols)
- (nreverse $1)))
+ ((lifo_symbols)
+ (nreverse $1)))
(lifo_symbols
- ((lifo_symbols SYMBOL)
- (cons $2 $1))
- ((SYMBOL)
- (list $1)))
+ ((lifo_symbols SYMBOL)
+ (cons $2 $1))
+ ((SYMBOL)
+ (list $1)))
(nonterminal
- ((SYMBOL
+ ((SYMBOL
(setq semantic-grammar-wy--nterm $1 semantic-grammar-wy--rindx 0)
COLON rules SEMI)
- (wisent-raw-tag
+ (wisent-raw-tag
(semantic-tag $1 'nonterminal :children $4))))
(rules
- ((lifo_rules)
- (apply 'nconc
- (nreverse $1))))
+ ((lifo_rules)
+ (apply 'nconc
+ (nreverse $1))))
(lifo_rules
- ((lifo_rules OR rule)
- (cons $3 $1))
- ((rule)
- (list $1)))
+ ((lifo_rules OR rule)
+ (cons $3 $1))
+ ((rule)
+ (list $1)))
(rule
- ((rhs)
- (let*
+ ((rhs)
+ (let*
((nterm semantic-grammar-wy--nterm)
(rindx semantic-grammar-wy--rindx)
(rhs $1)
comps prec action elt)
(setq semantic-grammar-wy--rindx
- (1+ semantic-grammar-wy--rindx))
+ (1+ semantic-grammar-wy--rindx))
(while rhs
(setq elt
(car rhs)
@@ -359,10 +364,10 @@
(if
(or action comps)
(setq comps
- (cons elt comps)
- semantic-grammar-wy--rindx
- (1+ semantic-grammar-wy--rindx))
- (setq action
+ (cons elt comps)
+ semantic-grammar-wy--rindx
+ (1+ semantic-grammar-wy--rindx))
+ (setq action
(car elt))))
(t
(setq comps
@@ -375,46 +380,46 @@
(if comps "group" "empty")
:value comps :prec prec :expr action))))))
(rhs
- (nil)
- ((rhs item)
- (cons $2 $1))
- ((rhs action)
- (cons
+ (nil)
+ ((rhs item)
+ (cons $2 $1))
+ ((rhs action)
+ (cons
(list $2)
$1))
- ((rhs PREC item)
- (cons
+ ((rhs PREC item)
+ (cons
(vector $3)
$1)))
(action
- ((PAREN_BLOCK))
- ((PREFIXED_LIST))
- ((BRACE_BLOCK)
- (format "(progn\n%s)"
- (let
+ ((PAREN_BLOCK))
+ ((PREFIXED_LIST))
+ ((BRACE_BLOCK)
+ (format "(progn\n%s)"
+ (let
((s $1))
(if
- (string-match "^{[\r\n\t ]*" s)
+ (string-match "^{[ \n ]*" s)
(setq s
(substring s
- (match-end 0))))
+ (match-end 0))))
(if
- (string-match "[\r\n\t ]*}$" s)
+ (string-match "[ \n ]*}$" s)
(setq s
(substring s 0
- (match-beginning 0))))
+ (match-beginning 0))))
s))))
(items
- ((lifo_items)
- (nreverse $1)))
+ ((lifo_items)
+ (nreverse $1)))
(lifo_items
- ((lifo_items item)
- (cons $2 $1))
- ((item)
- (list $1)))
+ ((lifo_items item)
+ (cons $2 $1))
+ ((item)
+ (list $1)))
(item
- ((SYMBOL))
- ((CHARACTER))))
+ ((SYMBOL))
+ ((CHARACTER))))
'(grammar prologue epilogue declaration nonterminal rule put_names put_values use_names)))
"Parser table.")
@@ -423,25 +428,26 @@
(semantic-install-function-overrides
'((semantic-parse-stream . wisent-parse-stream)))
(setq semantic-parser-name "LALR"
- semantic--parse-table semantic-grammar-wy--parse-table
- semantic-debug-parser-source "grammar.wy"
- semantic-flex-keywords-obarray semantic-grammar-wy--keyword-table
- semantic-lex-types-obarray semantic-grammar-wy--token-table)
+ semantic--parse-table semantic-grammar-wy--parse-table
+ semantic-debug-parser-source "grammar.wy"
+ semantic-flex-keywords-obarray semantic-grammar-wy--keyword-table
+ semantic-lex-types-obarray semantic-grammar-wy--token-table)
;; Collect unmatched syntax lexical tokens
(add-hook 'wisent-discarding-token-functions
- 'wisent-collect-unmatched-syntax nil t))
+ 'wisent-collect-unmatched-syntax nil t))
;;; Analyzers
;;
-(define-lex-block-type-analyzer semantic-grammar-wy--<block>-block-analyzer
- "block analyzer for <block> tokens."
- "\\s(\\|\\s)"
- '((("(" LPAREN PAREN_BLOCK)
- ("{" LBRACE BRACE_BLOCK))
- (")" RPAREN)
- ("}" RBRACE))
- )
+(define-lex-regex-type-analyzer semantic-grammar-wy--<symbol>-regexp-analyzer
+ "regexp analyzer for <symbol> tokens."
+ ":?\\(\\sw\\|\\s_\\)+"
+ '((PERCENT_PERCENT . "\\`%%\\'"))
+ 'SYMBOL)
+
+(define-lex-keyword-type-analyzer semantic-grammar-wy--<keyword>-keyword-analyzer
+ "keyword analyzer for <keyword> tokens."
+ "\\(\\sw\\|\\s_\\)+")
(define-lex-regex-type-analyzer semantic-grammar-wy--<char>-regexp-analyzer
"regexp analyzer for <char> tokens."
@@ -449,21 +455,19 @@
nil
'CHARACTER)
-(define-lex-regex-type-analyzer semantic-grammar-wy--<symbol>-regexp-analyzer
- "regexp analyzer for <symbol> tokens."
- ":?\\(\\sw\\|\\s_\\)+"
- '((PERCENT_PERCENT . "\\`%%\\'"))
- 'SYMBOL)
-
(define-lex-sexp-type-analyzer semantic-grammar-wy--<qlist>-sexp-analyzer
"sexp analyzer for <qlist> tokens."
"\\s'\\s-*("
'PREFIXED_LIST)
-(define-lex-sexp-type-analyzer semantic-grammar-wy--<string>-sexp-analyzer
- "sexp analyzer for <string> tokens."
- "\\s\""
- 'STRING)
+(define-lex-block-type-analyzer semantic-grammar-wy--<block>-block-analyzer
+ "block analyzer for <block> tokens."
+ "\\s(\\|\\s)"
+ '((("(" LPAREN PAREN_BLOCK)
+ ("{" LBRACE BRACE_BLOCK))
+ (")" RPAREN)
+ ("}" RBRACE))
+ )
(define-lex-string-type-analyzer semantic-grammar-wy--<punctuation>-string-analyzer
"string analyzer for <punctuation> tokens."
@@ -475,9 +479,10 @@
(COLON . ":"))
'punctuation)
-(define-lex-keyword-type-analyzer semantic-grammar-wy--<keyword>-keyword-analyzer
- "keyword analyzer for <keyword> tokens."
- "\\(\\sw\\|\\s_\\)+")
+(define-lex-sexp-type-analyzer semantic-grammar-wy--<string>-sexp-analyzer
+ "sexp analyzer for <string> tokens."
+ "\\s\""
+ 'STRING)
(define-lex-sexp-type-analyzer semantic-grammar-wy--<sexp>-sexp-analyzer
"sexp analyzer for <sexp> tokens."
@@ -493,4 +498,9 @@
(provide 'semantic/grammar-wy)
+;; Local Variables:
+;; version-control: never
+;; no-update-autoloads: t
+;; End:
+
;;; semantic/grammar-wy.el ends here