Construcción de Parsers en Scala

// en construcción

Parsers primitivos

La clase StdTokenParsers define 4 parsers básicos:
  • keyword(chars: String), que matchea una keyword específica (dada por el parámetro chars)
  • numericLit, que matchea con cualquier literal numérico
  • stringLit, que matchea con cualquier literal de tipo string (entre comillas dobles).
  • ident, que matchea con un identificador

Parser combinators

El trait Parsers define los siguientes combinadores:
  • p ~ q
    parsea el input primero con el parser p y luego con q (sobre el input restante). Devuelve un par con la salida de ambos.
  • p ~> q
    parsea el input primero con p y luego con q pero devuelve sólo el resultado de q
  • p <~ q 
    parsea el input primero con p y luego con q, devolviendo el resultado de p
  • p ~! q
    es lo mismo que p ~ q pero sin backtracking en caso que q falle
  • p ||| q
    acepta el input si p acepta el input o si q acepta el input, eligiendo la opción que mayor cantidad de caracteres consuma
  • p ^^ f
    parsea usando p y al resultado le aplica la función f
  • p ^^^ v
    un parser constante, parsea usando p y devuelve siempre el mismo valor (v)
  • p*
    parsea 0 o más veces p
  • p * q
    parsea 0 o más veces p con un separador. El parser q es responsable de parsear los separadores y de combinar los dos resultados.
  • p+
    parsea 1 o más veces p
  • p?
    parsea p 0 o 1 vez.
Comments