packages feed

zeolite-lang-0.7.0.0: example/parser/parse-text.0rp

/* Parses a fixed string.
 */
concrete StringParser {
  @type create (String) -> (Parser<String>)
}

/* Parses a string containing a limited set of characters.
 */
concrete SequenceOfParser {
  @type create (String, Int /*min*/, Int /*max*/) -> (Parser<String>)
}

/* Parses a fixed character.
 */
concrete CharParser {
  @type create (Char) -> (Parser<Char>)
}

/* Parser combinators.
 */
concrete Parse {
  @type const<#x> (#x)                     -> (Parser<#x>)
  @type error     (Formatted)              -> (Parser<all>)
  @type try<#x>   (Parser<#x>)             -> (Parser<#x>)
  @type or<#x>    (Parser<#x>,Parser<#x>)  -> (Parser<#x>)
  @type left<#x>  (Parser<#x>,Parser<any>) -> (Parser<#x>)
  @type right<#x> (Parser<any>,Parser<#x>) -> (Parser<#x>)
}