2009-06-28 11 views
1

Existe-t-il un moyen de dire à ifort ou gfortran de simplement essayer d'analyser un fichier source (pas de suivi d'inclusion, pas de compilation, pas de lien, etc.) pour nous dire s'ils trouvent la syntaxe du fichier acceptable pour un Fortran donné version (77, 90, 95, ...) ou au moins valide du tout?Comment utiliser les compilateurs Fortran pour analyser ou imprimer des fichiers sources?

Je travaille sur un logiciel qui va analyser et analyser les fichiers source Fortran, effectuer des transformations sur leur représentation sémantique et générer de nouveaux fichiers de code source Fortran.

Jusqu'à ce que mon analyseur strict (conforme aux normes) soit prêt à rouler, je prévois d'abord d'utiliser un analyseur relaxant. Ce analyseur détendu

  • doit analyser tous les fichiers ifort et gfortran analyser
  • peut également analyser les fichiers ifort et gfortran rejette (c'est pourquoi je l'ai appelé des noms comme détendue, le pardon, etc. hehe^__^")

. Voilà pourquoi j'aimerais savoir si, aux premières étapes de ce projet, nous pourrions utiliser déléguer le travail de validation syntaxique stricte aux compilateurs communs.

+0

Ainsi, votre logiciel sera en mesure de prendre notre ancien FORTRAN le code 77 et en faire un joli Fortran 90 espacé? –

+0

Non, mon but est de construire un frontal Fortran pour un moteur de différenciation automatique. [mon blog] (http://sert.homedns.org/cetin/blog/) –

Répondre

3

Avez-vous essayé regarder dans la page man?

gfortran devrait soutenir

-fsyntax-only //Check the code for syntax errors, but don't do anything beyond that. 

ifortran devrait soutenir

-fsyntax-only/-syntax-only/-y //all meaning the same 
// Specifies that the source file should be checked only for correct syntax. 
// No code is generated, no object file is produced, and some error checking done 
// by the optimizer is bypassed. This option lets you do a quick syntax check of 
//your source file. 

Pour ifortran regarder aussi dans ces options

-e90 
-e95 
-stand f90 
-stand f95 
-noinclude