;ELC   
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(require 'semantic/lex)
#@64 The number of expected shift/reduce conflicts in this grammar.
(defconst semantic-c-by--expected-conflicts nil (#$ . 108))
#@29 Table of language keywords.
(defconst semantic-c-by--keyword-table (semantic-lex-make-keyword-table '(("extern" . EXTERN) ("static" . STATIC) ("const" . CONST) ("volatile" . VOLATILE) ("register" . REGISTER) ("signed" . SIGNED) ("unsigned" . UNSIGNED) ("inline" . INLINE) ("virtual" . VIRTUAL) ("mutable" . MUTABLE) ("explicit" . EXPLICIT) ("struct" . STRUCT) ("union" . UNION) ("enum" . ENUM) ("typedef" . TYPEDEF) ("class" . CLASS) ("typename" . TYPENAME) ("namespace" . NAMESPACE) ("using" . USING) ("new" . NEW) ("delete" . DELETE) ("template" . TEMPLATE) ("throw" . THROW) ("reentrant" . REENTRANT) ("try" . TRY) ("catch" . CATCH) ("operator" . OPERATOR) ("public" . PUBLIC) ("private" . PRIVATE) ("protected" . PROTECTED) ("friend" . FRIEND) ("if" . IF) ("else" . ELSE) ("do" . DO) ("while" . WHILE) ("for" . FOR) ("switch" . SWITCH) ("case" . CASE) ("default" . DEFAULT) ("return" . RETURN) ("break" . BREAK) ("continue" . CONTINUE) ("sizeof" . SIZEOF) ("void" . VOID) ("char" . CHAR) ("wchar_t" . WCHAR) ("short" . SHORT) ("int" . INT) ("long" . LONG) ("float" . FLOAT) ("double" . DOUBLE) ("bool" . BOOL) ("_P" . UNDERP) ("__P" . UNDERUNDERP)) '(("__P" summary "Common macro to eliminate prototype compatibility on some compilers") ("_P" summary "Common macro to eliminate prototype compatibility on some compilers") ("bool" summary "Primitive boolean type") ("double" summary "Primitive floating-point type (double-precision 64-bit IEEE 754)") ("float" summary "Primitive floating-point type (single-precision 32-bit IEEE 754)") ("long" summary "Integral primitive type (-9223372036854775808 to 9223372036854775807)") ("int" summary "Integral Primitive Type: (-2147483648 to 2147483647)") ("short" summary "Integral Primitive Type: (-32768 to 32767)") ("wchar_t" summary "Wide Character Type") ("char" summary "Integral Character Type: (0 to 256)") ("void" summary "Built in type: void") ("sizeof" summary "Compile time macro: sizeof(<type or variable>) // size in bytes") ("continue" summary "Non-local continue within a loop (for, do/while): continue;") ("break" summary "Non-local exit within a loop or switch (for, do/while, switch): break;") ("return" summary "return <value>;") ("default" summary "switch (<variable>) { case <constvalue>: code; ... default: code; }") ("case" summary "switch (<variable>) { case <constvalue>: code; ... default: code; }") ("switch" summary "switch (<variable>) { case <constvalue>: code; ... default: code; }") ("for" summary "for(<init>; <condition>; <increment>) { code }") ("while" summary "do { code } while (<condition>); or while (<condition>) { code };") ("do" summary " do { code } while (<condition>);") ("else" summary "if (<condition>) { code } [ else { code } ]") ("if" summary "if (<condition>) { code } [ else { code } ]") ("friend" summary "friend class <CLASSNAME>") ("catch" summary "try { <body> } catch { <catch code> }") ("try" summary "try { <body> } catch { <catch code> }") ("reentrant" summary "<type> <methoddef> (<method args>) reentrant ...") ("throw" summary "<type> <methoddef> (<method args>) throw (<exception>) ...") ("template" summary "template <class TYPE ...> TYPE_OR_FUNCTION") ("delete" summary "delete <object>;") ("new" summary "new <classname>();") ("using" summary "using <namespace>;") ("namespace" summary "Namespace Declaration: namespace <name> { ... };") ("typename" summary "typename is used to handle a qualified name as a typename;") ("class" summary "Class Declaration: class <name>[:parents] { ... };") ("typedef" summary "Arbitrary Type Declaration: typedef <typedeclaration> <name>;") ("enum" summary "Enumeration Type Declaration: enum [name] { ... };") ("union" summary "Union Type Declaration: union [name] { ... };") ("struct" summary "Structure Type Declaration: struct [name] { ... };") ("explicit" summary "Forbids implicit type conversion: explicit <constructor>") ("mutable" summary "Member Declaration Modifier: mutable <type> <name> ...") ("virtual" summary "Method Modifier: virtual <type> <name>(...) ...") ("inline" summary "Function Modifier: inline <return  type> <name>(...) {...};") ("unsigned" summary "Numeric Type Modifier: unsigned <numeric type> <name> ...") ("signed" summary "Numeric Type Modifier: signed <numeric type> <name> ...") ("register" summary "Declaration Modifier: register <type> <name> ...") ("volatile" summary "Declaration Modifier: volatile <type> <name> ...") ("const" summary "Declaration Modifier: const <type> <name> ...") ("static" summary "Declaration Modifier: static <type> <name> ...") ("extern" summary "Declaration Modifier: extern <type> <name> ..."))) (#$ . 237))
#@26 Table of lexical tokens.
(defconst semantic-c-by--token-table (semantic-lex-make-type-table '(("semantic-list" (BRACKETS . "\\[\\]") (PARENS . "()") (VOID_BLCK . "^(void)$") (BRACE_BLCK . "^{") (PAREN_BLCK . "^(") (BRACK_BLCK . "\\[.*\\]$")) ("close-paren" (RBRACE . "}") (RPAREN . ")")) ("open-paren" (LBRACE . "{") (LPAREN . "(")) ("symbol" (RESTRICT . "\\<\\(__\\)?restrict\\>")) ("number" (ZERO . "^0$")) ("string" (CPP . "\"C\\+\\+\"") (C . "\"C\"")) ("punctuation" (OR . "\\`[|]\\'") (HAT . "\\`\\^\\'") (MOD . "\\`[%]\\'") (TILDE . "\\`[~]\\'") (COMA . "\\`[,]\\'") (GREATER . "\\`[>]\\'") (LESS . "\\`[<]\\'") (EQUAL . "\\`[=]\\'") (QUESTION . "\\`[?]\\'") (BANG . "\\`[!]\\'") (MINUS . "\\`[-]\\'") (PLUS . "\\`[+]\\'") (DIVIDE . "\\`[/]\\'") (AMPERSAND . "\\`[&]\\'") (STAR . "\\`[*]\\'") (SEMICOLON . "\\`[;]\\'") (COLON . "\\`[:]\\'") (PERIOD . "\\`[.]\\'") (HASH . "\\`[#]\\'"))) nil) (#$ . 4865))
#@15 Parser table.
(defconst semantic-c-by--parse-table (byte-code "\300\301\302\303\304\305\306D\307\310\311DF\312\313\314\315\316\317\257\313\314\320\316\321\257\313\314\315\322F\313\314\320\323F\257\324\325\326D\327\330D\331\332DF\333\325\334D\335\336DE\337\316\340DD\341\342\305\343\344E\310\345\346E\347\350\351\352\353\257\354\355\356\357E\355\360\361\362F\363BBBBBBB\364\351\352\365\366\367\257\370CE\371\372\373\374\375F\373\372\374\376FE\365\371\351\377\365\201@ \257\371\201A DE\373\201B \373\201C E\201D BB\201E \201F \372\347\201G D\201H CE\201I \316\201J DD\201K \305\343\201L E\310\345\201M E\201N \201O \201P \347\351\352\201Q F\201R \201S \331\201T D\201U BBBBBBBBBB\201V \316\201W DD\201X \361\201Y \201Z E\305\343\201[ E\310\345\201\\ E\351\377\201] E\257\201^ \201_ \201` CE\201a \201b \201c \201^ \366\364\316\201d \257\201b \201c \201^ \366\364\201e \257\201f \201c \201^ \337\201g \257\201h \201c \201^ \201V \201i \257\201j \201k \201l \201m \201n \201o \257\257\201n \201p \351\377\201n \201q \257\201p \201r DE\201p \201s \361\201t \201u \201v \257D\201w \201x \201a \351\201y \201z F\201{ \361\201I \201| F\201{ \201I \201} E\201{ \361\351\201~ \201l \351\201y \201 \257\257\201\200 \201\201 \201\202 \351\201y \201\203 \257D\201\202 \201l \201\204 D\201{ \201l \201\205 EE\201\206 \201\207 \201\210 \201\211 \201\212 \201\213 \257D\201\214 \366\201\210 \201\215 D\201\216 CE\201\210 \351\201\217 \201\220 \351\201\221 \201\222 \257D\201\220 \201\223 \201\224 \201\225 E\201\226 BB\201\224 \351\377\201\220 \201\227 F\201\230 CE\201\223 \201\231 \201\232 \201\233 E\314\201\234 D\201\235 \201\236 D\201s \201\237 \374\201\240 F\316\201\241 D\201\242 \316\201\243 E\257\201\232 \351\201~ \361\351\201\217 \201\220 \351\201\221 \201\244 \257	\351\201~ \361\201\245 F\201\246 CF\201\231 \360\361\201\247 E\201\250 \361\201\251 E\201\252 \361\201\253 E\201k \201l \201m \201s \201\237 \201\254 \201\255 \257\257\201\212 \201x \201\256 D\201\257 \201\260 DE\201s \351\201\261 \201\262 \201s \201\263 \257\201\264 CE\201\262 \201\265 \201\262 \201\266 E\201\267 CE\201\270 \201k \201\271 \201k \201\272 E\201\271 \201\273 D\201\274 CF\201\275 \201\276 \201\277 \201\300 D\201\301 CE\201\302 \201m \201\303 \201m \201\304 E\201\303 \201\305 D\201\306 CF\201\307 \201\237 \351\201\310 \201\311 E\201\312 CE\201l \201a \201\313 D\201\250 \361\201\314 E\201f \361\201\315 E\201h \361\201\316 E\201\317 \201\320 D\361\201\210 \201\321 E\201\322 \366\201\323 E\361\201\324 D\257	\201\325 \201\326 \201\327 \201\330 \201\331 \201\332 \201\333 \201\334 E\201\335 \201\336 \201\337 \201\333 \201\340 E\201\341 \201\342 \201\343 \201\337 \201\344 \201\345 E\201\337 \211\201\346 E\201\347 BBBBBBBBBBBBB\201\317 \201\350 \201\326 \201\351 E\201\326 \201\352 D\201\350 \201\353 DF\201\354 \201k \201l \201k \201\237 \201\355 \201\356 \257D\201\257 \201\354 \201\357 D\201k \201\355 \201\360 EE\201\355 \356\201\361 D\201\362 \201\363 DE\356\201s \201c \201\364 \201\365 \366\201\366 \201\367 \201\370 \201\371 \201\372 \201\373 \201\374 \257\f\201s \201c \201\364 \201\365 \366\201\366 \201\370 \201\371 \201\372 \201\375 \201\376 \257E\201\362 \201\377 \351\201y \201 FD\201\366 \201\201D\201\201D\201BBB\201\201\370 \201\201\370 \201E\201	CE\201\n\201\371 \201\316\201\fE\201BB\201\374\351\377\201\201\257\374\310\201\201F\361\310\201\201F\305\201\201\201F\310\201\201E\257\201t \351\352\201\235 \201F\201CE\201u \316\201\201u \201F\201CE\201Y \351\201~ \201\201F\201CE\201\201\201s \201 \374\201t \201u \201!\257D\201\"\201k \201l \201m \201\237 \201\254 \201Y \201#\257D\201\254 \201\201$D\316\201\367 \201%E\201s \201&DF\201'\201\377 \201\237 \201\201(\351\377\201\377 \201)\257\201\237 \201\201(\201*FE\374\361\366\351\352\351\352\374\201+\257\361\366\201,EE\201\322 \361\366\351\352\351\352\201\322 \201-\257\361\201.DE\201/\361\351\352\351\352\201/\2010\257\361\366\351\352\351\352\2011\257E\201c \201/\2012D\2013CE\201\364 \351\2014\2015E\2016CE\201\367 \316\2017\2018\2019F\316\2017\201:E\316\201;\201<EF\201=\201\351\377\201=\201>\257\201\201?DE\201@\201k \201l \201m \201=\201A\257D\2018\201@\351\201y \2018\201B\257\201@\351\201y \201CFE\201D\201\"\201ED\351\201F\351\201F\351\201F\310\201\201G\257	\351\377\201HE\305\201\201IE\310\201\201JE\257\201K\351\201\217 \351\201\217 \351\201~ \201L\257\351\201\221 \351\201\221 \351\201~ \201M\257\351\201\217 \351\201\217 \201N\257\351\201\221 \351\201\221 \201O\257\351\201~ \351\201~ \201P\257\351\201\217 \351\201~ \201Q\257\351\201\221 \351\201~ \201R\257\351\201S\351\201~ \201T\257\351\201U\351\201~ \201V\257\351\201W\351\201~ \201X\257\351\201\261 \351\201~ \201Y\257\351\201Z\351\201~ \201[\257\351\201\\\351\201~ \201]\257\351\201\310 \351\201~ \201^\257\351\201_\351\201~ \201`\257\351\201W\351\201\221 \351\201\261 \201a\257\351\201W\351\201\221 \201b\257\316\201c\201dE\316\201e\201fE\201g\201h\201i\351\201U\351\201U\201j\257\201k\351\201W\351\201W\201l\257\201m\351\201\310 \351\201\310 \201n\257\201o\351\201_\351\201_\201p\257\201q\201r\201s\201t\201u\201v\201w\351\201x\351\201~ \201y\257\201zBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB\201\365 \201{\201K\201|E\316\201}D\361\201~DF\201\305\201\351\201\261 \350\310\201\201\200\257\305\201\361\310\201\201\201\257E\201\373 \351\201y \201\202E\316\201\203D\351\201~ \201\235 \201\204\351\201y \201\205\257\201\375 \201\206D\257\201\375 \201\207\201\372 \316\201\210\201\211\201\212\257D\201\211\201\213\316\2017\316\201\210\201\211\201\214\257\201\213\316\201\210\201\211\201\215\257\201\216CF\201\217\316\201\220DD\201\221\201\222\201\223\201\224\201\225\314\201\225\201\226E\314\201\227DE\201\230\201\231\201\201\232\351\201\233\201\232\351\352\201\232\201\234\257\201\232\201\235\201\232\201\236F\201\232\201\237DF\201\240BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB\207" [(bovine-toplevel (declaration)) (bovine-inner-scope (codeblock)) (declaration (macro) (type) (define) (var-or-fun) (extern-c) (template) (using)) (codeblock (define) (codeblock-var-or-fun) (type) (using)) extern-c-contents open-paren #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] (declaration) close-paren #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] extern-c EXTERN string "\"C\"" semantic-list #[771 "\300\301\302\303\304\3058@\305	8A\306\307$D\310!\311\211\257\266\203D\"\207" [append "C" extern :members semantic-parse-region 2 extern-c-contents 1 semantic-tag-make-plist nil] 12 "\n\n(fn VALS START END)"] "\"C\\+\\+\"" #[771 "\300\301\302\303\304\3058@\305	8A\306\307$D\310!\311\211\257\266\203D\"\207" [append "C" extern :members semantic-parse-region 2 extern-c-contents 1 semantic-tag-make-plist nil] 12 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] macro spp-macro-def #[771 "\300@\301\211\302\303D\304\305\306\307\310&\266\204D\"\207" [append nil :constant-flag t apply semantic-tag variable :type :default-value] 17 "\n\n(fn VALS START END)"] spp-system-include #[771 "\300@\301\302\303\304\305\306&\266\203D\"\207" [append t nil apply semantic-tag include :system-flag] 14 "\n\n(fn VALS START END)"] spp-include #[771 "\300@\301\211\302\303\304\305&\266\203D\"\207" [append nil apply semantic-tag include :system-flag] 14 "\n\n(fn VALS START END)"] define #[771 "\300@\301\211\302\303D\304\305\306\307\310&\266\204D\"\207" [append nil :constant-flag t apply semantic-tag variable :type :default-value] 17 "\n\n(fn VALS START END)"] spp-macro-undef #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] unionparts #[771 "\300\301@@@A\302\303$D\"\207" [append semantic-parse-region classsubparts 1] 9 "\n\n(fn VALS START END)"] (opt-symbol (symbol) nil) classsubparts "{" #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] "}" #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] class-protection opt-symbol punctuation "\\`[:]\\'" #[771 "\300@@\301\302\303!\302\211\257\266\203D\"\207" [append label nil semantic-tag-make-plist] 12 "\n\n(fn VALS START END)"] (var-or-fun) FRIEND func-decl #[771 "\300A@@\301\302\303!\302\211\257\266\203D\"\207" [append friend nil semantic-tag-make-plist] 12 "\n\n(fn VALS START END)"] CLASS symbol #[771 "\300\3018\302\303\304!\303\211\257\266\203D\"\207" [append 2 friend nil semantic-tag-make-plist] 12 "\n\n(fn VALS START END)"] ((type) (define) (template) nil) opt-class-parents class-parents opt-template-specifier #[771 "\300A@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] one-class-parent opt-class-protection opt-class-declmods namespace-symbol #[771 "\300\3018@\302\303\211\304@@D\305\306\307\310\311	\312\n@\313\fA\f&\f\266\205D\"\207" [append 2 "class" nil :protection apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300\3018@\302\303\211\304A@@D\305\306\307\310\311	\312\n@\313\fA\f&\f\266\205D\"\207" [append 2 "class" nil :protection apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] "\\`[,]\\'" #[771 "\300@\3018BD\"\207" [append 2] 7 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] class-declmods #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] (nil) (class-declmods (VIRTUAL)) (class-protection (PUBLIC) (PRIVATE) (PROTECTED)) #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "unspecified"] 7 "\n\n(fn VALS START END)"] namespaceparts #[771 "\300\301@@@A\302\303$D\"\207" [append semantic-parse-region namespacesubparts 1] 9 "\n\n(fn VALS START END)"] namespacesubparts #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] (type) (var-or-fun) (define) #[771 "\300@@\301\302\303!\302\211\257\266\203D\"\207" [append label nil semantic-tag-make-plist] 12 "\n\n(fn VALS START END)"] (template) (using) #[771 "\300@\301\302\303D\304!\305\211\257\266\203D\"\207" [append include :inside-ns t semantic-tag-make-plist nil] 12 "\n\n(fn VALS START END)"] (nil) enumparts #[771 "\300\301@@@A\302\303$D\"\207" [append semantic-parse-region enumsubparts 1] 9 "\n\n(fn VALS START END)"] enumsubparts opt-assign #[771 "\300@\301A@@\302\303D\304\305\306\307\310&\266\204D\"\207" [append "int" :constant-flag t apply semantic-tag variable :type :default-value] 17 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] opt-name (symbol) #[771 "\300\301CD\"\207" [append #1=""] 7 "\n\n(fn VALS START END)"] typesimple struct-or-class opt-class #[771 "\301\3028@@@\3028@@@B\303\3048@\3048A\305\306$)\3078\310\311	8\312\nA@@F\313\314\315\316\317	\320\n@\321\fA\f&\f\266\205D\"\207" [semantic-c-classname append 2 semantic-parse-region 5 classsubparts 1 4 :template-specifier 3 :parent apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300\3018@@@\302\3038\304\305	8\306\307\310\fA@@\257\311\312\313\314\315	\316\n@\317\fA\f&\f\266\205D\"\207" [append 2 nil 4 :template-specifier 3 :prototype t :parent apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] UNION #[771 "\300\3018@@\3028\303\304A@@D\305\306\307\310\311	\312\n@\313\fA\f&\f\266\205D\"\207" [append 2 3 nil :parent apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] ENUM #[771 "\300\3018@@\3028\303\304A@@D\305\306\307\310\311	\312\n@\313\fA\f&\f\266\205D\"\207" [append 2 3 nil :parent apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] TYPEDEF declmods typeformbase cv-declmods typedef-symbol-list #[771 "\300\3018@\302\3038C\302\304\305\306\307\310	\311\n@\312\fA\f&\f\266\205D\"\207" [append 4 nil 2 apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] typedefname #[771 "\300@\3018BD\"\207" [append 2] 7 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] opt-stars opt-bits opt-array #[771 "\300@A@DD\"\207" [append] 7 "\n\n(fn VALS START END)"] (struct-or-class (STRUCT) (CLASS)) type "\\`[;]\\'" #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] NAMESPACE #[771 "\300A@@\3018\302\211\303\304\305\306\307	\310\n@\311\fA\f&\f\266\205D\"\207" [append 2 nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300\301@A@\302\211\303\304\305\306\307	\310\n@\311\fA\f&\f\266\205D\"\207" [append "unnamed" nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] "\\`[=]\\'" #[771 "\300A@@\3018@@\302\211\211\303\304\305\306\307	\310\n@\311\fA\f&\f\266\205C\302\312\313D\303\304\305\306\307	\310\n@\311\fA\f&\f\266\205D\"\207" [append 3 nil apply semantic-tag type :type :members :superclasses :interfaces :kind alias] 24 "\n\n(fn VALS START END)"] using USING usingname #[771 "\300A@@\301\302A@D\303!\304\211\257\266\203D\"\207" [append using :type semantic-tag-make-plist nil] 12 "\n\n(fn VALS START END)"] #[771 "\300@@\301\302\211\303\304D\305\306\307\310\311	\312\n@\313\fA\f&\f\266\205D\"\207" [append "class" nil :prototype t apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300A@@\301\302\211\303\304D\305\306\307\310\311	\312\n@\313\fA\f&\f\266\205D\"\207" [append "namespace" nil :prototype t apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] template TEMPLATE template-specifier opt-friend template-definition #[771 "\300\301\3028A@\"D\"\207" [append semantic-c-reconstitute-template 3] 7 "\n\n(fn VALS START END)"] (opt-friend (FRIEND) nil) #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] "\\`[<]\\'" template-specifier-types "\\`[>]\\'" #[771 "\300A@D\"\207" [append] 7 "\n\n(fn VALS START END)"] template-var template-specifier-type-list #[771 "\300@A@BD\"\207" [append] 7 "\n\n(fn VALS START END)"] (nil) #[771 "\300A@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] template-type opt-template-equal #[771 "\300@@@ABD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] number #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] opt-ref #[771 "\300\3018D\"\207" [append 2] 7 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] SIZEOF #[771 "\300A@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300A@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300A@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] #[771 "\300A@\301\302\211\211\303\304\305\306\307	\310\n@\311\fA\f&\f\266\205D\"\207" [append "class" nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] STRUCT #[771 "\300A@\301\302\211\211\303\304\305\306\307	\310\n@\311\fA\f&\f\266\205D\"\207" [append "struct" nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] TYPENAME #[771 "\300A@\301\302\211\211\303\304\305\306\307	\310\n@\311\fA\f&\f\266\205D\"\207" [append "class" nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] variablearg-opt-name #[771 "\300A@@\301\211\211\302\303\304\nA@8\302\"\305\306\300\f@\3048\"\235\205\" \307\310\311\306\300@\3048\"\"\312\3138@\314\3158@\316\3178@\257\f\320\321\322\323\324	\325\n@\326\fA\f&\f\266\205D\"\207" [append nil :template-specifier plist-get 2 :constant-flag "const" t :typemodifiers delete :reference 4 :pointer 3 :typevar 5 apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] var-or-fun #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] "\\`[*]\\'" opt-starmod #[771 "\300\3018@TCD\"\207" [append 2] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append 0] 7 "\n\n(fn VALS START END)"] STARMOD #[771 "\300@@A@BD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] (STARMOD (CONST)) DECLMOD #[771 "\300@@A@BD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] (DECLMOD (EXTERN) (STATIC) (CVDECLMOD) (INLINE) (REGISTER) (FRIEND) (TYPENAME) (METADECLMOD) (VIRTUAL)) metadeclmod METADECLMOD #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] (CVDECLMOD (CONST) (VOLATILE)) CVDECLMOD #[771 "\300@@A@BD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] (METADECLMOD (VIRTUAL) (MUTABLE)) "\\`[&]\\'" #[771 "\300\301CD\"\207" [append 1] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append 0] 7 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300A@@\301\211\211\302\303\304\305\306	\307\n@\310\fA\f&\f\266\205D\"\207" [append nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300A@@\301\211\211\302\303\304\305\306	\307\n@\310\fA\f&\f\266\205D\"\207" [append nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300A@@\301\211\211\302\303\304\305\306	\307\n@\310\fA\f&\f\266\205D\"\207" [append nil apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] builtintype #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@\301\302\211\303A@D\304\305\306\307\310	\311\n@\312\fA\f&\f\266\205D\"\207" [append "class" nil :template-specifier apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] namespace-symbol-for-typeformbase #[771 "\300@@\301\302\211\303A@D\304\305\306\307\310	\311\n@\312\fA\f&\f\266\205D\"\207" [append "class" nil :template-specifier apply semantic-tag type :type :members :superclasses :interfaces] 22 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] (signedmod (UNSIGNED) (SIGNED)) builtintype-types (VOID) (CHAR) (WCHAR) SHORT INT #[771 "\300@\301A@QCD\"\207" [append " "] 7 "\n\n(fn VALS START END)"] (SHORT) (INT) LONG #[771 "\300@\301A@QCD\"\207" [append " "] 7 "\n\n(fn VALS START END)"] (FLOAT) (DOUBLE) (BOOL) DOUBLE #[771 "\300@\301A@QCD\"\207" [append " "] 7 "\n\n(fn VALS START END)"] #[771 "\300@\301A@QCD\"\207" [append " "] 7 "\n\n(fn VALS START END)"] ((LONG)) signedmod #[771 "\300@@\301A@@QCD\"\207" [append " "] 7 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@@\301PCD\"\207" [append " int"] 7 "\n\n(fn VALS START END)"] codeblock-var-or-fun var-or-func-decl #[771 "\300\301\3028@A@#D\"\207" [append semantic-c-reconstitute-token 4] 8 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301A@@\302#D\"\207" [append semantic-c-reconstitute-token nil] 8 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] var-decl #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] opt-destructor functionname opt-under-p arg-list opt-post-fcn-modifiers opt-throw opt-initializers fun-or-proto-end #[771 "\300\3018\302A@\3038\3048\305	8\306\n8\257@\3078\3108C\311	8D&\207" [append 3 function 2 6 8 7 10 4 9] 12 "\n\n(fn VALS START END)"] fun-try-end #[771 "\300\3018\302A@\3038\304\305	8\306\n8\257@\3078\3108C\311	8D&\207" [append 3 function 2 nil 7 6 9 4 8] 12 "\n\n(fn VALS START END)"] varnamelist #[771 "\300@\301DD\"\207" [append variable] 7 "\n\n(fn VALS START END)"] UNDERP #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] UNDERUNDERP #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] (nil) (opt-initializers (punctuation "\\`[:]\\'" namespace-symbol semantic-list opt-initializers) (punctuation "\\`[,]\\'" namespace-symbol semantic-list opt-initializers) nil) post-fcn-modifiers #[771 "\300@@A@BD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] (post-fcn-modifiers (REENTRANT) (CONST)) THROW #[771 "A@@A@A\300\301\211\302\303\206 \304$\"A\242\207" [throw-exception-list nil semantic-parse-stream semantic-lex 1] 14 "\n\n(fn VALS START END)"] (nil) throw-exception-list #[771 "\300@@\3018BD\"\207" [append 2] 7 "\n\n(fn VALS START END)"] ")" #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] "(" #[771 "\300A@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] #[771 "\300A@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] "\\[.*\\]$" #[771 "\300\301A@@BCD\"\207" [append 1] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] expression #[771 "\300A@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] (opt-restrict (symbol "\\<\\(__\\)?restrict\\>") nil) varname opt-restrict #[771 "\300\3018@\3028\3038D%\207" [append 2 3 4] 10 "\n\n(fn VALS START END)"] variablearg #[771 "\300\211\3018\3028\"CA@\303\304\305\300	@\3068\"\235\205 \307\310\311\305\300\f@\3068\"\"\312\313\f8@\257\314\315\316\317\320&\266\204D\"\207" [append 4 5 nil :constant-flag "const" 2 t :typemodifiers delete :reference 3 apply semantic-tag variable :type :default-value] 17 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@@@A\301\302\211\303\304\206 \305$\"A\242\266\205@A@DD\"\207" [append function-pointer nil semantic-parse-stream semantic-lex 1] 15 "\n\n(fn VALS START END)"] #[771 "\300\301C@\302\211\211ED$\207" [append #1# nil] 9 "\n\n(fn VALS START END)"] (varname-opt-initializer (semantic-list) (opt-assign) nil) varname-opt-initializer #[771 "\300\211A@\3018\"\3028BD\"\207" [append 2 4] 8 "\n\n(fn VALS START END)"] #[771 "\300\211A@\3018\"CD\"\207" [append 2] 8 "\n\n(fn VALS START END)"] #[771 "\300@\301\3028@QCD\"\207" [append "::" 4] 8 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@\301\3028@QCD\"\207" [append "::" 4] 8 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] namespace-opt-class #[771 "\300@\301\3028@QCD\"\207" [append "::" 3] 8 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] "\\`[~]\\'" #[771 "\300\301CD\"\207" [append t] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] "^(" knr-arguments #[771 "\300A@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301@@@A\302\303$D\"\207" [append semantic-parse-region arg-sub-list 1] 9 "\n\n(fn VALS START END)"] "^(void)$" #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] knr-varnamelist #[771 "\300@\3018BD\"\207" [append 2] 7 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] knr-one-variable-decl #[771 "\300\3018\237A@\302\303\304\300\305\n8!\235\205 \306\307\310\304\305\f8\"F\311\312\313\314\315&\266\204D\"\207" [append 3 nil :constant-flag "const" 2 t :typemodifiers delete apply semantic-tag variable :type :default-value] 17 "\n\n(fn VALS START END)"] #[771 "\300\211\301@!\3028\"D\"\207" [append semantic-expand-c-tag 2] 8 "\n\n(fn VALS START END)"] #[771 "\300\301@!D\"\207" [append semantic-expand-c-tag] 7 "\n\n(fn VALS START END)"] arg-sub-list #[771 "\300@D\"\207" [append] 7 "\n\n(fn VALS START END)"] "\\`[.]\\'" #[771 "\300\301\302\303\211\304\305\306\307\310&\266\204D\"\207" [append "..." "vararg" nil apply semantic-tag variable :type :default-value] 17 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] operatorsym #[771 "\300\301CD\"\207" [append "<<="] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append ">>="] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "<<"] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append ">>"] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "=="] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "<="] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append ">="] 7 "\n\n(fn VALS START END)"] "\\`[!]\\'" #[771 "\300\301CD\"\207" [append "!="] 7 "\n\n(fn VALS START END)"] "\\`[+]\\'" #[771 "\300\301CD\"\207" [append "+="] 7 "\n\n(fn VALS START END)"] "\\`[-]\\'" #[771 "\300\301CD\"\207" [append "-="] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "*="] 7 "\n\n(fn VALS START END)"] "\\`[/]\\'" #[771 "\300\301CD\"\207" [append "/="] 7 "\n\n(fn VALS START END)"] "\\`[%]\\'" #[771 "\300\301CD\"\207" [append "%="] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "&="] 7 "\n\n(fn VALS START END)"] "\\`[|]\\'" #[771 "\300\301CD\"\207" [append "|="] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "->*"] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append "->"] 7 "\n\n(fn VALS START END)"] "()" #[771 "\300\301CD\"\207" [append "()"] 7 "\n\n(fn VALS START END)"] "\\[\\]" #[771 "\300\301CD\"\207" [append "[]"] 7 "\n\n(fn VALS START END)"] (punctuation "\\`[<]\\'") (punctuation "\\`[>]\\'") (punctuation "\\`[*]\\'") #[771 "\300\301CD\"\207" [append "++"] 7 "\n\n(fn VALS START END)"] (punctuation "\\`[+]\\'") #[771 "\300\301CD\"\207" [append "--"] 7 "\n\n(fn VALS START END)"] (punctuation "\\`[-]\\'") #[771 "\300\301CD\"\207" [append "&&"] 7 "\n\n(fn VALS START END)"] (punctuation "\\`[&]\\'") #[771 "\300\301CD\"\207" [append "||"] 7 "\n\n(fn VALS START END)"] (punctuation "\\`[|]\\'") (punctuation "\\`[/]\\'") (punctuation "\\`[=]\\'") (punctuation "\\`[!]\\'") (punctuation "\\`[~]\\'") (punctuation "\\`[%]\\'") (punctuation "\\`[,]\\'") "\\`\\^\\'" #[771 "\300\301CD\"\207" [append "^="] 7 "\n\n(fn VALS START END)"] ((punctuation "\\`\\^\\'")) OPERATOR #[771 "\300A@D\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "@@@A\300\301\211\302\303\206 \304$\"A\242\207" [function-pointer nil semantic-parse-stream semantic-lex 1] 14 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] function-pointer #[771 "\300\301\3028@PCD\"\207" [append "*" 2] 7 "\n\n(fn VALS START END)"] #[771 "\300A@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append t] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] "^0$" #[771 "\300\301CD\"\207" [append :pure-virtual-flag] 7 "\n\n(fn VALS START END)"] #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] TRY "^{" fun-try-several-catches #[771 "\300\301CD\"\207" [append nil] 7 "\n\n(fn VALS START END)"] CATCH #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] #[771 "\300D!\207" [append] 6 "\n\n(fn VALS START END)"] type-cast #[771 "@@@A\300\301\211\302\303\206 \304$\"A\242\207" [type-cast-list nil semantic-parse-stream semantic-lex 1] 14 "\n\n(fn VALS START END)"] (type-cast-list (open-paren typeformbase close-paren)) (opt-brackets-after-symbol (brackets-after-symbol) nil) (brackets-after-symbol (semantic-list "^(") (semantic-list "\\[.*\\]$")) (multi-stage-dereference (namespace-symbol opt-brackets-after-symbol punctuation "\\`[.]\\'" multi-stage-dereference) (namespace-symbol opt-brackets-after-symbol punctuation "\\`[-]\\'" punctuation "\\`[>]\\'" multi-stage-dereference) (namespace-symbol opt-brackets-after-symbol punctuation "\\`[.]\\'" namespace-symbol opt-brackets-after-symbol) (namespace-symbol opt-brackets-after-symbol punctuation "\\`[-]\\'" punctuation "\\`[>]\\'" namespace-symbol opt-brackets-after-symbol) (namespace-symbol brackets-after-symbol)) string-seq #[771 "\300@A@@PCD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300@CD\"\207" [append] 7 "\n\n(fn VALS START END)"] (expr-start (punctuation "\\`[-]\\'") (punctuation "\\`[+]\\'") (punctuation "\\`[*]\\'") (punctuation "\\`[&]\\'")) (expr-binop (punctuation "\\`[-]\\'") (punctuation "\\`[+]\\'") (punctuation "\\`[*]\\'") (punctuation "\\`[/]\\'") (punctuation "\\`[&]\\'" punctuation "\\`[&]\\'") (punctuation "\\`[&]\\'") (punctuation "\\`[|]\\'" punctuation "\\`[|]\\'") (punctuation "\\`[|]\\'") (punctuation "\\`[%]\\'")) unaryexpression "\\`[?]\\'" #[771 "\300DD\"\207" [append] 7 "\n\n(fn VALS START END)"] expr-binop #[771 "\300DD\"\207" [append] 7 "\n\n(fn VALS START END)"] #[771 "\300DD\"\207" [append] 7 "\n\n(fn VALS START END)"] ((unaryexpression (number) (multi-stage-dereference) (NEW multi-stage-dereference) (NEW builtintype-types semantic-list) (symbol) (string-seq) (type-cast expression) (semantic-list expression) (semantic-list) (expr-start expression)))] 126) (#$ . 5782))
#@28 Setup the Semantic Parser.
(defalias 'semantic-c-by--install-parser #[0 "\306\307\310\n\311\211\207" [semantic-c-by--parse-table semantic--parse-table semantic-debug-parser-source semantic-debug-parser-class semantic-debug-parser-debugger-source semantic-c-by--keyword-table "c.by" semantic-bovine-debug-parser semantic/bovine/debug (c-mode c++-mode) semantic-flex-keywords-obarray semantic-equivalent-major-modes] 2 (#$ . 36774)])
(provide 'semantic/bovine/c-by)
