Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
PT.PM (PT Pattern Matching Engine)
- Theory and Practice of Source Code Parsing with ANTLR and Roslyn (ru)
- Tree structures processing and unified AST (ru)
- Pattern language for a universal signature-based code analyzer (ru)
- PT.PM.CSharpParseTreeUst for C#- and ASP.NET files (.aspx, .ascx, etc.).
- PT.PM.SqlParseTreeUst (for PL/SQL and T-SQL)
- DSL processing:
- UST preprocessing:
- Patterns and UST matching:
- PT.PM.Common is a helper shared library.
- PT.PM.AntlrUtils are the helper methods for working with ANTLR grammars.
- PT.PM is a common workflow (combining work steps, their timing).
- PT.PM.Cli is used for interaction with a console. Also, it contains an implementation of loggers.
- PT.PM.Prebuild is a utility for creating parsers from ANTLR grammars that takes into consideration the changes in the grammars files.
- PT.PM.PatternEditor is an editor for creating and checking the user patterns. This GUI can be used to check the correctness of grammars and parsing algorithms, convert and match a UST.
Unit tests for projects are located in the projects with similar names containing the .Tests suffix:
Parsing and converting test scenarios are written for projects downloaded from GitHub and cached in a local folder.
- CommandLineParser is used for parsing command-line arguments.
- Microsoft.CodeAnalysis (Roslyn) is used for analyzing and parsing .NET-based languages (C#).
- Newtonsoft.Json is used for serialization/deserialization of JSON.
- NLog is a logging system.
- NUnit is a framework for working with unit tests.
- Avalonia is a cross-platform .XAML-based NET UI framework.
- Graphviz is used for drawing tree structures and graphs.