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



(byte-code "\300\301\302\303#\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\207" [require python nil t semantic/wisent semantic/wisent/python-wy semantic/find semantic/dep semantic/ctxt semantic/format] 4)
#@68 Evaluate some Python code that determines the system include path.
(defalias 'semantic-python-get-system-include-path #[0 "\300\301\302\303\304\305\306!\307\310#\"\"\207" [delq nil mapcar #[257 "\300!\205 \211\207" [file-directory-p] 3 "\n\n(fn DIR)"] split-string python-shell-internal-send-string "import sys;print ('\\n'.join(sys.path))" "\n" t] 8 (#$ . 322)])
(byte-code "\304\300\305\306\307DD\310\311\312\311\313\314\315\316\317&\210\320\321BC\322\323#\210\324\325\326\"\323\"\266\327\321\323\330!\331\204E 	\211\262\204E \n\262\205C \332\"\262\203p \211\204p \303N\203_ \332\303N\"\211\262\204E \211\333N\206i \211\334N\262\262\202E \266\203\335\336#\210\327\321\323\300#\207" [semantic-python-dependency-system-include-path mode-local-active-mode major-mode mode-local-symbol-table custom-declare-variable funcall function #[0 "\301\302!\205 ?\205 \303 \207" [noninteractive featurep python semantic-python-get-system-include-path] 2 ""] "The system include path used by Python language." :group python semantic :type (repeat (directory :tag "Directory")) :set #[514 "\300\"\210\211\301\302BC\303\304#\210\305\306\307\"\304\"\266\310\311!\205\" \305\311\304\"\207" [set-default mode-local-bind semantic-dependency-system-include-path #1=(mode-variable-flag t) python-mode mode-local-map-mode-buffers make-closure #[0 "\302\301!\210\300\211\207" [V0 semantic-dependency-system-include-path make-local-variable] 2] fboundp semantic-decoration-unparsed-include-do-reset] 7 "\n\n(fn SYM VAL)"] mode-local-bind semantic-dependency-system-include-path #1# python-mode mode-local-map-mode-buffers make-closure #[0 "\302\301!\210\300\211\207" [V0 semantic-dependency-system-include-path make-local-variable] 2] put symbol-name nil intern-soft mode-local-parent derived-mode-parent variable-documentation "System path to search for include files."] 12)
#@47 Regexp matching beginning of a Python string.
(defconst wisent-python-string-start-re "[uU]?[rR]?['\"]" (#$ . 2213))
#@43 Regexp matching a complete Python string.
(defconst wisent-python-string-re "[Uu]?[Rr]?\\(?:'''\\(?:\\\\'\\|[^']\\|'\\{1,2\\}[^']\\)*'''\\|'\\(?:\\\\'\\|[^']\\)*'\\|\"\"\"\\(?:\\\\\"\\|[^\"]\\|\"\\{1,2\\}[^\"]\\)*\"\"\"\\|\"\\(?:\\\\\"\\|[^\"]\\)*\"\\)" (#$ . 2336))
#@67 Non-nil when expanding a paren block for Python lexical analyzer.
(defvar wisent-python-EXPANDING-block nil (#$ . 2609))
#@134 Return non-nil if implicit line joining is active.
That is, if inside an expression in parentheses, square brackets or
curly braces.
(defalias 'wisent-python-implicit-line-joining-p #[0 "\207" [wisent-python-EXPANDING-block] 1 (#$ . 2737)])
#@54 Move point at the end of the Python string at point.
(defalias 'wisent-python-forward-string #[0 "\301!\203 \302\224\302\225\211Z\303U\203 \301\304!\203 \305\306!\210\211b\207\305\306!\207" [wisent-python-string-re looking-at 0 2 "\"\\{3\\}\\|'\\{3\\}" error "Unterminated syntax"] 4 (#$ . 2985)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-python-forward-string speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@278 Move point to the end of the balanced expression at point.
Here “balanced expression” means anything matched by Emacs's
open/close parenthesis syntax classes.  We can't use forward-sexp
for this because that Emacs built-in can't parse Python's
triple-quoted string syntax.
(defalias 'wisent-python-forward-balanced-expression #[0 "\302`!A\303u\210m\204i `f=\204i \304!\203B \304	!\203; \305\224\305\225\211Z\306U\2034 \304\307!\2034 \310\311!\210\211b\266\202 \310\311!\210\202 \304\312!\203N \313\210\202 \304\314!\203Z \315 \210\202 \316\317!\305U\203 \310\320!\210\202 \303u\207" [wisent-python-string-start-re wisent-python-string-re syntax-after 1 looking-at 0 2 "\"\\{3\\}\\|'\\{3\\}" error "Unterminated syntax" "\\s<" nil "\\s(" wisent-python-forward-balanced-expression skip-syntax-forward "-w_.$\\>" "Can't figure out how to go forward from here"] 5 (#$ . 3449)])
#@385 Move point to the beginning of the next logical line.
Usually this is simply the next physical line unless strings,
implicit/explicit line continuation, blank lines, or comment lines are
encountered.  This function skips over such items so that the point is
at the beginning of the next logical line.  If the current logical
line ends at the end of the buffer, leave the point there.
(defalias 'wisent-python-forward-line #[0 "l\204i `\302!\2035 \302	!\203. \303\224\303\225\211Z\304U\203' \302\305!\203' \306\307!\210\211b\266\202] \306\307!\210\202] \302\310!\203A \311\210\202] \302\312!\203M \313 \210\202] \302\314!\203Y \315y\210\202] \316\317!\210`U\203  \306\320!\210\202  \321d!\210m\206s \322 \207" [wisent-python-string-start-re wisent-python-string-re looking-at 0 2 "\"\\{3\\}\\|'\\{3\\}" error "Unterminated syntax" "\\s<" nil "\\s(" wisent-python-forward-balanced-expression "\\s\\" 1 skip-syntax-forward "-w_.$)" "python-forward-line endless loop detected" forward-comment beginning-of-line] 5 (#$ . 4345)])
#@165 Move point to the next logical line, skipping indented lines.
That is the next line whose indentation is less than or equal to
the indentation of the current line.
(defalias 'wisent-python-forward-line-skip-indented #[0 "\300 \301 \210m?\205 \300 V\205 \202 \207" [current-indentation wisent-python-forward-line] 3 (#$ . 5380)])
#@45 Move point to the end of the current block.
(defalias 'wisent-python-end-of-block #[0 "\300 m\204 \300 Y\203 \301 \210\202 \302d[!\210n\206 \303y\207" [current-indentation wisent-python-forward-line-skip-indented forward-comment 1] 3 (#$ . 5719)])
#@67 Detect and create Python indentation tokens at beginning of line.
(defconst wisent-python-lex-beginning-of-line '((and (bolp) (not (wisent-python-implicit-line-joining-p)) (let ((last-indent (car wisent-python-indent-stack)) (last-pos (point)) (curr-indent (current-indentation))) (skip-syntax-forward "-") (cond ((or (eolp) (looking-at semantic-lex-comment-regex)) (forward-comment (point-max)) (or (eobp) (beginning-of-line)) (setq semantic-lex-end-point (point)) t) ((= curr-indent last-indent) (setq semantic-lex-end-point (point)) nil) ((> curr-indent last-indent) (if (or (not semantic-lex-maximum-depth) (< semantic-lex-current-depth semantic-lex-maximum-depth)) (progn (setq semantic-lex-current-depth (1+ semantic-lex-current-depth)) (push curr-indent wisent-python-indent-stack) (semantic-lex-push-token (semantic-lex-token 'INDENT last-pos (point)))) (semantic-lex-push-token (semantic-lex-token 'INDENT_BLOCK (progn (beginning-of-line) (point)) (semantic-lex-unterminated-syntax-protection 'INDENT_BLOCK (wisent-python-end-of-block) (point))))) t) ((progn (while (< curr-indent last-indent) (pop wisent-python-indent-stack) (setq semantic-lex-current-depth (1- semantic-lex-current-depth) last-indent (car wisent-python-indent-stack)) (semantic-lex-push-token (semantic-lex-token 'DEDENT last-pos (point)))) (= last-pos (point))) nil))))) (#$ . 5978))
#@67 Detect and create Python indentation tokens at beginning of line.
(defalias 'wisent-python-lex-beginning-of-line #[0 "\306``dB\307n\203\310 \204@`\311 \312\313!\210l\204* \314!\203< \315d!\210m\2045 \316 \210`\266\202\211U\203I `\266\202\211V\203\340 	\203Y \n	W\203\211 \nT\211B\317`BBB\211@\211\211A@\247\204| \211AA\262\202\200 \211A\262A\262\266\202\320\316 \210`\203\237 \203\237 \321 \210`\202\274 \3221\253 \321 \210`0\202\274 \210\320@A#b\210`\211\262BBB\211@\211\211A@\247\204\323 \211AA\262\202\327 \211A\262A\262\266\202\211W\203A\nS@\262\323`BBB\211@\211\211A@\247\204\211AA\262\202\211A\262A\262\202\340 \266-\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 wisent-python-implicit-line-joining-p current-indentation skip-syntax-forward "-" looking-at forward-comment beginning-of-line INDENT INDENT_BLOCK wisent-python-end-of-block (error) DEDENT wisent-python-indent-stack semantic-lex-comment-regex debug-on-error semantic-lex-debug-analyzers semantic-lex-unterminated-syntax-end-function] 11 (#$ . 7348)])
#@141 Detect and create Python newline tokens.
Just skip the newline character if the following line is an implicit
continuation of current line.
(defconst wisent-python-lex-end-of-line '((looking-at "\\(\n\\|\\s>\\)") (if (wisent-python-implicit-line-joining-p) (setq semantic-lex-end-point (match-end 0)) (semantic-lex-push-token (semantic-lex-token 'NEWLINE (point) (match-end 0))))) (#$ . 8575))
#@141 Detect and create Python newline tokens.
Just skip the newline character if the following line is an implicit
continuation of current line.
(defalias 'wisent-python-lex-end-of-line #[0 "\306``dB\307\310\311!\203@ \312 \203 \307\225\202@ \313`\307\225BBB\211@\211\211A@\247\2048 \211AA\262\202< \211A\262A\262-\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 looking-at "\\(\n\\|\\s>\\)" wisent-python-implicit-line-joining-p NEWLINE] 6 (#$ . 8976)])
#@41 Detect and create python string tokens.
(defconst wisent-python-lex-string '((looking-at wisent-python-string-start-re) (semantic-lex-push-token (semantic-lex-token 'STRING_LITERAL (point) (semantic-lex-unterminated-syntax-protection 'STRING_LITERAL (wisent-python-forward-string) (point))))) (#$ . 9562))
#@41 Detect and create python string tokens.
(defalias 'wisent-python-lex-string #[0 "\306``dB\307\310!\203\254 \311`\203K \203K \310!\203C \307\224\307\225\211Z\312U\203< \310\313!\203< \314\315!\210\211b\266\202G \314\315!\210`\202\215 \3161| \310!\203s \307\224\307\225\211Z\312U\203l \310\313!\203l \314\315!\210\211b\266\202w \314\315!\210`0\202\215 \210\311@A#b\210`\211\262BBB\211@\211\211A@\247\204\244 \211AA\262\202\250 \211A\262A\262-\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 looking-at STRING_LITERAL 2 "\"\\{3\\}\\|'\\{3\\}" error "Unterminated syntax" (error) wisent-python-string-start-re debug-on-error semantic-lex-debug-analyzers wisent-python-string-re semantic-lex-unterminated-syntax-end-function] 8 (#$ . 9874)])
#@179 Detect and skip over backslash (explicit line joining) tokens.
A backslash must be the last token of a physical line, it is illegal
elsewhere on a line outside a string literal.
(defconst wisent-python-lex-ignore-backslash '((looking-at "\\s\\\\s-*$") (forward-line) (skip-syntax-forward "-") (setq semantic-lex-end-point (point))) (#$ . 10767))
#@179 Detect and skip over backslash (explicit line joining) tokens.
A backslash must be the last token of a physical line, it is illegal
elsewhere on a line outside a string literal.
(defalias 'wisent-python-lex-ignore-backslash #[0 "\306``dB\307\310\311!\203 \306y\210\312\313!\210`-\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 looking-at "\\s\\\\s-*$" skip-syntax-forward "-"] 5 (#$ . 11120)])
#@115 Lexical Analyzer for Python code.
See `semantic-lex' for more information.

(fn START END &optional DEPTH LENGTH)
(defalias 'wisent-python-lexer #[1026 "\306\307\310#\210`\306\211\211\311\206 @BA\306BdV\203. \312\313d#\210\314 p\315\316#\216\317C!\210b\210`W\203\203R 	GX\203n\203n\320 \204nD@`\321 \322\323!\210l\204p \324E!\203\202 \325d!\210m\204{ \326 \210`\266\202\242\211U\203\217 `\266\202n\211V\203*@\203\241 \f@W\203\321 \fT\211DBD\327`BB	B\211@\211\211A@\247\204\304 \211AA\262\202\310 \211A\262A\262\266\202\242\330\326 \210`F\203\347 G\203\347 \331 \210`\202\3321\363 \331 \210`0\202\210\330HA@AA#b\210`\211\262BB	B\211@\211\211A@\247\204\211AA\262\202!\211A\262A\262\266\202\242\211W\203bDAD\fSD@\262\333`BB	B\211@\211\211A@\247\204W\211AA\262\202[\211A\262A\262\202*`U\205i\306\266\203\204\242\324\334!\203\245\320 \203\311\225\202\242\335`\311\225BB	B\211@\211\211A@\247\204\232\211AA\262\202\236\211A\262A\262\202\242\324I!\203J\336`F\203\344G\203\344\324J!\203\334\311\224\311\225\211Z\337U\203\325\324\340!\203\325\312\341!\210\211b\266\202\340\312\341!\210`\202(\3421\324J!\203\f\311\224\311\225\211Z\337U\203\324\340!\203\312\341!\210\211b\266\202\312\341!\210`0\202(\210\336HA@AA#b\210`\211\262BB	B\211@\211\211A@\247\204?\211AA\262\202C\211A\262A\262\202\242\324K!\203x\343\311\224\311\225BB	B\211@\211\211A@\247\204m\211AA\262\202q\211A\262A\262\202\242\324\344!\203\315\345\311!\211\346L!\205\223\211;\205\223\347L\"\262\211\262\205\235\211J\262\211\205\310\211\311\224\311\225BB	B\211@\211\211A@\247\204\277\211AA\262\202\303\211A\262A\262\211\262\204\242\324\344!\203\372\350\311\224\311\225BB	B\211@\211\211A@\247\204\357\211AA\262\202\363\211A\262A\262\202\242\324\351!\203\345\345\311!\352\306\353@\"\211\262\203\253@\203\f@W\203K\fT\211A@\311\224\311\225BB	B\211@\211\211A@\247\204=\211AA\262\202A\211A\262A\262\211\266\203\202\342\3378\311\224\212F\203cG\203c\354\355!\210`\202\205\3561p\354\355!\210`0\202\205\210\3378HA@AA#b\210`\211\262)BB	B\211@\211\211A@\247\204\235\211AA\262\202\241\211A\262A\262\211\266\203\202\342\353A\"\211\262\205\340\fS\211A@\311\224\311\225BB	B\211@\211\211A@\247\204\327\211AA\262\202\333\211A\262A\262\211\266\203\204\242\324\357!\203N\345\311!\311\224\311\225\211Z\360\306\311V\203\361\"\211\262\204S\262\311O\262\202\367\211\203\"\211@\262\\\262\211\206'\362BB	B\211@\211\211A@\247\204@\211AA\262\202D\211A\262A\262\211\266\206\204\242\324\363!\203`\306y\210\322\323!\210`\202\242\324\364!\203l\311\225\202\242\324E!\203\236`\325\355!\210`=\203\207\322\365\366 \"\210\202\216n\203\216\367u\210`=\203\230\312\370!\210`\210\202\242\312\371!\210=\203\257\312\372	@#\210\262b\210M\203\327\373 \204\321r\374N!q\210\212Nb\210\375 *\203\327\376M\377\"\210	@O\205\306C\315\201P \"\216\203\363\211\201Q !\240\210\201R \201S \201T \f#!)\262\266\202@ )\266\n\203C\n\211A\242\211\211\2030\201U \201V @A@#\210\n\211A\242\262\202@HA@AA#b\210`\211\266b\210	\237.\207" [semantic-lex-block-streams semantic-lex-token-stream semantic-lex-block-stack semantic-lex-end-point semantic-lex-current-depth semantic-lex-depth nil run-hook-with-args semantic-lex-reset-functions 0 error "wisent-python-lexer: end (%d) > point-max (%d)" syntax-table make-closure #[0 "r\301q\210\302\300!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table wisent-python-implicit-line-joining-p current-indentation skip-syntax-forward "-" looking-at forward-comment beginning-of-line INDENT INDENT_BLOCK wisent-python-end-of-block (error) DEDENT "\\(\n\\|\\s>\\)" NEWLINE STRING_LITERAL 2 "\"\\{3\\}\\|'\\{3\\}" "Unterminated syntax" (error) NUMBER_LITERAL "\\(\\sw\\|\\s_\\)+" match-string obarrayp intern-soft NAME "\\s(\\|\\s)" ((("(" LPAREN PAREN_BLOCK) ("{" LBRACE BRACE_BLOCK) ("[" LBRACK BRACK_BLOCK)) (")" RPAREN) ("}" RBRACE) ("]" RBRACK)) assoc forward-list 1 (error) "\\(\\s.\\|\\s$\\|\\s'\\)+" ((FOLLOWS . "->") (AT . "@") (BACKQUOTE . "`") (ASSIGN . "=") (COMMA . ",") (SEMICOLON . ";") (COLON . ":") (BAR . "|") (TILDE . "~") (PERIOD . ".") (MINUS . "-") (PLUS . "+") (MOD . "%") (DIV . "/") (MULT . "*") (AMP . "&") (GT . ">") (LT . "<") (HAT . "^") (NE . "!=") (LTGT . "<>") (HATEQ . "^=") (OREQ . "|=") (AMPEQ . "&=") (MODEQ . "%=") (DIVEQ . "/=") (MULTEQ . "*=") (MINUSEQ . "-=") (PLUSEQ . "+=") (LE . "<=") (GE . ">=") (EQ . "==") (EXPONENT . "**") (GTGT . ">>") (LTLT . "<<") (DIVDIV . "//") (DIVDIVEQ . "//=") (EXPEQ . "**=") (GTGTEQ . ">>=") (LTLTEQ . "<<=")) rassoc punctuation "\\s\\\\s-*$" "\\s-+" "-.'" point-at-eol -1 "Strange comment syntax prevents lexical analysis" "Unmatched Text during Lexical Analysis" "wisent-python-lexer: endless loop at %d, after %S" input-pending-p marker-buffer accept-process-output throw lex semantic-lex-maximum-depth semantic-lex-analysis-bounds parse-sexp-lookup-properties semantic-lex-syntax-table wisent-python-indent-stack semantic-lex-comment-regex debug-on-error semantic-lex-debug-analyzers semantic-lex-unterminated-syntax-end-function wisent-python-string-start-re wisent-python-string-re semantic-lex-number-expression semantic-flex-keywords-obarray semantic-current-input-throw-symbol semantic--on-input-start-marker semantic-lex-debug #[0 "\300\242\205	 \301\300\242!\207" [V0 delete-overlay] 2] semantic-lex-highlight-token read-event format "%S :: Depth: %d :: SPC - continue" message "wisent-python-lexer: `%s' block from %S is unterminated"] 19 (#$ . 11646)])
#@158 Move a docstring from TAG's members into its :documentation attribute.
Set attributes for constructors, special, private and static methods.

(fn TAG SUITE)
(defalias 'wisent-python-reconstitute-function-tag #[514 "\211@\302!\203( \303\304!\211AA\262\211:\203% \211\305\306@#!\240\210\266\210\211\307\310\3118\262\"\266\203G\312V\203s \211\307\310\3118\262\"\266\203@\211@\262\313\230\203s \314\315\211AA\262\211:\203p \211\305\306@#!\240\210\266\211@\262\316\230\203\274 \317\320\211AA\262\211:\203\230 \211\305\306@#!\240\210\266\321\211AA\262\211:\203\266 \211\305\306@#!\240\210\266\202\322!\203\343 \323\320\211AA\262\211:\203\335 \211\305\306@#!\240\210\266\202\324!\203\325\326\211AA\262\211:\203\211\305\306@#!\240\210\266\327\330\310\3118\262\"\266\202!\331\2035@\211@\262\332\230\203.@B\262A\262\202\211\237\266\202)\203i\333\334\333\310\3118\262\"\266\202B\211AA\262\211:\203f\211\305\306@#!\240\210\266\207" [semantic-case-fold case-fold-search semantic-python-docstring-p :documentation semantic-python-extract-docstring semantic-tag-make-plist plist-put :arguments plist-get 2 0 "self" :parent "dummy" "__init__" :constructor-flag t :suite semantic-python-special-p :special-flag semantic-python-private-p :protection "private" semantic-something-to-tag-table :decorators nil "staticmethod" :typemodifiers "static"] 13 (#$ . 17351)])
#@82 Move a docstring from TAG's members into its :documentation attribute.

(fn TAG)
(defalias 'wisent-python-reconstitute-class-tag #[257 "\211\211\300\301\3028\262\"\266\203@\303!\203a \300\211\300\301\3028\262\"\266\203A\211AA\262\211:\203> \211\304\305@#!\240\210\266\306\307!\211AA\262\211:\203^ \211\304\305@#!\240\210\266\210\211\211\300\301\3028\262\"\266\203\211\2030\211@\211\211\310\301\3028\262\"\266\203\203)\211\211\311\301\3028\262\"\266\203@\211@\262\312\301\3028\262\"\266\202\211\203'\211@\313\"\203 \211\211@\262\314\315O\211\206\306 \211@\262\211A@\262\316\3028\262!\316\3178\262!\3208\262\257\266\202\300\301\3028\262\"\266\202\321!\203\322\323\211AA\262\211:\203\211\304\305@#!\240\210\266\324!C\241\266A\266\202\202\247 \266A\266\202\202p \210\207" [:members plist-get 2 semantic-python-docstring-p semantic-tag-make-plist plist-put :documentation semantic-python-extract-docstring :constructor-flag :arguments :suite semantic-python-instance-variable-p 5 nil copy-sequence 3 4 semantic-python-private-p :protection "private" last] 18 (#$ . 18828)])
#@200 Expand compound declarations found in TAG into separate tags.
TAG contains compound declaration if the NAME part of the tag is
a list.  In python, this can happen with `import' statements.

(fn TAG)
(defalias 'semantic-python-expand-tag #[257 "\211\211A@\262\211@\262\300\301=\205Z <\205Z \211\203T \211@\211\206) \211@\262\211A@\262\302\3038\262!\302\3048\262!\3058\262\257\266\202B\262A\266\202\202 \210\211\237\211\262\207" [nil include copy-sequence 2 3 4] 15 (#$ . 20002)])
#@419 Lexically analyze Python code in current buffer.
See the function `semantic-lex' for the meaning of the START, END,
DEPTH and LENGTH arguments.
This function calls `wisent-python-lexer' to actually perform the
lexical analysis, then emits the necessary Python DEDENT tokens from
what remains in the `wisent-python-indent-stack'.
Override `semantic-lex' in `python-mode' buffers.

(fn START END &optional DEPTH LENGTH)
(defalias 'semantic-lex-python-mode #[1026 "\303C\304$\305\211A\242\303V\203: \306\211BB	B\211@\211\211A@\247\204/ \211AA\262\2023 \211A\262A\262\202 \211	\237\244*\207" [wisent-python-indent-stack semantic-lex-token-stream semantic-lex-end-point 0 wisent-python-lexer nil DEDENT] 10 (#$ . 20515)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-lex-python-mode definition-name semantic-lex mode-local-bind ((semantic-lex . semantic-lex-python-mode)) (override-flag t) python-mode] 4)
#@173 Get the local variables based on point's context.
To be implemented for Python!  For now just return nil.
Override `semantic-get-local-variables' in `python-mode' buffers.
(defalias 'semantic-get-local-variables-python-mode #[0 "\300\207" [nil] 1 (#$ . 21463)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-get-local-variables-python-mode definition-name semantic-get-local-variables mode-local-bind ((semantic-get-local-variables . semantic-get-local-variables-python-mode)) (override-flag t) python-mode] 4)
#@128 Return a suitable path for (some) Python imports.
Override `semantic-tag-include-filename' in `python-mode' buffers.

(fn TAG)
(defalias 'semantic-tag-include-filename-python-mode #[257 "\211\211@\262\300\301\302\303\"\304#\305P\207" [mapconcat identity split-string "\\." "/" ".py"] 7 (#$ . 22005)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-tag-include-filename-python-mode definition-name semantic-tag-include-filename mode-local-bind ((semantic-tag-include-filename . semantic-tag-include-filename-python-mode)) (override-flag t) python-mode] 4)
#@334 Return the current function call the cursor is in at POINT.
The function returned is the one accepting the arguments that
the cursor is currently in.  It will not return function symbol if the
cursor is on the text representing that function.
Override `semantic-ctxt-current-function' in `python-mode' buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-current-function-python-mode #[256 "\300\207" [nil] 2 (#$ . 22592)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-current-function-python-mode definition-name semantic-ctxt-current-function mode-local-bind ((semantic-ctxt-current-function . semantic-ctxt-current-function-python-mode)) (override-flag t) python-mode] 4)
#@243 Return the current assignment near the cursor at POINT.
Return a list as per `semantic-ctxt-current-symbol'.
Return nil if there is nothing relevant.
Override `semantic-ctxt-current-assignment' in `python-mode' buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-current-assignment-python-mode #[256 "\300\207" [nil] 2 (#$ . 23307)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-current-assignment-python-mode definition-name semantic-ctxt-current-assignment mode-local-bind ((semantic-ctxt-current-assignment . semantic-ctxt-current-assignment-python-mode)) (override-flag t) python-mode] 4)
#@193 Format an abbreviated tag for python.
Shortens `code' tags, but passes through for others.
Override `semantic-format-tag-abbreviate' in `python-mode' buffers.

(fn TAG &optional PARENT COLOR)
(defalias 'semantic-format-tag-abbreviate-python-mode #[769 "\300\211A@\262=\266\202\203# \211@\262\301\302\"\203\" \211\303\211\224O\262\207\304#\207" [code string-match "\n" 0 semantic-format-tag-abbreviate-default] 7 (#$ . 23941)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-format-tag-abbreviate-python-mode definition-name semantic-format-tag-abbreviate mode-local-bind ((semantic-format-tag-abbreviate . semantic-format-tag-abbreviate-python-mode)) (override-flag t) python-mode] 4)
#@25 Setup buffer for parse.
(defalias 'wisent-python-default-setup #[0 "\306 \210\307\300!\210\310	\204 \307\301!\210\311\312\313\314\315\316\317\211\207" [parse-sexp-ignore-comments comment-start-skip semantic-type-relation-separator-character semantic-command-separation-character semantic-tag-expand-function imenu-create-index-function wisent-python-wy--install-parser make-local-variable t "#+\\s-*" (".") ";" semantic-python-expand-tag semantic-create-imenu-index ((variable . "Variables") (function . "Methods")) ((type . "Classes") (variable . "Variables") (function . "Functions") (include . "Imports") (package . "Package") (code . "Code")) semantic-symbol->name-assoc-list-for-type-parts semantic-symbol->name-assoc-list] 2 (#$ . 24666)])
#@92 Return non-nil if the name of TAG is a special identifier of
the form __NAME__. 

(fn TAG)
(defalias 'semantic-python-special-p #[257 "\300\301\211@\262\"\207" [string-match "\\`__\\s_+__\\'"] 5 (#$ . 25429)])
#@93 Return non-nil if the name of TAG follows the convention _NAME
for private names.

(fn TAG)
(defalias 'semantic-python-private-p #[257 "\300\301\211@\262\"\207" [string-match "\\`_\\s_*\\'"] 5 (#$ . 25647)])
#@137 Return non-nil if TAG is an instance variable of the instance
SELF or the instance name "self" if SELF is nil.

(fn TAG &optional SELF)
(defalias 'semantic-python-instance-variable-p #[513 "\300\211A@\262=\266\202\2051 \211@\262\301\302\303\304\206 \305\306BBB!\"\205/ \307\310\311\312O\"?\262\207" [variable string-match rx-to-string seq string-start "self" (".") string-search "." 5 nil] 9 (#$ . 25864)])
#@70 Return non-nil, when TAG is a Python documentation string.

(fn TAG)
(defalias 'semantic-python-docstring-p #[257 "\211\211A@\262\211@\262\300=\205 \301\302\"\207" [code string-match "\\`\"\"\"[^z-a]*\"\"\"\\'"] 6 (#$ . 26288)])
#@68 Return the Python documentation string contained in TAG.

(fn TAG)
(defalias 'semantic-python-extract-docstring #[257 "\211\211@\262\211\300\301O\207" [3 -3] 5 (#$ . 26529)])
#@46 Run `wisent-python-lexer' on current buffer.
(defalias 'wisent-python-lex-buffer #[0 "\300 \210\301ed\302#r\303\304!q\210\305 \210\306p\"\210eb\210\307p!)\207" [semantic-lex-init semantic-lex 0 get-buffer-create "*wisent-python-lexer*" erase-buffer pp pop-to-buffer] 4 (#$ . 26711) nil])
(provide 'semantic/wisent/python)
