Je cherche la grammaire C dans le code source de GCC, plus spécifiquement pour la grammaire sous la forme yacc/bison.Grammaire C dans le code source GCC
Répondre
trouvé la grammaire C dans la spécification Yacc dans la version 3.3 du CCG dans le fichier "c-parse.y"
http://yaxx.googlecode.com/svn/branches/yaxx-proc/gcc-3.4.0/gcc/c-parse.y –
GCC de la version 4.3 ne contenait pas de grammaire C écrite explicitement. L'analyse syntaxique et sémantique a été effectuée simultanément, sans présenter l'arbre de syntaxe comme une structure de données distincte.
Source d'information: J'ai lu le code source de GCC.
Vous ne trouverez pas de fichier C grammar yacc/bison dans le code source GCC actuel. Cela a été fait dans le passé, avant les trucs de fourche egcs. Je ne peux pas vous donner la version exacte et l'emplacement, mais je peux vous dire qu'il devrait être dans la version 2.x
La version actuelle du CCG a son propre analyseur C
Donc il y a une spécification de grammaire dans le code source de GCC, n'est-ce pas? Celui à analyser avec le propre analyseur C de GCC. Savez-vous dans quel fichier je le trouve? – Haruki
@Hurkai vous pouvez le trouver dans les commentaires aux sous-programmes qui effectuent l'analyse :-) –
de g de GCC++ commuté d'un yacc (bison) parser ans (probablement au moins 5 ans). Ils ont commencé à utiliser un analyseur décent récursif parce que C++ est difficile dans yacc. Après avoir utilisé cet analyseur dans C++ pendant plusieurs années, ils ont changé C en analyse en utilisant décent récursive aussi bien.
Vous devrez revenir en arrière plusieurs versions pour localiser la grammaire en format bison, mais il est là-bas. Vous devriez essayer la recherche de code de Google avec
gcc yyparse
Mise à jour: Google Recherche de code d'arrêt en 2012
http://en.wikipedia.org/wiki/Google_Code_Search
Vieux: http://yaxx.googlecode.com/svn/branches/yaxx-proc/gcc-3.4.0/gcc/c-parse.y
pour trouver une version de gcc cela l'a et alors vous devriez pouvoir trouver le dossier de source de yacc/bison dedans là. Ce sera vieux, cependant.
Je pense que vous voulez dire _descent_, bien que l'analyseur soit assez _decent_ :) –
GCC n'utilise pas d'analyseur généré; son analyseur est un analyseur récursif-descendant écrit à la main.
c'est vrai de la version 4.6+ – Jack
@Jack: Intéressant! Pouvez-vous me diriger vers une documentation? Je sais qu'ils ont remplacé * par * un parseur généré * par le nouveau manuscrit pour des raisons de performance et (plus important encore) de maintenabilité, probablement quelque part autour de la période de temps 3.4-4.2 (je ne me souviens pas précisément). Quelles ont été les raisons du retour en arrière et quel générateur d'analyseur utilise-t-il? –
également ANSI C Yacc grammar
La grammaire C se trouvent dans les commentaires dans c-analyseur. c fichier dans les sources GCC. Ce n'est pas un yacc/bison comme il a déjà été dit.
- 1. C++ code source vectoriel
- 2. C# .net code source
- 3. Comment puis-je installer gcc sur mon nouveau système Linux en utilisant le code source: centos5.2?
- 4. Impossible d'obtenir le code pro * c à compiler avec gcc
- 5. Qt Grammaire C++?
- 6. format moche C# code source
- 7. comportement étrange dans un code C sous gcc 4.4.3
- 8. Comment afficher le code source dans totalview?
- 9. Ignorer le code source dans le débogueur
- 10. OpenGL DevIL code source C++
- 11. Recherche d'emplacements dans le code machine (gcc/objdump -d)
- 12. Chiffrer le code source
- 13. Ajouter des options GCC en haut du fichier source C
- 14. ANTLR C grammaire, facultatif init_declarator_list?
- 15. Codage Blosum62 dans le code source
- 16. Requête DNS dans le code source Android
- 17. Importer le code source dans Jlist
- 18. décompresser le code source dans Iphone
- 19. Ajouter des images dans le code source
- 20. JSON étrange synchronisé dans le code source
- 21. Est-il possible de lier à la bibliothèque mathématique à partir du code source C dans gcc?
- 22. C/C++ dans le code Ruby?
- 23. Méthode du code source Objective C tri
- 24. définir une section de programme en code C (GCC)
- 25. Comment vérifier (via le préprocesseur) si un fichier source C est compilé en C++ Code
- 26. recharger le code source d'une application C# sur la commande
- 27. Navigation dans le code C++
- 28. Code source du validateur xml en C
- 29. Code compilé par gcc sur Visual Studio
- 30. Compilation du code OpenGL ES C avec gcc et Cygwin
C'est plus une affirmation qu'une question? (J'ai décidé de rendre la pareille en formulant ma déclaration comme une question, amusante!) –
Avez-vous essayé de googler? J'ai cherché "c yacc grammar" et est venu avec http://www.lysator.liu.se/c/ANSI-C-grammar-y.html parmi beaucoup d'autres succès. –
@Neil, peut-être que ce n'est pas ce que Hurkai voulait dire, mais GCC a quelques extensions C, et la grammaire C générique ne lui correspondrait pas exactement. –