Curso de Raku / Expresiones regulares y gramáticas / Gramáticas / Crear gramáticas

Analizar con parse

Para aplicar una gramática, llama a su método .parse con la cadena que quieres analizar:

grammar Pair {
    token TOP   { <key> '=' <value> }
    token key   { \w+ }
    token value { \w+ }
}

my $m = Pair.parse('x=5');
say $m<key>;   # 「x」
say $m<value>; # 「5」

.parse devuelve un objeto de coincidencia cuando la gramática empareja la cadena entera, y Nil cuando no. Como toda la entrada debe coincidir, no hacen falta las anclas ^ y $: .parse añade ese requisito por ti:

say Pair.parse('x=5').defined; # True
say Pair.parse('x=').defined;  # False

El objeto de coincidencia funciona igual que los que conociste antes. Cada token usado en la gramática se convierte en una captura con nombre, así que $m<key> y $m<value> dan las partes coincidentes. Los tokens se anidan, de modo que una gramática construye un pequeño árbol de coincidencias, el tema de una sección posterior.

Práctica

Resuelve 1 cuestionario sobre el contenido de este tema.

La regla TOP   |   Quiz — Crear gramáticas


💪 O ve directamente a los ejercicios de esta sección.