"""
Auto-generated Python stub file from ast.match.py
Module: ast.match
"""


import t, c
from stdint import *
import memhub
import string
from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list

class MatchCase(AST):
    pattern: AST | t.CPtr
    guard: AST | t.CPtr
    def __new__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass
    def __init__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass
    def kind(self: MatchCase) -> t.CInt: pass
    def type_name(self: MatchCase) -> str: pass
    def dump(self: MatchCase, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchValue(AST):
    value: AST | t.CPtr
    def __new__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass
    def __init__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass
    def kind(self: MatchValue) -> t.CInt: pass
    def type_name(self: MatchValue) -> str: pass
    def dump(self: MatchValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchSingleton(AST):
    value: AST | t.CPtr
    def __new__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass
    def __init__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass
    def kind(self: MatchSingleton) -> t.CInt: pass
    def type_name(self: MatchSingleton) -> str: pass
    def dump(self: MatchSingleton, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchSequence(AST):
    patterns: list[AST | t.CPtr] | t.CPtr
    def __new__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass
    def __init__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass
    def kind(self: MatchSequence) -> t.CInt: pass
    def type_name(self: MatchSequence) -> str: pass
    def dump(self: MatchSequence, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchMapping(AST):
    keys: list[AST | t.CPtr] | t.CPtr
    patterns: list[AST | t.CPtr] | t.CPtr
    rest: str
    def __new__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass
    def __init__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass
    def kind(self: MatchMapping) -> t.CInt: pass
    def type_name(self: MatchMapping) -> str: pass
    def dump(self: MatchMapping, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchClass(AST):
    cls: AST | t.CPtr
    patterns: list[AST | t.CPtr] | t.CPtr
    kwd_attrs: list[AST | t.CPtr] | t.CPtr
    kwd_patterns: list[AST | t.CPtr] | t.CPtr
    def __new__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass
    def __init__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass
    def kind(self: MatchClass) -> t.CInt: pass
    def type_name(self: MatchClass) -> str: pass
    def dump(self: MatchClass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchStar(AST):
    name: str
    def __new__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass
    def __init__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass
    def kind(self: MatchStar) -> t.CInt: pass
    def type_name(self: MatchStar) -> str: pass
    def dump(self: MatchStar, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchAs(AST):
    pattern: AST | t.CPtr
    name: str
    def __new__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass
    def __init__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass
    def kind(self: MatchAs) -> t.CInt: pass
    def type_name(self: MatchAs) -> str: pass
    def dump(self: MatchAs, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass
class MatchOr(AST):
    patterns: list[AST | t.CPtr] | t.CPtr
    def __new__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass
    def __init__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass
    def kind(self: MatchOr) -> t.CInt: pass
    def type_name(self: MatchOr) -> str: pass
    def dump(self: MatchOr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass