Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Реализация алгоритма парсинга LR(k)

Формат ввода

Грамматика подается в виде:
$N_N\ N_T\ N_R$
$A_1\ A_2\ ...\ A_{N_N}$
$b_1\ b_2\ ...\ b_{N_T}$
$rule_1$
$rule_2$
...
$rule_{N_R}$
$S$

Где $A_i$ - это список нетерминалов, $b_i$ - список терминальных символов, $rule_i$ - список правил вида $A\ \rightarrow\ S_1\ S_2\ ...\ S_n$, $S_i\ =\ A_j$ или $S_i\ =\ b_j$, $S$ - стартовый нетерминал. Для добавления правила $X\ \rightarrow\ \varepsilon$, нужно написать X ->

Запуск программы

Для запуска необходимо вызвать make lrk, перед этим добавив нужный тест в папку tests в файлы grammar.txt и tests.txt.

Запуск unit-тестирования

Для запуска тестов необходимо вызвать make test.

About

Практическое задание на написание алгоритмов парсинга (Эрли, LR(k)) КС-грамматик на курсе "Формальные языки и трансляции" 2 курс ФПМИ МФТИ

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages