@@ -50,7 +50,7 @@ static void ts_lexer__get_lookahead(Lexer *self) {
5050 }
5151}
5252
53- static void ts_lexer__advance (void * payload , bool skip ) {
53+ static void ts_lexer__advance (TSLexer * payload , bool skip ) {
5454 Lexer * self = (Lexer * )payload ;
5555 if (self -> chunk == empty_chunk )
5656 return ;
@@ -95,7 +95,7 @@ static void ts_lexer__advance(void *payload, bool skip) {
9595 ts_lexer__get_lookahead (self );
9696}
9797
98- static void ts_lexer__mark_end (void * payload ) {
98+ static void ts_lexer__mark_end (TSLexer * payload ) {
9999 Lexer * self = (Lexer * )payload ;
100100 TSRange * current_included_range = & self -> included_ranges [self -> current_included_range_index ];
101101 if (self -> current_included_range_index > 0 &&
@@ -110,7 +110,7 @@ static void ts_lexer__mark_end(void *payload) {
110110 }
111111}
112112
113- static uint32_t ts_lexer__get_column (void * payload ) {
113+ static uint32_t ts_lexer__get_column (TSLexer * payload ) {
114114 Lexer * self = (Lexer * )payload ;
115115 uint32_t goal_byte = self -> current_position .bytes ;
116116
@@ -123,13 +123,19 @@ static uint32_t ts_lexer__get_column(void *payload) {
123123
124124 uint32_t result = 0 ;
125125 while (self -> current_position .bytes < goal_byte ) {
126- ts_lexer__advance (self , false);
126+ ts_lexer__advance (payload , false);
127127 result ++ ;
128128 }
129129
130130 return result ;
131131}
132132
133+ static bool ts_lexer__is_at_included_range_start (TSLexer * payload ) {
134+ const Lexer * self = (const Lexer * )payload ;
135+ TSRange * current_range = & self -> included_ranges [self -> current_included_range_index ];
136+ return self -> current_position .bytes == current_range -> start_byte ;
137+ }
138+
133139// The lexer's methods are stored as a struct field so that generated
134140// parsers can call them without needing to be linked against this library.
135141
@@ -139,6 +145,7 @@ void ts_lexer_init(Lexer *self) {
139145 .advance = ts_lexer__advance ,
140146 .mark_end = ts_lexer__mark_end ,
141147 .get_column = ts_lexer__get_column ,
148+ .is_at_included_range_start = ts_lexer__is_at_included_range_start ,
142149 .lookahead = 0 ,
143150 .result_symbol = 0 ,
144151 },
@@ -227,7 +234,9 @@ void ts_lexer_start(Lexer *self) {
227234}
228235
229236void ts_lexer_advance_to_end (Lexer * self ) {
230- while (self -> data .lookahead != 0 ) ts_lexer__advance (self , false);
237+ while (self -> data .lookahead != 0 ) {
238+ ts_lexer__advance ((TSLexer * )self , false);
239+ }
231240}
232241
233242static const TSRange DEFAULT_RANGES [] = {
0 commit comments