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


import t, c
from stdint import *
import memhub
import string
from .tokens import Token, TokenType, TokOp, _init_tables, _kw_lookup, _op_head, OpEntry, new_token, token_set_str, token_set_str_literal

LEXER_MAX_INDENT: t.CDefine = 256

class Lexer:
    src: str
    pos: t.CSizeT
    len: t.CSizeT
    lineno: t.CInt
    col: t.CInt
    pool: memhub.MemManager | t.CPtr
    indent_stack: t.CInt | t.CPtr
    indent_top: t.CInt
    paren_depth: t.CInt
    tokens_head: Token | t.CPtr
    tokens_tail: Token | t.CPtr
    at_line_start: t.CInt
    error_count: t.CInt
    def __new__(self: Lexer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass

def new_lexer(pool: memhub.MemManager | t.CPtr) -> Lexer | t.CPtr: pass

def _lexer_init(lx: Lexer | t.CPtr, src: str, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass

def _peek(lx: Lexer | t.CPtr, offset: t.CSizeT) -> t.CChar: pass

def _peek_cur(lx: Lexer | t.CPtr) -> t.CChar: pass

def _advance(lx: Lexer | t.CPtr) -> t.CChar: pass

def _is_alpha(ch: t.CChar) -> t.CInt: pass

def _is_digit(ch: t.CChar) -> t.CInt: pass

def _is_alnum(ch: t.CChar) -> t.CInt: pass

def _is_hex(ch: t.CChar) -> t.CInt: pass

def _is_space(ch: t.CChar) -> t.CInt: pass

def _emit(lx: Lexer | t.CPtr, tok: Token | t.CPtr) -> t.CInt: pass

def _make_op_token(lx: Lexer | t.CPtr, op_id: t.CInt, length: t.CInt, lineno: t.CInt, col: t.CInt) -> Token | t.CPtr: pass

def _handle_indent(lx: Lexer | t.CPtr) -> t.CInt: pass

def _read_name(lx: Lexer | t.CPtr) -> t.CInt: pass

def _read_number(lx: Lexer | t.CPtr) -> t.CInt: pass

def _emit_number(lx: Lexer | t.CPtr, start: t.CSizeT, start_lineno: t.CInt, start_col: t.CInt, is_float: t.CInt, is_complex: t.CInt, is_hex: t.CInt) -> t.CInt: pass

def _read_string(lx: Lexer | t.CPtr) -> t.CInt: pass

def _read_operator(lx: Lexer | t.CPtr) -> t.CInt: pass

def tokenize(lx: Lexer | t.CPtr) -> Token | t.CPtr: pass
