Является ли какая-либо часть синтаксиса C++ контекстно-зависимой?
Возможный дубликат:
Является ли C++ контекстно-зависимым или контекстно-зависимым?
Вероятно, это глупый вопрос для людей, знающих о компиляторах, но я, честно говоря, не знаю об ответе.
Является ли синтаксис C++ контекстно-зависимым? Другими словами, синтаксис C++ не выражается с помощью контекстно-свободных грамматик?
Очевидно, что C++ анализируется с помощью обычных инструментов синтаксического анализа, и этот анализ не является особенно неэффективным (!), Но я вспоминаю, что читал кое-что об этом (не помню, где), и я думал, что перед распространением расскажу свои факты в сообществе ложь... Может подмножество C++ - это CS? Может быть, новая спецификация? Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: Спасибо за все ответы. Однако для полноты картины какая часть компиляции имеет дело с неоднозначностью? CFG - это грамматика, которая имеет только один нетерминальный символ в левой части правила (например, A->zC
), CSG - это та, которая имеет терминал (плюс нетерминал) на левой стороне (aAv->QT
), где заглавные буквы являются нетерминалами, а строчные - терминалами. Является ли какое-либо представление, подобное последнему, в грамматическом разборе исходного кода C++?