5 repositorios
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 es una herramienta de endurecimiento (hardening) y linter para scripts de shell, diseñada para mejorar la seguridad y fiabilidad de los scripts de Bash. Funciona como una utilidad automatizada que reescribe scripts para seguir los estándares de la industria en cuanto a entrecomillado y prácticas de seguridad. El proyecto proporciona un optimizador y estandarizador que reemplaza patrones inseguros y alias por equivalentes funcionales más seguros. Incluye un resaltador de sintaxis que utiliza marcadores visuales y coloración para indicar vulnerabilidades y áreas donde se requieren correcciones de entrecomillado. La herramienta cubre una amplia gama de capacidades, incluyendo remediación de seguridad automatizada, detección de vulnerabilidades y detección de errores en scripts. Estas características garantizan la conformidad del script mediante la reescritura automatizada y la validación estructural de la sintaxis.
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 es un optimizador de grafos de deep learning y simplificador de modelos diseñado para reducir la complejidad de los grafos de computación ONNX. Funciona como un compresor de modelos que reemplaza secuencias complejas de operadores con salidas constantes simplificadas para disminuir la sobrecarga operativa. El proyecto logra la simplificación mediante la inferencia de plegado de constantes (constant folding), que reemplaza subgrafos de operadores constantes con tensores constantes precalculados. Utiliza la reescritura de grafos basada en patrones y el análisis estático de grafos de computación para identificar y eliminar nodos redundantes u operaciones inalcanzables. La herramienta cubre amplias capacidades de optimización de modelos, incluyendo la eliminación de redundancia de operadores y la eliminación de nodos de reshape o identidad innecesarios. Estos procesos agilizan el flujo de ejecución y reducen la huella de memoria del modelo.
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.