Pular para o conteúdo

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çãoNós que ela produz
crucibleCrucibleBlock
serverServerBlock
dadosFrameExpression, 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 1

server#

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.