;ELC   
;;; Compiled
;;; in Emacs version 26.3
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(require 'semantic/lex)
#@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 typeless 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> ..."))) (#$ . 432))
#@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) (#$ . 5069))
#@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 #[#1=(vals start end) "\302\303C	D\"\207" [start end append nil] 4] (declaration) close-paren #[#1# "\302\303C	D\"\207" [start end append nil] 4] extern-c EXTERN string "\"C\"" semantic-list #[#1# "\306\307\310\311\312\3138@\3138A\314\315$D\211\n\316	!\317\211\257+\fD\"\207" [vals attributes class name start end append "C" extern :members semantic-parse-region 2 extern-c-contents 1 semantic-tag-make-plist nil] 10] "\"C\\+\\+\"" #[#1# "\306\307\310\311\312\3138@\3138A\314\315$D\211\n\316	!\317\211\257+\fD\"\207" [vals attributes class name start end append "C" extern :members semantic-parse-region 2 extern-c-contents 1 semantic-tag-make-plist nil] 10] #[#1# "\302\303C	D\"\207" [start end append nil] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] macro spp-macro-def #[#1# "\306@\307\211\310\311D\312\313\f\314\315\316\n	&,D\"\207" [vals attributes default-value type name start append nil :constant-flag t apply semantic-tag variable :type :default-value end] 10] spp-system-include #[#1# "\306@\307\310\311\312\313\314\n	&+\fD\"\207" [vals attributes system-flag name start end append t nil apply semantic-tag include :system-flag] 8] spp-include #[#1# "\306@\307\211\310\311\312\313\n	&+\fD\"\207" [vals attributes system-flag name start end append nil apply semantic-tag include :system-flag] 8] define #[#1# "\306@\307\211\310\311D\312\313\f\314\315\316\n	&,D\"\207" [vals attributes default-value type name start append nil :constant-flag t apply semantic-tag variable :type :default-value end] 10] spp-macro-undef #[#1# "\302\303C	D\"\207" [start end append nil] 4] unionparts #[#1# "\303\304@@@A\305\306$	\nD\"\207" [vals start end append semantic-parse-region classsubparts 1] 6] (opt-symbol (symbol) nil) classsubparts "{" #[#1# "\302\303C	D\"\207" [start end append nil] 4] "}" #[#1# "\302\303C	D\"\207" [start end append nil] 4] class-protection opt-symbol punctuation "\\`[:]\\'" #[#1# "\306@@\307\310\211\n\311	!\310\211\257+\fD\"\207" [vals attributes class name start end append label nil semantic-tag-make-plist] 7] (var-or-fun) FRIEND func-decl #[#1# "\306A@@\307\310\211\n\311	!\310\211\257+\fD\"\207" [vals attributes class name start end append friend nil semantic-tag-make-plist] 7] CLASS symbol #[#1# "\306\3078\310\311\211\n\312	!\311\211\257+\fD\"\207" [vals attributes class name start end append 2 friend nil semantic-tag-make-plist] 7] ((type) (define) (template) nil) opt-class-parents class-parents opt-template-specifier #[#1# "\303A@C	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] one-class-parent opt-class-protection opt-class-declmods namespace-symbol #[#1# "\306\3078@\310\311\211\312@@D\313\314\304\315\f\316\317\n@\320\nA	&\f-D\"\207" [vals attributes parents members type name append 2 "class" nil :protection apply semantic-tag :type :members :superclasses :interfaces start end] 14] #[#1# "\306\3078@\310\311\211\312A@@D\313\314\304\315\f\316\317\n@\320\nA	&\f-D\"\207" [vals attributes parents members type name append 2 "class" nil :protection apply semantic-tag :type :members :superclasses :interfaces start end] 14] "\\`[,]\\'" #[#1# "\303@\3048B	\nD\"\207" [vals start end append 2] 4] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] class-declmods #[#1# "\302\303C	D\"\207" [start end append nil] 4] (nil) (class-declmods (VIRTUAL)) (class-protection (PUBLIC) (PRIVATE) (PROTECTED)) #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\302\303C	D\"\207" [start end append "unspecified"] 4] namespaceparts #[#1# "\303\304@@@A\305\306$	\nD\"\207" [vals start end append semantic-parse-region namespacesubparts 1] 6] namespacesubparts #[#1# "\302\303C	D\"\207" [start end append nil] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] (type) (var-or-fun) (define) #[#1# "\306@@\307\310\211\n\311	!\310\211\257+\fD\"\207" [vals attributes class name start end append label nil semantic-tag-make-plist] 7] (template) (using) #[#1# "\306@\307\310\311D\211\n\312	!\313\211\257+\fD\"\207" [vals attributes class name start end append include :inside-ns t semantic-tag-make-plist nil] 7] (nil) enumparts #[#1# "\303\304@@@A\305\306$	\nD\"\207" [vals start end append semantic-parse-region enumsubparts 1] 6] enumsubparts opt-assign #[#1# "\306@\307A@@\310\311D\312\313\f\314\315\316\n	&,D\"\207" [vals attributes default-value type name start append "int" :constant-flag t apply semantic-tag variable :type :default-value end] 10] #[#1# "\302\303C	D\"\207" [start end append nil] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] opt-name (symbol) #[#1# "\302\303C	D\"\207" [start end append #2=""] 4] typesimple struct-or-class opt-class #[#1# "\306\3078@@@\3078@@@B\310\3118@\3118A\312\313$)\3148\315\3168\317A@@F\320\321\305\322\323\f\324@\325A\n&\f-D\"\207" [vals semantic-c-classname attributes parents members type append 2 semantic-parse-region 5 classsubparts 1 4 :template-specifier 3 :parent apply semantic-tag :type :members :superclasses :interfaces name start end] 14] #[#1# "\306\3078@@@\310\3118\312\3138\314\315\316A@@\257\317\320\304\321\f\322\323\n@\324\nA	&\f-D\"\207" [vals attributes parents members type name append 2 nil 4 :template-specifier 3 :prototype t :parent apply semantic-tag :type :members :superclasses :interfaces start end] 14] UNION #[#1# "\306\3078@@\3108\311\312A@@D\313\314\304\315\f\316\317\n@\320\nA	&\f-D\"\207" [vals attributes parents members type name append 2 3 nil :parent apply semantic-tag :type :members :superclasses :interfaces start end] 14] ENUM #[#1# "\306\3078@@\3108\311\312A@@D\313\314\304\315\f\316\317\n@\320\nA	&\f-D\"\207" [vals attributes parents members type name append 2 3 nil :parent apply semantic-tag :type :members :superclasses :interfaces start end] 14] TYPEDEF declmods typeformbase cv-declmods typedef-symbol-list #[#1# "\306\3078@\310\3118C\310\312\313\304\314\f\315\316\n@\317\nA	&\f-D\"\207" [vals attributes parents members type name append 4 nil 2 apply semantic-tag :type :members :superclasses :interfaces start end] 14] typedefname #[#1# "\303@\3048B	\nD\"\207" [vals start end append 2] 4] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] opt-stars opt-bits opt-array #[#1# "\303@A@D	\nD\"\207" [vals start end append] 4] (struct-or-class (STRUCT) (CLASS)) type "\\`[;]\\'" #[#1# "\303@	\nD\"\207" [vals start end append] 4] NAMESPACE #[#1# "\306A@@\3078\310\211\311\312\304\313\f\314\315\n@\316\nA	&\f-D\"\207" [vals attributes parents members type name append 2 nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] #[#1# "\306\307@A@\310\211\311\312\304\313\f\314\315\n@\316\nA	&\f-D\"\207" [vals attributes parents members type name append "unnamed" nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] "\\`[=]\\'" #[#1# "\306A@@\3078@@\310\211\211\311\312\304\313\f\314\315\n@\316\nA	&\f-C\310\317\320D\311\312\304\313\f\314\315\n@\316\nA	&\f-D\"\207" [vals attributes parents members type name append 3 nil apply semantic-tag :type :members :superclasses :interfaces :kind alias start end] 16] using USING usingname #[#1# "\306A@@\307\310A@D\211\n\311	!\312\211\257+\fD\"\207" [vals attributes class name start end append using :type semantic-tag-make-plist nil] 7] #[#1# "\306@@\307\310\211\311\312D\313\314\304\315\f\316\317\n@\320\nA	&\f-D\"\207" [vals attributes parents members type name append "class" nil :prototype t apply semantic-tag :type :members :superclasses :interfaces start end] 14] #[#1# "\306A@@\307\310\211\311\312D\313\314\304\315\f\316\317\n@\320\nA	&\f-D\"\207" [vals attributes parents members type name append "namespace" nil :prototype t apply semantic-tag :type :members :superclasses :interfaces start end] 14] template TEMPLATE template-specifier opt-friend template-definition #[#1# "\303\304\3058A@\"	\nD\"\207" [vals start end append semantic-c-reconstitute-template 3] 4] (opt-friend (FRIEND) nil) #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] "\\`[<]\\'" template-specifier-types "\\`[>]\\'" #[#1# "\303A@	\nD\"\207" [vals start end append] 4] template-var template-specifier-type-list #[#1# "\303@A@B	\nD\"\207" [vals start end append] 4] (nil) #[#1# "\303A@	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] template-type opt-template-equal #[#1# "\303@@@AB	\nD\"\207" [vals start end append] 4] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] number #[#1# "\303@C	\nD\"\207" [vals start end append] 4] opt-ref #[#1# "\303\3048	\nD\"\207" [vals start end append 2] 4] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] SIZEOF #[#1# "\303A@C	\nD\"\207" [vals start end append] 4] #[#1# "\303A@C	\nD\"\207" [vals start end append] 4] #[#1# "\303A@C	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] #[#1# "\306A@\307\310\211\211\311\312\304\313\f\314\315\n@\316\nA	&\f-D\"\207" [vals attributes parents members type name append "class" nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] STRUCT #[#1# "\306A@\307\310\211\211\311\312\304\313\f\314\315\n@\316\nA	&\f-D\"\207" [vals attributes parents members type name append "struct" nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] TYPENAME #[#1# "\306A@\307\310\211\211\311\312\304\313\f\314\315\n@\316\nA	&\f-D\"\207" [vals attributes parents members type name append "class" nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] variablearg-opt-name #[#1# "\306A@@\307\211\211\310\311\312A@8\310\"\313\314\306@\3128\"\235\205 \315\316\317\314\306@\3128\"\"\320\3218@\322\3238@\324\3258@\257\f\326\327\304\330\f\331\332\n@\333\nA	&\f-D\"\207" [vals attributes parents members type name append nil :template-specifier plist-get 2 :constant-flag "const" t :typemodifiers delete :reference 4 :pointer 3 :typevar 5 apply semantic-tag :type :members :superclasses :interfaces start end] 18] #[#1# "\303@	\nD\"\207" [vals start end append] 4] var-or-fun #[#1# "\303@	\nD\"\207" [vals start end append] 4] "\\`[*]\\'" opt-starmod #[#1# "\303\3048@TC	\nD\"\207" [vals start end append 2] 4] #[#1# "\302\303C	D\"\207" [start end append 0] 4] STARMOD #[#1# "\303@@A@B	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] (STARMOD (CONST)) DECLMOD #[#1# "\303@@A@B	\nD\"\207" [vals start end append] 4] #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] (DECLMOD (EXTERN) (STATIC) (CVDECLMOD) (INLINE) (REGISTER) (FRIEND) (TYPENAME) (METADECLMOD) (VIRTUAL)) metadeclmod METADECLMOD #[#1# "\302	D!\207" [start end append] 3] #[#1# "\302	D!\207" [start end append] 3] (CVDECLMOD (CONST) (VOLATILE)) CVDECLMOD #[#1# "\303@@A@B	\nD\"\207" [vals start end append] 4] #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] (METADECLMOD (VIRTUAL) (MUTABLE)) "\\`[&]\\'" #[#1# "\302\303C	D\"\207" [start end append 1] 4] #[#1# "\302\303C	D\"\207" [start end append 0] 4] #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\306A@@\307\211\211\310\311\304\312\f\313\314\n@\315\nA	&\f-D\"\207" [vals attributes parents members type name append nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] #[#1# "\306A@@\307\211\211\310\311\304\312\f\313\314\n@\315\nA	&\f-D\"\207" [vals attributes parents members type name append nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] #[#1# "\306A@@\307\211\211\310\311\304\312\f\313\314\n@\315\nA	&\f-D\"\207" [vals attributes parents members type name append nil apply semantic-tag :type :members :superclasses :interfaces start end] 14] builtintype #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\306@\307\310\211\311A@D\312\313\304\314\f\315\316\n@\317\nA	&\f-D\"\207" [vals attributes parents members type name append "class" nil :template-specifier apply semantic-tag :type :members :superclasses :interfaces start end] 14] namespace-symbol-for-typeformbase #[#1# "\306@@\307\310\211\311A@D\312\313\304\314\f\315\316\n@\317\nA	&\f-D\"\207" [vals attributes parents members type name append "class" nil :template-specifier apply semantic-tag :type :members :superclasses :interfaces start end] 14] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] (signedmod (UNSIGNED) (SIGNED)) builtintype-types (VOID) (CHAR) (WCHAR) SHORT INT #[#1# "\303@\304A@QC	\nD\"\207" [vals start end append " "] 4] (SHORT) (INT) LONG #[#1# "\303@\304A@QC	\nD\"\207" [vals start end append " "] 4] (FLOAT) (DOUBLE) (BOOL) DOUBLE #[#1# "\303@\304A@QC	\nD\"\207" [vals start end append " "] 4] #[#1# "\303@\304A@QC	\nD\"\207" [vals start end append " "] 4] ((LONG)) signedmod #[#1# "\303@@\304A@@QC	\nD\"\207" [vals start end append " "] 4] #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\303@@\304PC	\nD\"\207" [vals start end append " int"] 4] codeblock-var-or-fun var-or-func-decl #[#1# "\303\304\3058@A@#	\nD\"\207" [vals start end append semantic-c-reconstitute-token 4] 5] #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\303\304A@@\305#	\nD\"\207" [vals start end append semantic-c-reconstitute-token nil] 5] #[#1# "\303@	\nD\"\207" [vals start end append] 4] var-decl #[#1# "\303@	\nD\"\207" [vals start end append] 4] opt-destructor functionname opt-under-p arg-list opt-post-fcn-modifiers opt-throw opt-initializers fun-or-proto-end #[#1# "\303\3048\305A@\3068\3078\3108\3118\257@\3128\3138C\3148	\nD&\207" [vals start end append 3 function 2 6 8 7 10 4 9] 9] fun-try-end #[#1# "\303\3048\305A@\3068\307\3108\3118\257@\3128\3138C\3148	\nD&\207" [vals start end append 3 function 2 nil 7 6 9 4 8] 9] varnamelist #[#1# "\303@\304D	\nD\"\207" [vals start end append variable] 4] UNDERP #[#1# "\302\303C	D\"\207" [start end append nil] 4] UNDERUNDERP #[#1# "\302\303C	D\"\207" [start end append nil] 4] (nil) (opt-initializers (punctuation "\\`[:]\\'" namespace-symbol semantic-list opt-initializers) (punctuation "\\`[,]\\'" namespace-symbol semantic-list opt-initializers) nil) post-fcn-modifiers #[#1# "\303@@A@B	\nD\"\207" [vals start end append] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] (post-fcn-modifiers (REENTRANT) (CONST)) THROW #[(vals start end) "A@@A@A\306\307\211\310\311\f\n\206 \312	$\"A\242-\207" [vals length depth nonterm end start throw-exception-list nil semantic-parse-stream semantic-lex 1] 6] (nil) throw-exception-list #[#1# "\303@@\3048B	\nD\"\207" [vals start end append 2] 4] ")" #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] "(" #[#1# "\303A@	\nD\"\207" [vals start end append] 4] #[#1# "\302	D!\207" [start end append] 3] #[#1# "\303A@C	\nD\"\207" [vals start end append] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] "\\[.*\\]$" #[#1# "\303\304A@@BC	\nD\"\207" [vals start end append 1] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] expression #[#1# "\303A@C	\nD\"\207" [vals start end append] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] (opt-restrict (symbol "\\<\\(__\\)?restrict\\>") nil) varname opt-restrict #[#1# "\303\3048@\3058\3068	\nD%\207" [vals start end append 2 3 4] 7] variablearg #[#1# "\306\211\3078\3108\"CA@\311\312\313\306@\3148\"\235\205 \315\316\317\313\306@\3148\"\"\320\3218@\257\322\323\f\324\325\326\n	&,D\"\207" [vals attributes default-value type name start append 4 5 nil :constant-flag "const" 2 t :typemodifiers delete :reference 3 apply semantic-tag variable :type :default-value end] 13] #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\306@@@A\307\310\211\311\312\f\n\206 \313	$\"A\242-@A@D\fD\"\207" [vals length depth nonterm end start append function-pointer nil semantic-parse-stream semantic-lex 1] 7] #[#1# "\303\304C@\305\211\211E	\nD$\207" [vals start end append #2# nil] 6] (varname-opt-initializer (semantic-list) (opt-assign) nil) varname-opt-initializer #[#1# "\303\211A@\3048\"\3058B	\nD\"\207" [vals start end append 2 4] 5] #[#1# "\303\211A@\3048\"C	\nD\"\207" [vals start end append 2] 5] #[#1# "\303@\304\3058@QC	\nD\"\207" [vals start end append "::" 4] 5] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] #[#1# "\303@\304\3058@QC	\nD\"\207" [vals start end append "::" 4] 5] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] namespace-opt-class #[#1# "\303@\304\3058@QC	\nD\"\207" [vals start end append "::" 3] 5] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] #[#1# "\303@	\nD\"\207" [vals start end append] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] "\\`[~]\\'" #[#1# "\302\303C	D\"\207" [start end append t] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] "^(" knr-arguments #[#1# "\303A@	\nD\"\207" [vals start end append] 4] #[#1# "\303\304@@@A\305\306$	\nD\"\207" [vals start end append semantic-parse-region arg-sub-list 1] 6] "^(void)$" #[#1# "\302	D!\207" [start end append] 3] knr-varnamelist #[#1# "\303@\3048B	\nD\"\207" [vals start end append 2] 4] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] knr-one-variable-decl #[#1# "\306\3078\237A@\310\311\312\306\3138!\235\205 \314\315\316\312\3138\"F\317\320\f\321\322\323\n	&,D\"\207" [vals attributes default-value type name start append 3 nil :constant-flag "const" 2 t :typemodifiers delete apply semantic-tag variable :type :default-value end] 11] #[#1# "\303\211\304@!\3058\"	\nD\"\207" [vals start end append semantic-expand-c-tag 2] 5] #[#1# "\303\304@!	\nD\"\207" [vals start end append semantic-expand-c-tag] 4] arg-sub-list #[#1# "\303@	\nD\"\207" [vals start end append] 4] "\\`[.]\\'" #[#1# "\306\307\310\311\211\312\313\314\315\n\316	&,\fD\"\207" [attributes default-value type name start end append "..." "vararg" nil apply semantic-tag variable :type :default-value] 10] #[#1# "\302\303C	D\"\207" [start end append nil] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] operatorsym #[#1# "\302\303C	D\"\207" [start end append "<<="] 4] #[#1# "\302\303C	D\"\207" [start end append ">>="] 4] #[#1# "\302\303C	D\"\207" [start end append "<<"] 4] #[#1# "\302\303C	D\"\207" [start end append ">>"] 4] #[#1# "\302\303C	D\"\207" [start end append "=="] 4] #[#1# "\302\303C	D\"\207" [start end append "<="] 4] #[#1# "\302\303C	D\"\207" [start end append ">="] 4] "\\`[!]\\'" #[#1# "\302\303C	D\"\207" [start end append "!="] 4] "\\`[+]\\'" #[#1# "\302\303C	D\"\207" [start end append "+="] 4] "\\`[-]\\'" #[#1# "\302\303C	D\"\207" [start end append "-="] 4] #[#1# "\302\303C	D\"\207" [start end append "*="] 4] "\\`[/]\\'" #[#1# "\302\303C	D\"\207" [start end append "/="] 4] "\\`[%]\\'" #[#1# "\302\303C	D\"\207" [start end append "%="] 4] #[#1# "\302\303C	D\"\207" [start end append "&="] 4] "\\`[|]\\'" #[#1# "\302\303C	D\"\207" [start end append "|="] 4] #[#1# "\302\303C	D\"\207" [start end append "->*"] 4] #[#1# "\302\303C	D\"\207" [start end append "->"] 4] "()" #[#1# "\302\303C	D\"\207" [start end append "()"] 4] "\\[\\]" #[#1# "\302\303C	D\"\207" [start end append "[]"] 4] (punctuation "\\`[<]\\'") (punctuation "\\`[>]\\'") (punctuation "\\`[*]\\'") #[#1# "\302\303C	D\"\207" [start end append "++"] 4] (punctuation "\\`[+]\\'") #[#1# "\302\303C	D\"\207" [start end append "--"] 4] (punctuation "\\`[-]\\'") #[#1# "\302\303C	D\"\207" [start end append "&&"] 4] (punctuation "\\`[&]\\'") #[#1# "\302\303C	D\"\207" [start end append "||"] 4] (punctuation "\\`[|]\\'") (punctuation "\\`[/]\\'") (punctuation "\\`[=]\\'") (punctuation "\\`[!]\\'") (punctuation "\\`[~]\\'") (punctuation "\\`[%]\\'") (punctuation "\\`[,]\\'") "\\`\\^\\'" #[#1# "\302\303C	D\"\207" [start end append "^="] 4] ((punctuation "\\`\\^\\'")) OPERATOR #[#1# "\303A@	\nD\"\207" [vals start end append] 4] #[(vals start end) "@@@A\306\307\211\310\311\f\n\206 \312	$\"A\242-\207" [vals length depth nonterm end start function-pointer nil semantic-parse-stream semantic-lex 1] 6] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] function-pointer #[#1# "\303\304\3058@PC	\nD\"\207" [vals start end append "*" 2] 4] #[#1# "\303A@C	\nD\"\207" [vals start end append] 4] #[#1# "\302\303C	D\"\207" [start end append t] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] "^0$" #[#1# "\302\303C	D\"\207" [start end append :pure-virtual-flag] 4] #[#1# "\302\303C	D\"\207" [start end append nil] 4] TRY "^{" fun-try-several-catches #[#1# "\302\303C	D\"\207" [start end append nil] 4] CATCH #[#1# "\302	D!\207" [start end append] 3] #[#1# "\302	D!\207" [start end append] 3] #[#1# "\302	D!\207" [start end append] 3] type-cast #[(vals start end) "@@@A\306\307\211\310\311\f\n\206 \312	$\"A\242-\207" [vals length depth nonterm end start type-cast-list nil semantic-parse-stream semantic-lex 1] 6] (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 #[#1# "\303@A@@PC	\nD\"\207" [vals start end append] 4] #[#1# "\303@C	\nD\"\207" [vals start end append] 4] (expr-start (punctuation "\\`[-]\\'") (punctuation "\\`[+]\\'") (punctuation "\\`[*]\\'") (punctuation "\\`[&]\\'")) (expr-binop (punctuation "\\`[-]\\'") (punctuation "\\`[+]\\'") (punctuation "\\`[*]\\'") (punctuation "\\`[/]\\'") (punctuation "\\`[&]\\'" punctuation "\\`[&]\\'") (punctuation "\\`[&]\\'") (punctuation "\\`[|]\\'" punctuation "\\`[|]\\'") (punctuation "\\`[|]\\'") (punctuation "\\`[%]\\'")) unaryexpression "\\`[?]\\'" #[#1# "\302	D	D\"\207" [start end append] 4] expr-binop #[#1# "\302	D	D\"\207" [start end append] 4] #[#1# "\302	D	D\"\207" [start end append] 4] ((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) (#$ . 5986))
#@28 Setup the Semantic Parser.
(defalias 'semantic-c-by--install-parser #[nil "\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 (#$ . 35497)])
(provide 'semantic/bovine/c-by)
