@@ -159,10 +159,10 @@ const org_grammar = {
159159 _tag_expr_start : _ => token ( prec ( 'non-immediate' , ':' ) ) ,
160160
161161 property_drawer : $ => seq (
162- caseInsensitive ( ':properties:' ) ,
162+ alias ( / : p r o p e r t i e s : / i , ':properties:' ) ,
163163 repeat1 ( $ . _nl ) ,
164164 repeat ( seq ( $ . property , repeat1 ( $ . _nl ) ) ) ,
165- prec . dynamic ( 1 , caseInsensitive ( ':end:' ) ) ,
165+ prec . dynamic ( 1 , alias ( / : e n d : / i , ':end:' ) ) ,
166166 $ . _eol ,
167167 ) ,
168168
@@ -215,7 +215,7 @@ const org_grammar = {
215215 fndef : $ => seq (
216216 optional ( $ . _directive_list ) ,
217217 seq (
218- caseInsensitive ( '[fn:' ) ,
218+ alias ( / \[ f n : / i , '[fn:' ) ,
219219 field ( 'label' , alias ( / [ ^ \p{ Z} \t \n \r \] ] + / , $ . expr ) ) ,
220220 ']' ,
221221 ) ,
@@ -240,30 +240,30 @@ const org_grammar = {
240240 token . immediate ( prec ( 'special' , ':' ) ) ,
241241 $ . _nl ,
242242 optional ( field ( 'contents' , $ . contents ) ) ,
243- prec . dynamic ( 1 , caseInsensitive ( ':end:' ) ) ,
243+ prec . dynamic ( 1 , alias ( / : e n d : / i , ':end:' ) ) ,
244244 $ . _eol ,
245245 ) ,
246246
247247 block : $ => seq (
248248 optional ( $ . _directive_list ) ,
249- caseInsensitive ( '#+begin_' ) ,
249+ alias ( / # \+ b e g i n _ / i , '#+begin_' ) ,
250250 field ( 'name' , $ . expr ) ,
251251 optional ( repeat1 ( field ( 'parameter' , $ . expr ) ) ) ,
252252 $ . _nl ,
253253 optional ( field ( 'contents' , $ . contents ) ) ,
254- caseInsensitive ( '#+end_' ) ,
254+ alias ( / # \+ e n d _ / i , '#+end_' ) ,
255255 field ( 'end_name' , alias ( $ . _immediate_expr , $ . expr ) ) ,
256256 $ . _eol ,
257257 ) ,
258258
259259 dynamic_block : $ => seq (
260260 optional ( $ . _directive_list ) ,
261- caseInsensitive ( '#+begin:' ) ,
261+ alias ( / # \+ b e g i n : / i , '#+begin:' ) ,
262262 field ( 'name' , $ . expr ) ,
263263 repeat ( field ( 'parameter' , $ . expr ) ) ,
264264 $ . _nl ,
265265 optional ( field ( 'contents' , $ . contents ) ) ,
266- caseInsensitive ( '#+end:' ) ,
266+ alias ( / # \+ e n d : / i , '#+end:' ) ,
267267 optional ( field ( 'end_name' , $ . expr ) ) ,
268268 $ . _eol ,
269269 ) ,
@@ -316,7 +316,7 @@ const org_grammar = {
316316 ) ,
317317
318318 formula : $ => seq (
319- caseInsensitive ( '#+tblfm:' ) ,
319+ alias ( / # \+ t b l f m : / i , '#+tblfm:' ) ,
320320 field ( 'formula' , optional ( $ . _expr_line ) ) ,
321321 $ . _eol ,
322322 ) ,
@@ -325,24 +325,24 @@ const org_grammar = {
325325 optional ( $ . _directive_list ) ,
326326 choice (
327327 seq (
328- caseInsensitive ( '\\begin{' ) ,
328+ alias ( / \\ b e g i n \{ / i , '\\begin{' ) ,
329329 field ( 'name' , alias ( / [ \p{ L} \p{ N} * ] + / , $ . name ) ) ,
330330 token . immediate ( '}' ) ,
331331 $ . _nl ,
332332 optional ( field ( 'contents' , $ . contents ) ) ,
333- caseInsensitive ( '\\end{' ) ,
333+ alias ( / \\ e n d \{ / i , '\\end{' ) ,
334334 alias ( / [ \p{ L} \p{ N} * ] + / , $ . name ) ,
335335 token . immediate ( '}' ) ,
336336 ) ,
337337 seq (
338- token ( seq ( caseInsensitive ( '\\[' ) , choice ( '\n' , '\r' ) ) ) ,
338+ token ( seq ( '\\[' , choice ( '\n' , '\r' ) ) ) ,
339339 optional ( field ( 'contents' , $ . contents ) ) ,
340- caseInsensitive ( '\\]' ) ,
340+ '\\]' ,
341341 ) ,
342342 seq (
343- token ( seq ( caseInsensitive ( '\\(' ) , choice ( '\n' , '\r' ) ) ) ,
343+ token ( seq ( '\\(' , choice ( '\n' , '\r' ) ) ) ,
344344 optional ( field ( 'contents' , $ . contents ) ) ,
345- caseInsensitive ( '\\)' ) ,
345+ '\\)' ,
346346 ) ,
347347 ) ,
348348 $ . _eol ,
@@ -409,18 +409,4 @@ function expr(pr, tfunc, skip = '', extra = '') {
409409 )
410410}
411411
412- function caseInsensitive ( str ) {
413- return alias ( new RegExp ( str
414- . split ( '' )
415- . map ( caseInsensitiveChar )
416- . join ( '' )
417- ) , str . toLowerCase ( ) )
418- }
419-
420- function caseInsensitiveChar ( char ) {
421- if ( / [ a - z A - Z ] / . test ( char ) )
422- return `[${ char . toUpperCase ( ) } ${ char . toLowerCase ( ) } ]` ;
423- return char . replace ( / [ \[ \] ^ $ . | ? * + ( ) \\ \{ \} ] / , '\\$&' ) ;
424- }
425-
426412module . exports = grammar ( org_grammar ) ;
0 commit comments