Skip to content

aaaaaa2493/Algorithms-for-parsing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Formal languages by Vladimir Turov

Приведение в нормальную форму Хомского

Грамматика записывается в файл "grammar.txt" в формате: сначала нетерминал (может состоять из нескольких символов), затем "->", затем различные варианты вывода, разделённые символом "|". Нетерминалы необходимо разделять пробелом. Если какая то последовательность строк не будет разделена пробелом, и при этом она не будет являться нетерминалом, программа разделит её на список строк длиной 1. Чтобы указать пустую строку, необходимо напиcать "\eps". Чтобы сократить ввод, можно написать "\...", тогда в определение войдут все символы от символа слева "\..." до символа справа "\...", упорядоченные по unicode - кодам. Чтобы написать символы "\" и "|" необходимо написать "\\" и "\|". Начальным нетерминалом являтется первый неретминал, записанный в грамматике.

Программа выводит информацию в консоль и в файл output.txt

Пример правильно написанной грамматики:

a1 -> 0 | \... | 9 | b1 | c1 | d1 | brace
b1 -> A | \... | D | P | \... | Z
c1->A|B|c1 b1 d1|D| \\ |\eps
d1-> \| | \|\| | -> | ->->
brace -> second brace | brace second
second -> A | \... | Z

Пример неправильно написанной грамматики:

a -> b | c \eps d
b -> \... | z
c -> a | \...
d -> z | \... | a
e -> \wrong

Чтобы запустить на Linux: python3 Chomsky.py
Чтобы запустить на Windows: python Chomsky.py

Для Windows необходимо установить python версии не менее 3.4

Синтаксический анализ алгоритмом CYK

Грамматика записывается в файл "grammar.txt". Можно писать грамматику, не приведнную в НФХ, программа сама это сделает. Тестовая строка должна быть записана в файл "test.txt". Выходная информация будет представлена в консоли и в файле "output.txt".

Чтобы запустить на Linux: python3 CYK.py
Чтобы запустить на Windows: python CYK.py

Для Windows необходимо установить python версии не менее 3.4

Синтаксический анализ алгоритмом LL(1)

Грамматика записывается в файл "grammar.txt". Можно писать леворекурсивную грамматику, программа сама сделает из неё не леворекурсивную, насколько сможет. Тестовая строка должна быть записана в файл "test.txt". Выходная информация будет представлена в консоли и в файле "output.txt".

Чтобы запустить на Linux: python3 LL1.py
Чтобы запустить на Windows: python LL1.py

Для Windows необходимо установить python версии не менее 3.4

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages