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.
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.
Notably, DotLang does not aspire to actually render Graphviz graphs. There are plenty of tools for this already.
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.
dotnet build
dotnet test
dotnet pack
dotnet msbuild /t:UpdateDocs
- Actual diagnostics
- Currently the parser just throws/bails
- Language service
- Would be awesome to leverage XML/HTML projection buffers for
XmlLiteralToken
- Would be awesome to leverage XML/HTML projection buffers for