From 681b56b31b97fe197df222a0f9c23ab424fb90e8 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Wed, 14 May 2025 11:29:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=BE=D1=87=D0=BA=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=86=D0=B5=20=D0=B8=20=D1=83=D0=B4=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B8?= =?UTF-8?q?=D1=85=20=D0=BF=D1=80=D0=BE=D0=B1=D0=B5=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab3/programm/grammar.txt | 3 ++- lab3/programm/main.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lab3/programm/grammar.txt b/lab3/programm/grammar.txt index 0225336..0458c02 100644 --- a/lab3/programm/grammar.txt +++ b/lab3/programm/grammar.txt @@ -1,4 +1,5 @@ -Предложение -> ПрямойПорядок | Инверсия +Предложение -> Повествовательное "." +Повествовательное -> ПрямойПорядок | Инверсия ПрямойПорядок -> Подлежащее ДополнениеКПодлежащему Глагол ВторостепенныеЧлены Отрицание Инверсия -> Обстоятельство Глагол Подлежащее ВторостепенныеЧлены Отрицание Подлежащее -> ИменнаяГруппа ПридаточноеПредложение | Местоимение diff --git a/lab3/programm/main.py b/lab3/programm/main.py index efa39ac..5d8b1f4 100644 --- a/lab3/programm/main.py +++ b/lab3/programm/main.py @@ -70,6 +70,14 @@ def check_string(grammar: Grammar | None, input_string: str) -> None: print(f"Произошла ошибка при анализе: {e}") +def post_process_string(string: str) -> str: + string = string.capitalize() + string = string.replace(" ,", ",") + string = string.replace(" .", ".") + string = string.replace(",.", ".") + return string + + def generate_string(grammar: Grammar | None) -> None: if not grammar: print("Ошибка: Грамматика не загружена") @@ -78,6 +86,7 @@ def generate_string(grammar: Grammar | None) -> None: try: terminals, rules = grammar.generate() generated_string = " ".join(terminals) + generated_string = post_process_string(generated_string) print(f"Сгенерированная строка: {generated_string}") print(f"Применённые правила: {rules}")