Je souhaite connaître le numéro de ligne où un appel est référencé à l'aide d'AST api dans un package. Comment puis-je faire cela?Traverser le nœud AST
Répondre
Vous avez une illustration sur la façon de rechercher dans la méthode d'un CompilationUnit dans ce papercut article:
for (ICompilationUnit unit : mypackage.getCompilationUnits()) {
IType[] types = unit.getTypes();
for (int i = 0; i < types.length; i++) {
IType type = types[i];
IMethod[] methods = type.getMethods();
- Si la méthode est un ASTNode, vous pouvez utiliser la fonction
ASTNode.getStartPosition()
. - Si l'unité de compilation de ce IMember est un
CompilationUnit
, vous pouvez l'utiliser dans leCompilationUnit.getLineNumber(position)
êtes-vous sûr de son getoccurencecount pour obtenir la position? – Steven
CompilationUnit.getLineNumber (position int)
position est relative à l'objet CompilationUnit
Documentation:
renvoie le numéro de ligne correspondant à la position de caractère de source donnée dans l'original chaîne source. La ligne initiale de l'unité de compilation est numérotée 1 et chaque ligne s'étend via le dernier caractère du délimiteur de fin de ligne . La toute dernière ligne s'étend jusqu'à la fin de la chaîne source et n'a pas de délimiteur de ligne . Par exemple, la source chaîne classe A \ n {\ n} a 3 lignes correspondant au caractère inclusif plages [0,7], [8,9] et [10,10]. Renvoie -1 pour une position de caractère qui ne correspond à aucune ligne source , ou -2 si aucun numéro de ligne n'est disponible pour cette unité de compilation .
- 1. Création d'un nœud AST dans Erlang
- 2. Traverser un arbre binaire en C
- 3. Implémenter un algorithme pour insérer un nœud dans une liste chaînée circulaire sans le traverser
- 4. comment traverser dans le plist
- 5. Traverser un graphe Vs Traverser un arbre
- 6. accéder au nœud parent du nœud ElementTree
- 7. Parse HQL Structure AST et convertir AST Retour à HQL
- 8. Traduire le code C# en AST?
- 9. ANTLR Bâtiment AST: nœud racine en tant que chaîne à la place du caractère
- 10. Création d'un arbre AST en Java avec un autre arbre AST
- 11. Utilisation de l'Eclipse AST
- 12. Traitement AST Python
- 13. AST bouton recherche d'éclipse
- 14. Comment traverser un Btree?
- 15. Traverser dans Vb.NET
- 16. règles ANTLR AST échouer avec RewriteEmptyStreamException
- 17. Editer le nœud Xml
- 18. Traverser la hiérarchie ViewController correctement?
- 19. Traverser une arborescence de répertoires
- 20. Rendre une sortie YACC un AST (arborescence de jetons)
- 21. Visualisation d'un AST créé avec ANTLR (dans un environnement .Net)
- 22. utilisation AST dans le bouton de recherche d'Eclipse
- 23. Comment sélectionner le nœud parent d'un nœud enfant?
- 24. Traverser un XML en utilisant la fonction Recursive
- 25. bibliothèque java conviviale clojure pour traverser le NAT
- 26. Stanford Parser - Traverser le graphe des dépendances typées
- 27. Python, Avec ... comme ... Accès AST/Symbol
- 28. Génération scala AST pour la méthode récursive
- 29. Où déclencher ast modifications dans Python?
- 30. transformer la source de Jython/ast
ce paquet, et quelle API? –
J'ai l'unité de compilation du projet. maintenant je veux rechercher une référence de méthode particulière dans cette unité usint AST (arbre de syntaxe abstraite) api – Steven