#tree-sitter #perl #incremental-parser

tree-sitter-perl

perl grammar for the tree-sitter parsing library

1 stable release

1.1.2 Dec 27, 2025

#666 in Parser implementations

Download history 126/week @ 2026-01-22 320/week @ 2026-01-29 259/week @ 2026-02-05 355/week @ 2026-02-12 545/week @ 2026-02-19 329/week @ 2026-02-26 720/week @ 2026-03-05 2495/week @ 2026-03-12 2100/week @ 2026-03-19 2554/week @ 2026-03-26 1622/week @ 2026-04-02 1319/week @ 2026-04-09 1622/week @ 2026-04-16 1181/week @ 2026-04-23 1685/week @ 2026-04-30 3168/week @ 2026-05-07

7,952 downloads per month
Used in 14 crates (10 directly)

MIT license

16MB
411K SLoC

C 410K SLoC // 0.0% comments JavaScript 1.5K SLoC // 0.1% comments Rust 72 SLoC

This crate provides Perl language support for the tree-sitter parsing library.

Typically, you will use the LANGUAGE constant to add this language to a tree-sitter Parser, and then use the parser to parse some code:

let code = r#"
"#;
let mut parser = tree_sitter::Parser::new();
let language = tree_sitter_perl::LANGUAGE;
parser
    .set_language(&language.into())
    .expect("Error loading Perl parser");
let tree = parser.parse(code, None).unwrap();
assert!(!tree.root_node().has_error());

tree-sitter-perl

a perl parser using tree-sitter

Getting started

To just generate the parser output

npm run generate

Tests

npm run test

Run examples

npm run example

To build the wasm file

  1. Run pre-build npm run pre-build
  2. Run build npm run build
  3. Generate the wasm file npm run build-wasm (make sure you are running docker daemon)

Maintenance

After upgrading tree-sitter-cli

  • Command to upgrade - npm i tree-sitter-cli@latest
  • Then do npm run update-bindings
  • Then generate the grammar again npm run generate

Dependencies

~2.6–4MB
~77K SLoC