Я бы добавил в таблицу символов отдельные записи, но на узле foo есть ограничительное предложение. Это позволит вам иметь возможность сообщать о затенении / маскировании переменных. Таким образом, для C вы можете определить глобальный модуль int a вверху, тогда наличие a в качестве параметра будет маскировать глобальное. Это полезная подсказка, которую вы можете дать пользователям в качестве предупреждения о нарушении соглашения о повторном объявлении символа в той же области действия.
В другом случае правилам области видимости может потребоваться блокировать повторно объявленный символ, например, вложенные в циклы, когда итератор имеет то же имя.
Как говорит Иван, вам нужно сделать этот вызов, основываясь на том, что вы хотите / нужно обнаружить, и на простейшем способе проверки.