LeXtract.TokenInterval (lextract v0.1.2)

View Source

Represents a token position interval.

Fields

  • :start_token - Starting token index (0-based, inclusive)
  • :end_token - Ending token index (0-based, exclusive)

Examples

iex> interval = %LeXtract.TokenInterval{start_token: 0, end_token: 3}
iex> LeXtract.TokenInterval.length(interval)
3

Summary

Functions

Returns the number of tokens in the interval.

Creates a new token interval.

Checks if two token intervals overlap.

Types

t()

@type t() :: %LeXtract.TokenInterval{
  end_token: non_neg_integer(),
  start_token: non_neg_integer()
}

Functions

length(token_interval)

@spec length(t()) :: non_neg_integer()

Returns the number of tokens in the interval.

Examples

iex> interval = LeXtract.TokenInterval.new(5, 10)
iex> LeXtract.TokenInterval.length(interval)
5

new(start_token, end_token)

@spec new(non_neg_integer(), non_neg_integer()) :: t()

Creates a new token interval.

Examples

iex> LeXtract.TokenInterval.new(0, 5)
%LeXtract.TokenInterval{start_token: 0, end_token: 5}

overlaps?(token_interval1, token_interval2)

@spec overlaps?(t(), t()) :: boolean()

Checks if two token intervals overlap.

Examples

iex> i1 = LeXtract.TokenInterval.new(0, 5)
iex> i2 = LeXtract.TokenInterval.new(3, 8)
iex> LeXtract.TokenInterval.overlaps?(i1, i2)
true

iex> i1 = LeXtract.TokenInterval.new(0, 5)
iex> i2 = LeXtract.TokenInterval.new(5, 10)
iex> LeXtract.TokenInterval.overlaps?(i1, i2)
false