предварительная обработка входа, стилевая проверка

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
VPetr
Posts:5
Joined:22 November 2011, 16:43
предварительная обработка входа, стилевая проверка

Post by VPetr » 23 November 2011, 00:03

Веду учебный курс, необходима проверка стиля написания программ на разных языках программирования.
Для последней версии ejudge - 2.3.19 использовал gawk для упрощения обработки строк:
В serve.cfg турнира
checker_dir = "/home/online/judges/mCheckers" - каталог моих chekers

[problem]
id = 1
super = "Generic"
short_name = "1104"
long_name = "1104"
time_limit = 1
check_cmd = "/home/online/judges/mCheckers/mch_str"
style_checker_cmd = "mstyle"
statement_file = "/home/online/judges/Problems/1104/task.html"

Скрипт mystyle : - исполняемый
#!/bin/bash
expand -t,6,10,14 $1 | gawk -f /home/online/judges/mCheckers/st.awk
- замена табуляций, у меня здесь - для Фортрана
Файл st.awk - сама программа проверки стиля :
{ sn = sprintf("%3d", NR); print sn ":" $0 >"/dev/stderr"} - печать строк файла с предстоящим номером если будут ошибки стиля
...
NR==4 {if($0 !~ strftime("%d.%m.%Y",systime()) \
&& $0 !~ strftime("%d.%m.%y",systime())) { res_str = "bad date - 4 line\n"; die() }}
- проверка наличия текущей даты в 4 строке исходного файла и вывод сообщ. об ошибке с выходом из программы
и т.д.
в конеце программы:
END{
if(result ==1 ){
print res_str >"/dev/stderr"
exit 1
}
else
exit 0
}

function die()
{
result = 1
exit 1
}

=================
Правда при этом возник вопрос - программа проверяется и принимается только в день сдачи.
Перепроверить её в другой день уже не возможно, из-за стилевой проверки даты.
Можно ли разнести эти возможности? , например
Rejudge - стиль + проверка программы
program rejudge - проверка только программы без стиля

Post Reply