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>)