#incremental #parser #merlin6502

tree-sitter-merlin6502

merlin6502 grammar for the tree-sitter parsing library

4 stable releases

2.2.0 Apr 21, 2024
2.1.0 Oct 1, 2023
2.0.0 Mar 11, 2023
1.0.0 Oct 30, 2022

#218 in Text editors

Download history 3/week @ 2024-02-19 23/week @ 2024-02-26 2/week @ 2024-03-04 20/week @ 2024-03-11 60/week @ 2024-04-01 128/week @ 2024-04-15 48/week @ 2024-04-22

176 downloads per month
Used in 2 crates (via a2kit)

MIT license

1MB
41K SLoC

C 40K SLoC JavaScript 651 SLoC // 0.1% comments Scheme 183 SLoC Rust 33 SLoC // 0.4% comments

Parser for Merlin 6502 Assembly

This is the rust binding for tree-sitter-merlin6502. To use the parser, include the following in your package's Cargo.toml:

[dependencies]
tree-sitter = "0.22.4"
tree-sitter-merlin6502 = "2.2.0"

Here is a trivial main.rs example:

use tree_sitter;
use tree_sitter_merlin6502;

fn main() {
    let code = " LDA #$00\n";
    let mut parser = tree_sitter::Parser::new();
    parser.set_language(&tree_sitter_merlin6502::language())
      .expect("Error loading Merlin 6502 grammar");
    let tree = parser.parse(code,None).unwrap();

    println!("{}",tree.root_node().to_sexp());
}

This should print the syntax tree

(source_file (operation (op_lda) (arg_lda (imm (imm_prefix) (num (hex))))))

For more on parsing with rust, see the general guidance here.

Dependencies

~2.7–4MB
~72K SLoC