parcel-transformer-lezer
Version:
A Parcel transformer for [@lezer/generator](https://github.com/lezer-parser/generator).
44 lines (31 loc) • 999 B
Markdown
A Parcel transformer for [@lezer/generator](https://github.com/lezer-parser/generator).
Install this package and some Lezer packages that will be imported by the generated code
```sh
yarn add -D @parcel/config-default parcel-transformer-lezer
yarn add @lezer/common @lezer/lr
```
Add a `.parcelrc` with
```json
{
"extends": "@parcel/config-default",
"transformers": {
"*.grammar": ["parcel-transformer-lezer"]
}
}
```
Then import it from Javascript.
```js
import { parser } from "./foo.grammar";
let tree = parser.parse("...");
```
`parser` is an instance of [`LRParser`](https://lezer.codemirror.net/docs/ref/#lr.LRParser). Apart from this method, there is also an export for each grammar term mapping to its id.
See the `example` folder for a complete example.
You can put this somewhere to make Typescript happy:
```typescript
declare module "*.grammar" {
import type { LRParser } from "@lezer/lr";
export const parser: LRParser;
}
```