2 dépôts
Inspection of statements within a program to determine side effects and execution flow.
Distinct from Compiled Expression Inspection: Candidates focus on financial statements or SQL, not the analysis of programming language statements.
Explore 2 awesome GitHub repositories matching programming languages & runtimes · Statement Analysis. Refine with filters or upvote what's useful.
go-ast-book est une collection de ressources éducatives et techniques axées sur l'analyse des arbres de syntaxe abstraite (AST), le développement de compilateurs et la vérification de code statique. Il fournit des guides et manuels pour parser, parcourir et analyser le code source Go afin d'en extraire la signification sémantique. Le projet sert de référence pour construire des frontends de compilateurs, couvrant la traduction de code de haut niveau en représentations intermédiaires et en formes d'assignation statique unique (SSA). Il fournit également des instructions pour utiliser ces techniques afin de développer des outils de langage et effectuer de l'analyse de code statique. Les ressources couvrent un large éventail de capacités d'analyse statique, incluant la tokenisation lexicale, le parsing structurel des expressions et déclarations, et le suivi des coordonnées pour les fichiers sources. Il détaille également les processus d'analyse sémantique tels que la résolution d'identifiants, la vérification de la correction des types et l'analyse du flux de contrôle pour la concurrence et l'exécution différée.
Identifies independent expressions and function calls acting as statements to analyze their side effects.
nvim-autopairs est une extension basée sur Lua pour Neovim qui insère automatiquement les crochets, guillemets et mots-clés fermants pour maintenir une syntaxe équilibrée. Il fonctionne comme un automate de crochets contextuel, utilisant les nœuds structurels Tree-Sitter pour déterminer quand insérer ou sauter les caractères fermants en fonction de l'arbre de syntaxe réel du code. Le plugin se distingue par l'utilisation de la connaissance Tree-Sitter pour éviter d'insérer des paires à l'intérieur des chaînes ou des commentaires. Il prend en charge la résolution dynamique des chaînes fermantes et une logique de pairage personnalisée, permettant aux utilisateurs de définir des règles spécifiques à l'aide d'expressions régulières et de filtres de type de fichier. Au-delà de l'insertion de base, l'outil gère la suppression synchronisée des paires, l'habillage de texte pour les blocs sélectionnés et le formatage des blocs de nouvelle ligne. Il s'intègre également aux moteurs de complétion pour automatiser l'insertion des caractères fermants après la sélection d'une fonction ou d'une méthode.
Inserts closing statements for language constructs like if/then/end specifically after a newline is pressed.