lezer-circom

A Lezer grammar for the Circom language

Usage no npm install needed!

<script type="module">
  import lezerCircom from 'https://cdn.skypack.dev/lezer-circom';
</script>

README

lezer-circom

standard-readme compliant license NPM version TypeScript types

A Lezer grammar for the circom language.

⚠️ This is a low-level library for parsing a low-level circom AST - if you're looking for the CodeMirror language extension, you want the codemirror-lang-circom package instead.

⚠️ This grammar is very rough alpha-quality! There are almost certainly bugs.

Table of Contents

Install

npm i lezer-circom

Usage

import { parser } from "lezer-circom"

const tree = parser.parse(`

pragma circom 2.0.1;
// ...

`)

// do something with tree.cursor() or tree.topNode ...

You can find documentation for the LR parser interface on the Lezer website.

API

import type { LRParser } from "@lezer/lr"

export const parser: LRParser

Testing

Tests use AVA and live in the test directory.

npm run test

Contributing

This library is just intended to export the compiled lezer grammar, so I don't expect to add any features or functionality beyond that. If you find issues with the grammar definition itself please open an issue to discuss them!

License

GPLv3 © 2021 Joel Gustafson