63 def $$$(name: String): Parser[String] = atom("keyword " + quote(name), _.is_keyword(name)) |
63 def $$$(name: String): Parser[String] = atom("keyword " + quote(name), _.is_keyword(name)) |
64 def string: Parser[String] = atom("string", _.is_string) |
64 def string: Parser[String] = atom("string", _.is_string) |
65 def nat: Parser[Int] = atom("natural number", _.is_nat) ^^ (s => Integer.parseInt(s)) |
65 def nat: Parser[Int] = atom("natural number", _.is_nat) ^^ (s => Integer.parseInt(s)) |
66 def name: Parser[String] = atom("name", _.is_name) |
66 def name: Parser[String] = atom("name", _.is_name) |
67 def embedded: Parser[String] = atom("embedded content", _.is_embedded) |
67 def embedded: Parser[String] = atom("embedded content", _.is_embedded) |
68 def text: Parser[String] = atom("text", _.is_text) |
68 def text: Parser[String] = atom("text", _.is_embedded) |
69 def ML_source: Parser[String] = atom("ML source", _.is_text) |
69 def ML_source: Parser[String] = atom("ML source", _.is_embedded) |
70 def document_source: Parser[String] = atom("document source", _.is_text) |
70 def document_source: Parser[String] = atom("document source", _.is_embedded) |
71 |
71 |
72 def opt_keyword(s: String): Parser[Boolean] = |
72 def opt_keyword(s: String): Parser[Boolean] = |
73 ($$$("(") ~! $$$(s) ~ $$$(")")) ^^ { case _ => true } | success(false) |
73 ($$$("(") ~! $$$(s) ~ $$$(")")) ^^ { case _ => true } | success(false) |
74 |
74 |
75 def path: Parser[String] = |
75 def path: Parser[String] = |