// Parses a fixed string. concrete StringParser { @type create (String) -> (Parser) } // Parses a string containing a limited set of characters. concrete SequenceOfParser { @type create (String, Int /*min*/, Int /*max*/) -> (Parser) } // Parses a fixed character. concrete CharParser { @type create (Char) -> (Parser) } // Parser combinators. concrete Parse { @type const<#x> (#x) -> (Parser<#x>) @type error (Formatted) -> (Parser) @type try<#x> (Parser<#x>) -> (Parser<#x>) @type or<#x> (Parser<#x>,Parser<#x>) -> (Parser<#x>) @type left<#x> (Parser<#x>,Parser) -> (Parser<#x>) @type right<#x> (Parser,Parser<#x>) -> (Parser<#x>) }