Page 40 - 4625
P. 40
Функція повертає результат:
0 - коли ліворекурсивних нетерміналів немає;
1 - ліворекурсивні нетермінали в граматиці є.
5. Реалізувати алгоритм пошуку праворекурсивних нетер-
міналів. Надрукувати список праворекурсивних нетерміналів.
Інтерфейс виклику для реалізації функції:
int prepr_std(q,r)
struct node *q; // список КС-правил
struct dnode *r; // початок хеш-таблиці
Функція повертає результат:
0 - коли праворекурсивних нетерміналів немає;
1 - праворекурсивні нетермінали в граматиці є.
6. Розробити та реалізувати алгоритм пошуку різних
виведення виду А=>*Aw мінімальної довжини, тобто міні-
мальних ліворекурсивних виведення. Надрукувати послідов-
ність правил, які дають такий результат. Інтерфейс виклику
для реалізації функції:
int prepr_std(q,r)
struct node *q; // список КС-правил
struct dnode *r; // початок хеш-таблиці
Функція повертає результат:
0 - коли ліворекурсивних нетерміналів немає;
1 - ліворекурсивні нетермінали в граматиці є.
7. Розробити та реалізувати алгоритм пошуку різних виво-
дів виду А=>*wA мінімальної довжини, тобто мінімальних
праворекурсивних виводів. Надрукувати послідовність пра-
вил, які дають такий результат. Інтерфейс виклику для реа-
лізації функції:
int prepr_std(q,r)
struct node *q; // список КС-правил
struct dnode *r; // початок хеш-таблиці
Функція повертає результат:
0 - коли праворекурсивних нетерміналів немає;
1 - праворекурсивні нетермінали в граматиці є.
8. Реалізувати алгоритм пошуку множини Follow (A) для
k
нетерміналів граматики. Надрукувати множини Follow (A) для
k
кожного нетермінала. Інтерфейс виклику для реалізації
функції:
39