Skip to content

Commit

Permalink
Merge pull request #140 from FormalLanguageConstrainedPathQuerying/ta…
Browse files Browse the repository at this point in the history
…sk11-autotests

Автотесты для 11 домашки
  • Loading branch information
gsvgit committed May 6, 2024
2 parents 518fd2e + 7df453f commit 44d41e6
Show file tree
Hide file tree
Showing 20 changed files with 778 additions and 1 deletion.
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
antlr4-python3-runtime
black
cfpq-data
grammarinator @ git+https://github.com/renatahodovan/grammarinator.git@f3ffa71
networkx==3.2.1
pre-commit
pydot
Expand Down
17 changes: 16 additions & 1 deletion tasks/task11.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,19 @@ _____________________________________
## Задача
- [ ] С использованием ANTLR реализовать синтаксический анализатор предложенного выше языка. А именно, реализовать функцию, которая принимает строку и возвращает дерево разбора.
- [ ] Реализовать функцию, которая по дереву разбора возвращает количество узлов в нём.
- [ ] Реализовать функцию, которая по дереву разбора строит строку, которая была разобрана.
- [ ] Реализовать функцию, которая по дереву разбора строит ранее разобранную строку.
- [ ] Расширить CI шагом генерации парсера по спецификации. Обратите внимание, что генерируемые по спецификации файлы не выкладываются в репозиторий.
- [Grammarinator](https://github.com/renatahodovan/grammarinator), используемый нами для генерации тестов, подтягивает вместе с собой [ANTLeRinator](https://github.com/renatahodovan/antlerinator), который можно использовать для получения исполняемого файла ANTLR

Требуемые функции:
```python
# Второе поле показывает корректна ли строка (True, если корректна)
def prog_to_tree(program: str) -> tuple[ParserRuleContext, bool]:
pass

def nodes_count(tree: ParserRuleContext) -> int:
pass

def tree_to_prog(tree: ParserRuleContext) -> str:
pass
```

0 comments on commit 44d41e6

Please sign in to comment.