from lark import Lark

gramatica_mais_igual = """
    start: (ATRIBUICAO_SOMA | SOMA | IGUAL | NUMERO | ID)+

    ATRIBUICAO_SOMA: "+="
    SOMA: "+"
    IGUAL: "="
    ID: /[a-zA-Z]+/
    NUMERO: /[0-9]+/

    %import common.WS
    %ignore WS
"""

parser = Lark(gramatica_mais_igual)
texto = "valor += 10"
# Resultado: ID (valor), ATRIBUICAO_SOMA (+=), NUMERO (10)

print(f"Analisando: {texto}")
for token in parser.lex(texto):
    print(f"Token: {token.type:12} | Valor: {token.value}")