Portugol expression interpreter
243
A ideia deste projeto é criar uma interface web simples que processa expressões simples de uma única linha em cima do interpretador do Portugol Studio.
Para hospedar utilizando o Docker, é necessário utilizar o comando:
docker run -d -p <PORTA>:80 giancarl021/portugol-expression-parser
Em que <PORTA> é a porta do hospedeiro em que o serviço ficará disponível.
Também é possível modificar a porta interna do serviço, com a flag -e PORT=<PORTA>, caso seja necessário.
É possível trabalhar com a API do serviço, sem utilizar a interface gráfica.
É necessária uma requisição HTTP para analisar uma expressão.
Requisição:
{
"expression": "2 + 2 * 4"
}
Resposta:
{
"warning": [],
"status": "success",
"value": "10"
}
Quando uma expressão não tiver uma análise bem sucedida, será retornada na resposta uma lista de erros.
Requisição
{
"expression": "2 + 2 * 4 + a"
}
Resposta:
{
"warning": [],
"status": "error",
"value": [
"A variável \"a\" não foi declarada neste escopo"
]
}
Existem casos em que é possível executar o código, porém com avisos de possíveis melhorias.
Requisição
{
"expression": "raiz(100, 2)"
}
Resposta:
{
"warning": [
"O valor da expressão passada para o parâmetro \"radicando\" da função \"raiz\" será automaticamente convertido de \"inteiro\" para \"real\"",
"O valor da expressão passada para o parâmetro \"indice\" da função \"raiz\" será automaticamente convertido de \"inteiro\" para \"real\""
],
"status": "success",
"value": "10.0"
}
Para utilizar o modo de depuração, simplesmente adicione o valor true para a chave debug no corpo da requisição.
Requisição:
{
"expression": "2 + 2 * 4",
"debug": true
}
Resposta:
{
"warning": [],
"program": "programa\n{\n inclua biblioteca Tipos --> t\n inclua biblioteca Matematica --> m\n funcao inicio()\n {\n escreva(2 + 2 * 4)\n }\n}",
"status": "success",
"value": "10"
}
Content type
Image
Digest
Size
302.1 MB
Last updated
almost 5 years ago
docker pull giancarl021/portugol-expression-parser