Gramática — Módulos
3 produções: adopt, relay e mark. Cada exemplo é aceito pelo parser.
Três palavras ligam arquivos: adopt traz, relay declara o que sai, e mark aplica um decorador.
| Produção | Nós que ela produz |
|---|---|
adopt | AdoptStatement |
relay | RelayStatement |
mark | MarkDecorator |
adopt#
text
adocao = "adopt" caminho [ "as" nome ]
| "adopt" caminho "." "{" nome { "," nome } "}"
| "adopt" "{" nome "as" nome { "," … } "}" "from" caminho ;
caminho = nome { "." nome } | ( "./" | "../" ) segmento { "/" segmento } ;dataforge
adopt Arcane.Math as M
adopt Arcane.Math.{sqrt, floor}
adopt {sqrt as raiz} from Arcane.Mathrelay#
text
exportacao = "relay" saida { "," saida } | "relay" "from" caminho ;
saida = nome [ "as" nome ] ;dataforge
action novo():
yield 1
relay novo, novo as antigomark#
text
decorador = "mark" "@" expressao NEWLINE ( acao | blueprint ) ;dataforge
action dec(f):
yield f
mark @dec
action h():
yield 1Estas produções saem de dataforge/gramatica.py. No terminal: dataforge gramatica modulos. Volte para a gramática.