Curso de Raku / Expresiones regulares y gramáticas / Gramáticas / Tokens y reglas
regex, token y rule
Las tres palabras clave se construyen una sobre otra:
regex— retrocede, como los patrones de/ … /token— no retrocederule— comotoken, pero los espacios del patrón son significativos
Retroceder significa que, cuando una parte posterior del
patrón falla, el motor vuelve atrás y prueba una coincidencia más corta
para una parte anterior. Un regex hace esto:
my regex r { \w+ 'b' }
say so 'aaab' ~~ / <r> /; # True\w+ agarra primero todo aaab y después
tiene que devolver la última b para que la b
literal pueda coincidir. Un token se niega a devolver
nada:
my token t { \w+ 'b' }
say so 'aaab' ~~ / <t> /; # FalseAquí \w+ toma todo aaab, la b
literal no encuentra nada libre y el token simplemente falla en lugar de
retroceder.
Eso suena a limitación, pero para las gramáticas es exactamente lo
que quieres: cada token debe emparejar una cosa limpia y comprometerse
con ella. Esto hace el análisis más rápido y el resultado predecible.
Usa token por omisión; recurre a
regex solo en las raras ocasiones en que de verdad
necesites retroceso.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Tokens y reglas | Quiz — Retroceso →
💪 O ve directamente a los ejercicios de esta
sección.