The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Text::Treesitter::Parser - parse some input text according to a tree-sitter grammar

SYNOPSIS

Usually accessed indirectly, via Text::Treesitter. Can also be used directly.

   use Text::Treesitter::Language;
   use Text::Treesitter::Parser;

   my $language_lib = "path/to/the/tree-sitter-perl.so";

   my $lang = Text::Treesitter::Language::load( $language_lib, "perl" );

   my $parser = Text::Treesitter::Parser->new;
   $parser->set_language( $lang );

   my $tree = $parser->parse_string( $input );

   ...

DESCRIPTION

Instances of this class perform the actual parsing operation, taking a language specification (in the form of a Text::Treesitter::Language instance) and the input text string, yielding a result (in the form of a Text::Treesitter::Tree instance).

CONSTRUCTOR

new

   $parser = Text::Treesitter::Parser->new;

Returns a new parser instance. A language must be set (by calling "set_language") before parsing can be performed.

METHODS

set_language

   $parser->set_language( $lang );

Sets the language specification, as specified by an instance of Text::Treesitter::Language.

parse_string

   $tree = $parser->parse_string( $str );

Parses a given input string, returning a node tree as an instance of Text::Treesitter::Tree.

reset

   $parser->reset;

Resets the internal state of the parser so it can be used again.

TODO

The following C library functions are currently unhandled:

   ts_parser_included_ranges
   ts_parser_parse
   ts_parser_set_timeout_micros
   ts_parser_timeout_micros
   ts_parser_set_cancellation_flag
   ts_parser_cancellation_flag
   ts_parser_set_logger
   ts_parser_logger

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>