Sto provando a scrivere una macchina a stati che divora un file sorgente e lo divide in sezioni che sono affari del compilatore o del preprocessore. Non un deep traversal, sto solo cercando sezioni che siano o commenti o direttive per il preprocessore. (niente macro, niente blocchi condizionati, ecc.)Dove è legale specificare una direttiva per il preprocessore?
I commenti sono abbastanza semplici, ma non sono sicuro al 100% dove sia legale specificare una direttiva per il preprocessore. Ad esempio, la seguente riga è legale?
int i; #include <derp.h>
Esistono casi particolari in cui alcune direttive sono consentite e altre no?
Ho cercato su Google e SO e non ho trovato una domanda che risponda a questo.
Si prega di rispondere per ENTRAMBI C e C++, ho taggato sia consapevolmente che intenzionalmente.
Se stai cercando di fare un parser, si dovrebbe utilizzare la grammatica definitiva per la lingua (ad esempio lo standard (s)) , piuttosto che affidarsi alle risposte date dai mortali fallibili qui su SO! –
hai mai provato google? – xaxxon
Sì, ho provato Google. Dice così, proprio lì nella domanda. – Wug