Documentation
¶
Index ¶
- Variables
- func DeserializeState(s *State, buf []byte)
- func SerializeState(s *State, buf []byte) int
- type Delimiter
- type PythonExternalScanner
- func (PythonExternalScanner) Create() any
- func (PythonExternalScanner) Deserialize(payload any, buf []byte)
- func (PythonExternalScanner) Destroy(payload any)
- func (PythonExternalScanner) ExternalScannerASCIIEquivalenceClass(b byte) uint8
- func (PythonExternalScanner) ExternalScannerForLanguage(lang *gotreesitter.Language) gotreesitter.ExternalScanner
- func (PythonExternalScanner) PreservesStateOnScanFailure() bool
- func (PythonExternalScanner) RequiresIncrementalPrefixFrontierProof() bool
- func (p PythonExternalScanner) Scan(payload any, lexer *gotreesitter.ExternalLexer, validSymbols []bool) bool
- func (PythonExternalScanner) Serialize(payload any, buf []byte) int
- func (PythonExternalScanner) SupportsIncrementalReuse() bool
- func (PythonExternalScanner) UsesExternalScannerCheckpoints() bool
- type State
Constants ¶
This section is empty.
Variables ¶
var ExternalLexStates = [][]bool{ {false, false, false, false, false, false, false, false, false, false, false, false}, {true, true, true, true, true, true, true, true, true, true, true, true}, {false, false, false, true, false, false, false, true, false, false, false, false}, {false, false, true, true, false, false, false, true, false, false, false, false}, {true, false, false, true, false, false, false, true, false, false, false, false}, {true, true, false, true, false, false, false, true, false, false, false, false}, {false, false, false, true, false, false, false, true, false, false, true, false}, {false, false, false, true, false, false, false, true, false, true, false, false}, {false, false, false, true, false, false, false, true, true, false, false, false}, {true, false, false, false, false, false, false, true, false, false, false, false}, {false, false, true, true, false, false, false, true, false, false, false, true}, {false, false, false, true, false, false, false, true, false, false, false, true}, {false, false, false, false, false, false, false, true, true, false, false, false}, {false, false, false, false, false, false, false, true, false, false, true, false}, {false, false, false, false, false, false, false, true, false, true, false, false}, {false, false, false, false, false, false, false, true, false, false, false, false}, {false, false, false, false, true, true, true, true, false, false, false, false}, {false, false, true, false, false, false, false, true, false, false, false, false}, {true, true, false, false, false, false, false, true, false, false, false, false}, }
ExternalLexStates mirrors C tree-sitter ts_external_scanner_states. Rows are external lex state IDs; columns are Python external token indices.
Functions ¶
func DeserializeState ¶
func SerializeState ¶
Types ¶
type Delimiter ¶
type Delimiter byte
This state and encoding serve Python-derived external scanners. Keep this file separate from Python registration so a subset does not publish Python metadata when it only includes a derivative grammar.
type PythonExternalScanner ¶
type PythonExternalScanner struct {
// contains filtered or unexported fields
}
func Bind ¶
func Bind(lang *gotreesitter.Language, bind func(*gotreesitter.Language, func(int, gotreesitter.Symbol)) []int) PythonExternalScanner
Bind uses the caller's positional binder and preserves its diagnostics.
func (PythonExternalScanner) Create ¶
func (PythonExternalScanner) Create() any
func (PythonExternalScanner) Deserialize ¶
func (PythonExternalScanner) Deserialize(payload any, buf []byte)
func (PythonExternalScanner) Destroy ¶
func (PythonExternalScanner) Destroy(payload any)
func (PythonExternalScanner) ExternalScannerASCIIEquivalenceClass ¶
func (PythonExternalScanner) ExternalScannerASCIIEquivalenceClass(b byte) uint8
ASCII digits share every character branch, including string and comment scans.
func (PythonExternalScanner) ExternalScannerForLanguage ¶
func (PythonExternalScanner) ExternalScannerForLanguage(lang *gotreesitter.Language) gotreesitter.ExternalScanner
func (PythonExternalScanner) PreservesStateOnScanFailure ¶
func (PythonExternalScanner) PreservesStateOnScanFailure() bool
func (PythonExternalScanner) RequiresIncrementalPrefixFrontierProof ¶
func (PythonExternalScanner) RequiresIncrementalPrefixFrontierProof() bool
RequiresIncrementalPrefixFrontierProof prevents a changed indentation prefix from transferring a reduction that belongs to the old source.
func (PythonExternalScanner) Scan ¶
func (p PythonExternalScanner) Scan(payload any, lexer *gotreesitter.ExternalLexer, validSymbols []bool) bool
func (PythonExternalScanner) Serialize ¶
func (PythonExternalScanner) Serialize(payload any, buf []byte) int
func (PythonExternalScanner) SupportsIncrementalReuse ¶
func (PythonExternalScanner) SupportsIncrementalReuse() bool
SupportsIncrementalReuse enables checkpoint-authenticated subtree reuse. Python serializes its complete indentation and string-delimiter state, so a reused boundary is accepted only after the live scanner matches its start checkpoint and restores its end checkpoint.
func (PythonExternalScanner) UsesExternalScannerCheckpoints ¶
func (PythonExternalScanner) UsesExternalScannerCheckpoints() bool