5 dépôts
Replacing matched AST nodes with new code using a string-like syntax that ignores formatting differences.
Distinct from Code Transformation Tools: Distinct from Code Transformation Tools: focuses on pattern-based replacement with formatting-agnostic syntax rather than general AST manipulation.
Explore 5 awesome GitHub repositories matching software engineering & architecture · Pattern-Based Replacements. Refine with filters or upvote what's useful.
GoGoCode is an AST-based code transformation toolkit that enables developers to query, match, and rewrite JavaScript source code using jQuery-style selectors and wildcard patterns. At its core, it provides a programmatic code refactoring library that manipulates parsed AST nodes, allowing precise structural modifications without worrying about formatting differences. The toolkit also functions as a JavaScript AST query engine, finding code patterns through snippet-based matching with wildcards that capture unknown or variable-length fragments. What distinguishes GoGoCode is its callback-drive
Replaces matched AST nodes with new code using a string-like syntax that ignores formatting differences.
Shellharden est un outil de durcissement et un linter pour scripts shell, conçu pour améliorer la sécurité et la fiabilité des scripts Bash. Il fonctionne comme un utilitaire automatisé qui réécrit les scripts pour suivre les standards de l'industrie en matière de citation (quoting) et de pratiques de sécurité. Le projet fournit un optimiseur et un standardisateur qui remplace les modèles et alias non sécurisés par des équivalents fonctionnels plus sûrs. Il inclut un colorateur syntaxique qui utilise des marqueurs visuels et une colorisation pour indiquer les vulnérabilités et les zones où des corrections de citation sont nécessaires. L'outil couvre un large éventail de fonctionnalités, incluant la remédiation automatique de la sécurité, la détection de vulnérabilités et la détection de bugs dans les scripts. Ces fonctionnalités assurent la conformité des scripts par une réécriture automatisée et une validation structurelle de la syntaxe.
Replaces unsafe shell scripting patterns with industry-standard equivalents using automated text rewriting.
c2rust is a source-to-source translation suite and C-to-Rust transpiler designed to convert C source code and libraries into functionally equivalent unsafe Rust code. It operates as a pipeline that preserves original behavior and data structures, producing translated code that compiles as compatible shared libraries or Rust crates. The system includes an automated Rust refactoring framework that uses pattern-based AST rewriting to transform unsafe Rust into safe, idiomatic constructs. It utilizes an ownership inference engine to determine when raw pointers can be converted into safe reference
Replaces matched statements or expressions with new syntax produced by a callback or a pattern template.
onnxsim est un optimiseur de graphes de deep learning et un simplificateur de modèles conçu pour réduire la complexité des graphes de calcul ONNX. Il fonctionne comme un compresseur de modèle qui remplace des séquences d'opérateurs complexes par des sorties constantes simplifiées afin de réduire la surcharge opérationnelle. Le projet réalise cette simplification grâce à l'inférence par pliage de constantes (constant folding), qui remplace les sous-graphes d'opérateurs constants par des tenseurs constants pré-calculés. Il utilise la réécriture de graphes basée sur des motifs et l'analyse statique de graphes de calcul pour identifier et supprimer les nœuds redondants ou les opérations inaccessibles. L'outil couvre de larges capacités d'optimisation de modèles, notamment l'élimination de la redondance des opérateurs et la suppression des nœuds de reshape ou d'identité inutiles. Ces processus rationalisent le flux d'exécution et réduisent l'empreinte mémoire du modèle.
Uses pattern-based rewriting to replace operator sequences with simplified equivalent structures.
OpenRewrite is an automated refactoring engine and source-to-source migration framework. It uses a lossless semantic tree parser to represent source code as type-aware trees that preserve original whitespace and formatting, enabling precise and deterministic modifications. The project utilizes a declarative refactoring pipeline where sequences of transformations are defined in YAML to resolve breaking changes and technical debt. It features type-aware pattern matching and cross-language model mapping to apply similar refactoring patterns across different programming languages. The framework
Swaps expressions or statements using type-aware templates that leverage compiler information for accurate replacement.