Autômatos

Nesse tópico será retratado os autômatos da linguagem Sloth. Os autômatoss são simbolos não-terminais da liguagem. Clique no campo "Autômato" para exibir o autômato referente a cada expressão formal.

Programa

Autômato raiz chamado primeiro pelo analisador sintático.

Autômato

Expressão formal:

(Importacao()|<COMENT>|Funcao())*
[Execucao()]
(<COMENT>)*
<EOF>

Funcao

Autômato para criação de funções.

Autômato

Expressão formal:

(<TIPOVOID>|TipoVar())
<NOMEVAR>
<ABREPAR>
[FuncPar()]
<FECHAPAR>
Bloco()

FuncPar

Autômato para criar parâmetros para as funções.

Autômato

Expressão formal:

TipoVar()
DeclaraVarFunc()
[(<SEPFUN>)FuncPar()]

DeclaraVarFunc

Autômato para criar variáveis dos parâmetros das funções, vetores não podem ter valor nas chaves.

Autômato

Expressão formal:

(<NOMEVAR>)
[(<ABREVET>)(<FECHAVET>)]

Retorno

Autômato para criar o retorno das funções.

Autômato

Expressão formal:

(<RETORNO>)
[Expressao()]

ChamaFuncao

Autômato para chamar funções.

Autômato

Expressão formal:

(<NOMEVAR>)
(<ABREPAR>)
[ChamaFuncPar()]
(<FECHAPAR>)

ChamaFuncPar

Autômato para chamar parâmetros para funções.

Autômato

Expressão formal:

(Expressao())
[(<SEPFUN>)ChamaFuncPar()]

Importacao

Autômato para criar importações.

Autômato

Expressão formal:

(<IMPORT>)
(<STRING>)

Execucao

Autômato da classe principal.

Autômato

Expressão formal:

(<FIRST>)
(Linha()|(<COMENT>))*
(<LAST>)

Linha

Autômato que faz a maior parte funcional da linguagem.

Autômato

Expressão formal:

((Write()|ManVar()|Retorno())(<EOL>))
| FluxoDados()

Write

Autômato para escrita no terminal.

Autômato

Expressão formal:

(<WRITE>)
(<ABREPAR>)
(Expressao())
(<FECHAPAR>)

ManVar

Autômato para criação e/ou atribuição de variável.

Autômato

Expressão formal:

(TipoVar()ManVarSeq())
| (NomeVar()Atribuica())
| ChamaFuncao()

ManVarSeq

Autômato para declarar várias variáveis na mesma linha.

Autômato

Expressão formal:

DeclaraVar()
[(<SEPFUN>)ManVarSeq(b)]

TipoVar

Autômato para tipos de variáveis.

Autômato

Expressão formal:

<TIPOBOOLEAN>
| <TIPOCHAR>
| <TIPODOUBLE>
| <TIPOINT>
| <TIPOSTRING>

DeclaraVar

Autômato para declarar variáveis.

Autômato

Expressão formal:

(<NOMEVAR>)
[((<ABREVET>)
(Expressao())
(<FECHAVET>))
| (Atribuicao())]

NomeVar

Autômato para nome de variáveis.

Autômato

Expressão formal:

(<NOMEVAR>)
[(<ABREVET>)
(Expressao())
(<FECHAVET>)]

Atribuicao

Autômato para atribuição.

Autômato

Expressão formal:

(<IGUALDADE>)
(Read()|Expressao())

Read

Autômato para leitura do terminal.

Autômato

Expressão formal:

(<GET>) 
(<ABREPAR>) 
[TipoVar()]
(<FECHAPAR>)

Expressao

Autômato para criação de expressões, podendo ter numero negativo no começo.

Autômato

Expressão formal:

((<ABREPAR>)((Expressao())+(<FECHAPAR>))
|(<NOT>)ExpressaoNoNeg()
|ValorVal()
|ChamaFuncao()
|NomeVar()
[Operador()Expressao()]

ExpressaoNoNeg

Autômato para criação de expressões, não podendo ter numero negativo no começo.

Autômato

Expressão formal:

(((<ABREPAR>)(Expressao())+(<FECHAPAR>))
| (<NOT>)ExpressaoNoNeg()
| ValorVar()
| ChamaFuncao()
| NomeVar())
[Operador()Expressao()]

Operador

Autômato para chamar operadores.

Expressão formal:

OpArit()|OpRelac()

OpAtir

Autômato para chamar as operações aritméticas.

Autômato

Expressão formal:

(<ADD>)
| (<SUB>)
| (<MOD>)
| (<DIV>)
| (<POW>)
| (<MULT>)

OpRelac

Autômato para chamar as operações relacionais.

Autômato

Expressão formal:

(<AND>)
| (<OR>)
| (<IGUAL>)
| (<DIF>)
| (<MAIGUAL>)
| (<MEIGUAL>)
| (<MAIOR>)
| (<MENOR>)

ValorVar

Autômato para valores literais.

Autômato

Expressão formal:

(<INTEIRO>)
| (<REAL>)
| (<CARACTER>)
| (Booleano())
| (<PORCENTAGEM>)
| (<STRING>)

Booleano

Autômato para tipos booleanos literais.

Autômato

Expressão formal:

(<TRUE>)
| (<FALSE>)

FluxoDados

Autômato para fluxo de dados.

Autômato

Expressão formal:

While()
| For()
| Foreach()
| If()

While

Autômato para o fluxo de dados while.

Autômato

Expressão formal:

(<WHILE>)
(<ABREPAR>)
Expressao()
(<FECHAPAR>)
Bloco()

For

Autômato para o fluxo de dados for.

Autômato

Expressão formal:

(<FOR>)
(<ABREPAR>)
(<TIPOINT>)
(<NOMEVAR>)
Atribuicao()
(<SEPFOR>)
Expressao()
(<SEPFOR>)
Expressao()
(<FECHAPAR>)
Bloco()

Foreach

Autômato para o fluxo de dados foreach.

Autômato

Expressão formal:

(<FOREACH>)
(<ABREPAR>)
(<NOMEVAR>)
(<SEPFOR>)
(<NOMEVAR>)
(<FECHAPAR>)
Bloco()

If

Autômato para o fluxo de dados if.

Autômato

Expressão formal:

(<IF>)
(<ABREPAR>)
Expressao()
(<FECHAPAR>)
Bloco()
[(<ELSE>)Bloco()]

Bloco

Autômato para abertura de blocos.

Autômato

Expressão formal:

(<BEGIN>)
(Linha()|(<COMENT>))*
(<END>)

results matching ""

    No results matching ""