Как написать cfg для блока кода? Я знаю, как написать cfg для регулярного выражения, но если нам нужно написать cfg для следующего ввода, то естьКонтекстная свободная грамматика для выражения
int a = 0;
Как это сделать?
Как написать cfg для блока кода? Я знаю, как написать cfg для регулярного выражения, но если нам нужно написать cfg для следующего ввода, то естьКонтекстная свободная грамматика для выражения
int a = 0;
Как это сделать?
Придерживайтесь C на данный момент.
Блок состоит из оператора (по существу) или фигурной скобки, списка объявлений переменных, списка операторов или блоков и другой фигурной скобки.
Итак, начните с предположения, что int является единственным допустимым типом переменной l, что нет глобальных переменных или параметров, и что назначение арифметического выражения (например, a = 2 * b + c;) является единственным допустимым типом утверждения ,
Затем добавьте инструкции if в свою грамматику, затем в то время как циклы. Наконец, вызовы функций с параметрами.
Тогда вы по существу получили грамматику языка C-типа, остальное - это просто детали (есть также неудобная проблема с C typedefs, к которой вы придете, когда вы, наконец, обходите их, добавив их).
Зависит от того, что вы подразумеваете под «блоком кода». C++, например, не может быть описана CFG. – Iluvatar
@Iluvatar По 'блоку кода', я имею в виду код на C++. Спасибо, btw! –