Skip to content

Uma maneira fácil de criar tarefas para casa

Notifications You must be signed in to change notification settings

pab-h/TaskScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskScript

Uma maneira fácil de criar tarefas para casa

How install

Para usar corretamente, é necessário utilizar o poetry

  1. Clone o repositório: git clone https://github.com/pab-h/TaskScript.git
  2. Na pasta do projeto, poetry run start

É necessário ter instalado o pdflatex

The sintaxe

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

The .task files

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"

Freatures

  • int[a, b]: retorna um inteiro entre a e b
  • float[a, b]: retona um ponto flutuante entre a e b
  • choice[.., .., ..]: retorna um elemento dentre as escolhas
  • call "arquivo.py": executa e retorna a saída do arquivo "arquivo.py"
  • from "arquivo.text": retorna o conteúdo do arquivo "arquivo.text"

How compile and correct a task

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

Disclaimer

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:

  1. Só é possível escrever tarefas usando o latex
  2. Só é possível executar programas escritos em python

About

Uma maneira fácil de criar tarefas para casa

Topics

Resources

Stars

Watchers

Forks

Languages