#incremental #parser #applesoft

tree-sitter-applesoft

applesoft grammar for the tree-sitter parsing library

12 stable releases (3 major)

new 3.2.0 Apr 21, 2024
3.1.1 May 28, 2023
3.0.0 Feb 26, 2023
2.0.4 Feb 12, 2023
0.0.1 Nov 28, 2021

#83 in Text editors

Download history 2/week @ 2024-02-20 18/week @ 2024-02-27 7/week @ 2024-03-05 18/week @ 2024-03-12 7/week @ 2024-03-19 2/week @ 2024-03-26 19/week @ 2024-04-02 93/week @ 2024-04-09 108/week @ 2024-04-16

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

MIT license

515KB
21K SLoC

C 20K SLoC // 0.0% comments JavaScript 423 SLoC // 0.1% comments Scheme 121 SLoC Rust 33 SLoC // 0.1% comments

Parser for Applesoft BASIC

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

[dependencies]
tree-sitter = "0.22.4"
tree-sitter-applesoft = "3.2.0"

Here is a trivial main.rs example:

use tree_sitter;
use tree_sitter_applesoft;

fn main() {
    let code = "10 GOTO 10\n";
    let mut parser = tree_sitter::Parser::new();
    parser.set_language(&tree_sitter_applesoft::language())
      .expect("Error loading Applesoft grammar");
    let tree = parser.parse(code,None).unwrap();

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

This should print the syntax tree

(source_file (line (linenum) (statement (tok_goto) (linenum))))

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

For specific guidance on this parser, see the wiki.

For an example of a project that uses this library, see a2kit.

Dependencies

~2.8–4MB
~72K SLoC