core.tokenizer
Functionality to tokenize source code using syntax definitions.
local tokenizer = require "core.tokenizer"
each_token
function core.tokenizer.each_token(t: string[], scol?: integer)
-> iterator: fun(state: any, idx: any):integer, string, string
2. state: table
3. idx: integer
Iterator for a sequence of tokens in the form {type, token, ...}, returning each pair of token type and token string.
@param t
— List of tokens in the form {type, token, ...}
@param scol
— The starting offset of all combined tokens.
extract_subsyntaxes
function core.tokenizer.extract_subsyntaxes(base_syntax: table, state: string)
-> table
Return the list of syntaxes used in the specified state.
@param base_syntax
— The initial base syntax (the syntax of the file)
@param state
— The state of the tokenizer to extract from
@return — Array of syntaxes starting from the innermost one
tokenize
function core.tokenizer.tokenize(incoming_syntax: table, text: string, state: string, resume: any)
-> table|unknown
2. string|unknown
3. table|nil