Pular para o conteúdo

Gramática — Padrões

1 produções: o match e o que cada point casa. Cada exemplo é aceito pelo parser.

O match compara a forma de um valor com uma lista de padrões, do mais específico ao mais geral.

ProduçãoNós que ela produz
matchMatchBlock

match#

text
selecao       = "match" expressao ":" NEWLINE INDENT
                { "point" padrao [ "when" expressao ] bloco }
                [ "default" bloco ] DEDENT ;
padrao        = literal | nome | tipo [ "as" nome ] | "[" padroes "]"
              | "{" chave ":" padrao { "," … } "}" | nome "(" padroes ")"
              | nome "." membro ;
dataforge
match 5:
    point Integer as n when n bigger 3:
        out "grande"
    point [a, b]:
        out "par"
    default:
        out "outro"

Estas produções saem de dataforge/gramatica.py. No terminal: dataforge gramatica padroes. Volte para a gramática.