Skip to content

.NET Standard library for parsing and generating Graphviz DOT files.

License

Notifications You must be signed in to change notification settings

OrdinaryGizmos/dotlang

 
 

Repository files navigation

DotLang: DOT Language Library for .NET

.NET Core NuGet Badge License

DotLang provides a full fidelity lexer, recursive descent parser, and abstract syntax tree for the Graphviz DOT Language, written in modern C# 8.0. It is available as a netstandard2.0 library.

Resources

Goals

The primary goal of this project is to ultimately provide a language service for Visual Studio that provides rich syntactic and semantic analysis of Graphviz DOT files: syntax highlighting, semantic completion, and Quick Info tooltips.

To support this goal, the lexer and parser are written with inspiration from Roslyn: nothing is ever discarded, and the produced AST can be run through a SyntaxVisitor to produce output DOT source code that is identical to its input.

Anti-Goals

Notably, DotLang does not aspire to actually render Graphviz graphs. There are plenty of tools for this already.

Contribute

DotLang is a .NET Standard 2.0 project and can be built with the latest stable Visual Studio, Visual Studio for Mac, or the .NET Core toolchain.

Common commands to run when developing:

  • dotnet build
  • dotnet test
  • dotnet pack
  • dotnet msbuild /t:UpdateDocs

TODO

  • Actual diagnostics
    • Currently the parser just throws/bails
  • Language service
    • Would be awesome to leverage XML/HTML projection buffers for XmlLiteralToken

About

.NET Standard library for parsing and generating Graphviz DOT files.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%