JSPM

tree-sitter-apache-avro

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q69816F
  • License MIT

Unofficial Apache Avro Language Parser for the IDL Language

Package Exports

  • tree-sitter-apache-avro
  • tree-sitter-apache-avro/bindings/node/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tree-sitter-apache-avro) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Tree Sitter Apache Avro

Introduction

This is an unofficial Apache Avro IDL (.avdl) based on the official specs:

If you notice any bug or problem, please submit an issue or make a pull request. Any contribution is welcomed and needed.

Development

Requirements:

All the parsing logic is specified in grammar.js at the root level. To see if the changes made to it are working, run the tests and compare the results.

npm test:parser

A playground is also available to test the parser (though it needs Docker to run)

npm start

More information about how to write or use the tree parser can be found here: http://tree-sitter.github.io/tree-sitter/

To test the bindings you can also do the following

tree-sitter parse ./test/protocol.avdl
tree-sitter parse ./test/schema.avdl

To check for highlights, run the following

tree-sitter highlight --check ./test/schema.avdl
tree-sitter highlight --check ./test/protocol.avdl

Just make sure to include the local directory where you have this parser in the local tree-sitter configuration. For example, if I have this path under Documents/Code/tree-sitter-apache-avro then the config should be

{
  "parser-directories": [
    "/Users/my_user/github",
    "/Users/my_user/src",
    "/Users/my_user/source",
    "/Users/my_user/projects",
    "/Users/my_user/dev",
    "/Users/my_user/git",
    "/Users/my_user/Documents/Code"
  ],
}