Package ch.usi.si.seart.treesitter
Class Parser
- java.lang.Object
-
- ch.usi.si.seart.treesitter.Parser
-
- All Implemented Interfaces:
AutoCloseable
public class Parser extends Object
Parsers are stateful objects that can be assigned a language and used to produce aTreebased on some source code. Instances of this class can not be created without an initially set language.- Since:
- 1.0.0
- Author:
- Tommy MacWilliam, Ozren Dabić
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclose()Delete the parser, freeing all the memory that it used.booleanequals(Object obj)longgetTimeout()Get the duration in microseconds that parsing is allowed to take.inthashCode()booleanisNull()Treeparse(@NotNull String source)Use the parser to parse some source code and create a syntax tree.Treeparse(@NotNull String source, @NotNull Tree oldTree)Use the parser to incrementally parse a changed source code string, reusing unchanged parts of the tree to speed up the process.Treeparse(@NotNull Path path)Use the parser to parse some source code found in a file at the specified path.Treeparse(@NotNull Path path, @NotNull Tree oldTree)Use the parser to parse some source code found in a file at the specified path, reusing unchanged parts of the tree to speed up the process.TreeparseFile(@NotNull Path path)Deprecated, for removal: This API element is subject to removal in a future version.Useparse(Path)insteadTreeparseString(@NotNull String source)Deprecated, for removal: This API element is subject to removal in a future version.Useparse(String)insteadTreeparseString(@NotNull String source, @NotNull Tree oldTree)Deprecated, for removal: This API element is subject to removal in a future version.Useparse(String, Tree)insteadvoidsetLanguage(@NotNull Language language)Set the language that the parser should use for parsing.voidsetTimeout(long timeout)Set the maximum duration in microseconds that parsing should be allowed to take before halting.voidsetTimeout(long timeout, @NotNull TimeUnit timeUnit)Set the maximum duration that parsing should be allowed to take before halting.voidsetTimeout(@NotNull Duration duration)Set the maximum duration that parsing should be allowed to take before halting.StringtoString()
-
-
-
Constructor Detail
-
Parser
public Parser(@NotNull @NotNull Language language)- Parameters:
language- The language used for parsing- Throws:
NullPointerException- if the specified language is nullUnsatisfiedLinkError- if the specified language has not been linked to the system library
-
-
Method Detail
-
close
public void close()
Delete the parser, freeing all the memory that it used.- Specified by:
closein interfaceAutoCloseable
-
setLanguage
public void setLanguage(@NotNull @NotNull Language language)Set the language that the parser should use for parsing.- Parameters:
language- The language used for parsing- Throws:
NullPointerException- if the specified language is nullUnsatisfiedLinkError- if the specified language has not been linked to the system library
-
getTimeout
public long getTimeout()
Get the duration in microseconds that parsing is allowed to take.- Returns:
- the timeout duration set for parsing, 0 if it was not set
- Since:
- 1.1.0
-
setTimeout
public void setTimeout(@NotNull @NotNull Duration duration)Set the maximum duration that parsing should be allowed to take before halting. If parsing takes longer than this, an exception is thrown. Note that the supplied duration will be rounded down to 0 if the duration is expressed in nanoseconds.- Parameters:
duration- the timeout duration- Throws:
NullPointerException- if the duration isnull- Since:
- 1.1.0
-
setTimeout
public void setTimeout(long timeout, @NotNull @NotNull TimeUnit timeUnit)Set the maximum duration that parsing should be allowed to take before halting. If parsing takes longer than this, an exception is thrown. Note that the supplied duration will be rounded down to 0 if the duration is expressed in nanoseconds.- Parameters:
timeout- the timeout duration amounttimeUnit- the duration time unit- Throws:
NullPointerException- if the time unit isnullIllegalArgumentException- if the timeout value is negative- Since:
- 1.1.0
-
setTimeout
public void setTimeout(long timeout)
Set the maximum duration in microseconds that parsing should be allowed to take before halting. If parsing takes longer than this, an exception is thrown.- Parameters:
timeout- the timeout in microseconds- Throws:
IllegalArgumentException- if the timeout value is negative- Since:
- 1.1.0
-
parseString
@Deprecated(since="1.3.0", forRemoval=true) public Tree parseString(@NotNull @NotNull String source) throws UnsupportedEncodingException
Deprecated, for removal: This API element is subject to removal in a future version.Useparse(String)instead- Throws:
UnsupportedEncodingException
-
parse
public Tree parse(@NotNull @NotNull String source) throws ParsingException
Use the parser to parse some source code and create a syntax tree.- Parameters:
source- The source code string to be parsed- Returns:
- A syntax tree matching the provided source
- Throws:
ParsingException- if a parsing failure occurs- Since:
- 1.3.0
-
parseString
@Deprecated(since="1.3.0", forRemoval=true) public Tree parseString(@NotNull @NotNull String source, @NotNull @NotNull Tree oldTree) throws UnsupportedEncodingException
Deprecated, for removal: This API element is subject to removal in a future version.Useparse(String, Tree)instead- Throws:
UnsupportedEncodingException
-
parse
public Tree parse(@NotNull @NotNull String source, @NotNull @NotNull Tree oldTree) throws ParsingException
Use the parser to incrementally parse a changed source code string, reusing unchanged parts of the tree to speed up the process.- Parameters:
source- The source code string to be parsedoldTree- The syntax tree before changes were made- Returns:
- A syntax tree matching the provided source
- Throws:
ParsingException- if a parsing failure occurs- Since:
- 1.3.0
-
parseFile
@Deprecated(since="1.3.0", forRemoval=true) public Tree parseFile(@NotNull @NotNull Path path) throws IOException
Deprecated, for removal: This API element is subject to removal in a future version.Useparse(Path)instead- Throws:
IOException
-
parse
public Tree parse(@NotNull @NotNull Path path) throws ParsingException
Use the parser to parse some source code found in a file at the specified path.- Parameters:
path- The path of the file to be parsed- Returns:
- A tree-sitter Tree matching the provided source
- Throws:
ParsingException- if a parsing failure occurs- Since:
- 1.3.0
-
parse
public Tree parse(@NotNull @NotNull Path path, @NotNull @NotNull Tree oldTree) throws ParsingException
Use the parser to parse some source code found in a file at the specified path, reusing unchanged parts of the tree to speed up the process.- Parameters:
path- The path of the file to be parsedoldTree- The syntax tree before changes were made- Returns:
- A tree-sitter Tree matching the provided source
- Throws:
ParsingException- if a parsing failure occurs- Since:
- 1.3.0
-
isNull
public final boolean isNull()
-
-