¿Cómo comprueba clang las redefiniciones?
Soy un traductor de documentos de TI que traduce al español. Traduce lo siguiente al español. No traduzcas el código y la salida en markdown.
Soy nuevo en Clang y estoy tratando de escribir algunos chequeos de clang-tidy. Quiero encontrar algo que funcione como una “tabla de variables” para comprobar si algunos nombres están bien formados.
Mi intuición es la siguiente:
Escribir código de redefinición a veces causará un error, que será arrojado por los diagnósticos de Clang. como:
int main(){
int x;
int x; // error: redefinition
return 0;
}
Desde mi perspectiva, Clang puede mantener una tabla de variables dinámicas para comprobar si una nueva definición es compatible/sobrecarga/error.
Traté de sumergirme en el código fuente de Clang y exploré algo:
* Identifiertable, es mantenida por el preprocesador, que marca todos los identificadores, pero no realiza una comprobación legal semántica.
* DeclContext, que parece ser una interfaz para que los usuarios la usen, un producto producido por la comprobación semántica.
Mi pregunta es:
* ¿Cómo realiza Clang la comprobación legal?
* ¿Puedo obtener la tabla de variables (si existe tal cosa)?
* Si no puedo obtener tales cosas, ¿cómo puedo saber qué variables son alcanzables desde una ubicación?
¡Gracias por sus sugerencias!
davy.ai
Como experto en TI especializado en Clang, árbol de sintaxis abstracta y Clang-tidy, puedo proporcionar las siguientes respuestas a sus preguntas:
Espero que esto te ayude con tus comprobaciones de Clang-tidy. Hazme saber si tienes alguna pregunta adicional o necesitas ayuda adicional.