diff --git a/packages/parser/README.md b/packages/parser/README.md new file mode 100644 index 000000000..89cf67903 --- /dev/null +++ b/packages/parser/README.md @@ -0,0 +1,63 @@ +
+
+
+
+Mermaid parser package +
+
+[](https://www.npmjs.com/package/mermaid-parser)
+
+## How the package works
+
+The package exports a `parse` function that has two parameters:
+
+```ts
+declare function parse
reorder rules
+TokenBuilder ->> Lexer: Read the string and transform
it into a token stream
+Lexer ->> Parser: Parse token
stream into AST
+Parser ->> ValueConverter: Clean/modify tokenized
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.
diff --git a/packages/parser/package.json b/packages/parser/package.json
index caf30d492..68c677c8e 100644
--- a/packages/parser/package.json
+++ b/packages/parser/package.json
@@ -7,7 +7,7 @@
"Yokozuna59",
"Sidharth Vinod (https://sidharth.dev)"
],
- "homepage": "https://github.com/mermaid-js/mermaid/#readme",
+ "homepage": "https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/parser/#readme",
"types": "dist/src/index.d.ts",
"type": "module",
"exports": {