- Use jq to cleanly remove encryptid SDK from package.json in Docker - Fix TypeScript strict mode errors in dashboard and assistant - Add .dockerignore to exclude node_modules from build context - Use project root as Docker build context for frontend - Fix Traefik routing: separate frontend/api/studio paths Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| dist | ||
| LICENSE | ||
| README.md | ||
| package.json | ||
README.md
Mermaid Parser
Mermaid parser package
How the package works
The package exports a parse function that has two parameters:
declare function parse<T extends DiagramAST>(
diagramType: keyof typeof initializers,
text: string
): T;
How does a Langium-based parser work?
sequenceDiagram
actor Package
participant Module
participant TokenBuilder
participant Lexer
participant Parser
participant ValueConverter
Package ->> Module: Create services
Module ->> TokenBuilder: Override or/and<br>reorder rules
TokenBuilder ->> Lexer: Read the string and transform<br>it into a token stream
Lexer ->> Parser: Parse token<br>stream into AST
Parser ->> ValueConverter: Clean/modify tokenized<br>rules returned value
ValueConverter -->> Package: Return AST
-
When to override
TokenBuilder?- To override keyword rules.
- To override terminal rules that need a custom function.
- To manually reorder the list of rules.
-
When to override
Lexer?- To modify input before tokenizing.
- To insert/modify tokens that cannot or have not been parsed.
-
When to override
LangiumParser?- To insert or modify attributes that can't be parsed.
-
When to override
ValueConverter?- To modify the returned value from the parser.