Uma maneira fácil de criar tarefas para casa
Para usar corretamente, é necessário utilizar o poetry
- Clone o repositório:
git clone https://github.com/pab-h/TaskScript.git
- Na pasta do projeto,
poetry run start
É necessário ter instalado o pdflatex
program: vars task checker
vars: 'vars' ':' '\n' declaration (declaration)*
declaration: identifier assign value '\n'
identifier: "qualquer sequência de letras"
assign: ":="
value: number | argument | int | float | choice | call
number: "número de ponto flutuante"
argument: \" identifier \"
int: 'int' '[' number ',' number ']'
float: 'float' '[' number ',' number ']'
choice: 'choice' '[' value (',' value)* ']'
call: 'call' argument
task: 'task' ':' (argument | 'from' argument) '\n'
checker: 'checker' ':' argument
Os arquivos do TaskScript são os .task. Esse arquivo em que você fará as principais configurações sobre seu modelo. Veja alguns exemplos:
vars:
a := int[100, 200]
b := int[300, 400]
task: from "homework.tex"
checker: "calculator.py"
vars:
aluno := choice["Pablo", "John", "Marchel"]
banana := int[300, 400]
task: from "homework.tex"
checker: "banana.py"
vars:
aluno := call "alunos.py"
banana := int[300, 400]
task: from "homework.tex"
checker: "banana.py"
int[a, b]
: retorna um inteiro entrea
eb
float[a, b]
: retona um ponto flutuante entrea
eb
choice[.., .., ..]
: retorna um elemento dentre as escolhascall "arquivo.py"
: executa e retorna a saída do arquivo "arquivo.py"from "arquivo.text"
: retorna o conteúdo do arquivo "arquivo.text"
Para compilar, basta executar
compile <tarefa>.task
Para corrigir uma tarefa, basta executar
correct <tarefa>.ctask <resposta dada>
O comando compile
compila o arquivo .task retonando o arquivo do campos task
compilado em .pdf. Além disso, retorna um arquivo .ctask
usado para correção da tarefa.
O camando correct
corrige a tarefa compilada. Para isso é necessário passar o arquivo .ctask
e a resposta dada retornando True ou False
Exemplo:
compile calculo.task // calculo.ctask calculo.pdf
correct calculo.ctask -123 // False
correct calculo.ctask 10 // True
Esse projeto é somente uma prova de conceito. Certamente, não está em sua melhor forma. Caso queira, sinta-se a vontade para expandir a ideia. Consequentemente, há algumas limitações:
- Só é possível escrever tarefas usando o latex
- Só é possível executar programas escritos em python