treesitter-types-haskell 0.1.1

Pre-generated strongly-typed AST types for Haskell (tree-sitter-haskell)
Documentation

Strongly-typed AST types for Haskell, auto-generated from tree-sitter-haskell's node-types.json.

This crate is generated by treesitter-types and is automatically kept up to date when a new version of the grammar crate is released.

These types have been tested by parsing the Cabal source code.

See the Tree-sitter project for more information about the underlying parser framework.

Example

use treesitter_types_haskell::*;

// A minimal Haskell hello-world program.
let src = b"\
module Main where

main :: IO ()
main = putStrLn \"Hello, World!\"
";

// Parse the source with tree-sitter and convert into typed AST.
let mut parser = tree_sitter::Parser::new();
parser.set_language(&tree_sitter_haskell::LANGUAGE.into()).unwrap();
let tree = parser.parse(src, None).unwrap();
let haskell = Haskell::from_node(tree.root_node(), src).unwrap();

// The module has a header (`module Main where`), no imports, and declarations.
assert!(haskell.children.is_some()); // the module header
assert!(haskell.imports.is_none());  // no import statements
assert!(haskell.declarations.is_some());

// The declarations section contains the type signature and the binding.
let decls = haskell.declarations.as_ref().unwrap();
assert!(!decls.children.is_empty());