Ich versuche, eine Zustandsmaschine zu schreiben, die eine Quelldatei schlürft und sie in Abschnitte aufteilt, die entweder das Geschäft des Compilers oder das des Präprozessors betreffen. Nicht ein tiefes Traversal, ich suche nur nach Abschnitten, die entweder Kommentare oder Präprozessordirektiven sind. (keine Makros, keine bedingt kompilierten Blöcke usw.)Wo ist es legal, eine Präprozessordirektive anzugeben?
Kommentare sind einfach genug, aber ich bin mir nicht 100% sicher, wo es legal ist, eine Präprozessordirektive anzugeben. Ist zum Beispiel die folgende Zeile legal?
int i; #include <derp.h>
Gibt es spezielle Fälle, in denen einige Direktiven erlaubt sind und andere nicht?
Ich habe google und SO gesucht und keine Frage gefunden, die dies beantwortet.
Bitte antworten Sie für BEIDE C und C++, markierte ich wissentlich und absichtlich.
Wenn Sie versuchen, einen Parser zu machen, sollten Sie wirklich die endgültige Grammatik für die Sprache verwendet werden (dh der Norm (en)) , anstatt sich auf die Antworten fehlbarer Sterblicher hier auf SO zu verlassen! –
hast du sogar google probiert? – xaxxon
Ja, ich habe google probiert. Es sagt so, genau dort in der Frage. – Wug