Gramática — Blocos de domínio
3 produções: crucible, server e as palavras contextuais. Cada exemplo é aceito pelo parser.
Palavras que só valem dentro do bloco que as abre — por isso não roubam nomes de quem escreve.
| Produção | Nós que ela produz |
|---|---|
crucible | CrucibleBlock |
server | ServerBlock |
dados | FrameExpression, TrainExpression, PredictExpression |
crucible#
text
suite = "crucible" texto ":" NEWLINE INDENT
{ "trial" texto [ "pending" ] bloco | fixture | gancho } DEDENT ;
cobranca = "expect" expressao ;dataforge
crucible "s":
trial "t":
expect 1 is 1server#
text
servidor = "server" nome [ "on" expressao ] [ "at" expressao ] ":" NEWLINE INDENT
{ "route" verbo texto bloco | middleware | mount | assets } DEDENT ;
resposta = "respond" [ inteiro ] [ "json" | "html" | "text" ] expressao ;dataforge
server api on 0:
route GET "/":
respond json {"ok": yes}dados#
text
quadro = "frame" expressao ;
treinar = "train" texto "using" expressao ;
prever = "predict" expressao "using" expressao ;dataforge
t := frame [{"a": 1}, {"a": 3}]
dados := [{"x": 1.0, "y": 2.0}, {"x": 2.0, "y": 4.0}]
m := train "linear" using {"linhas": dados, "alvo": "y", "colunas": ["x"]}
out predict m using [{"x": 3.0}]Estas produções saem de dataforge/gramatica.py. No terminal: dataforge gramatica dominios. Volte para a gramática.