Это очень легко сделать вручную.КПК имеет начальное состояние s и конечное состояние f, только два состояния.Сделайте переход ((s, пустой, пустой), (f, S)), где S - начальный символ вашего CFG.Для каждого правила X -> Y, где X - нетерминальный символ, а Y - возможно пустая строка терминалов и нетерминалов, выполните переход ((f, empty, X), (f, Y)).Наконец, для каждого терминального символа a добавьте правило ((f, a, a), (f, пусто)).
Начните с нажатия стартового символа в стеке.Затем он заменяет любой нетерминал, который он находит в верхней части стека, правой частью производственного правила, а также сопоставляет и выводит любые терминальные символы в верхней части стека.