| Уровень сложности | 🟡 Средний |
|---|---|
| Рекомендуемые языки | Python, Java |
| Основные инструменты | ANTLR4 |
| Предметная область | Информатика, конфигурирование |
Разработка предметно-ориентированного языка для конфигурации учебных систем и генерации параметризованных заданий.
// Лексемы
STRING : '"' (~["\\] | '\\' .)* '"'
NUMBER : [0-9]+ ('.' [0-9]+)?
BOOL : 'true' | 'false'
ID : [a-zA-Z_][a-zA-Z_0-9]*
ASSIGN : '='
LBRACE : '{'
RBRACE : '}'
COMMA : ','
COLON : ':'
WS : [ \t\r\n]+ -> skip
// Синтаксис
config : section+
section : ID LBRACE setting* RBRACE
setting : ID ASSIGN value (COMMA value)*
value : STRING | NUMBER | BOOL | array | object
array : LBRACE value (COMMA value)* RBRACE
object : LBRACE setting* RBRACE
task_config : config constraints variants
constraints : 'constraints' LBRACE range* RBRACE
variants : 'variants' NUMBER
range : ID COLON min_max
min_max : NUMBER '..' NUMBER
Задачи:
Задачи:
Задачи:
Задачи:
math_task {
topic = "algebra",
difficulty = "medium",
constraints {
numbers_range = 1..100,
variables_count = 1..3
},
variants = 10
}
Использование в школе:
← К списку | ← 007 | 009 →