package millfork.parser import fastparse.all._ import fastparse.core object MinimalTestCase { def AWS: P[Unit] = "\n".rep(min = 0).opaque("").log() def EOL: P[Unit] = "\n".rep(min = 1).opaque("").log() def identifier: P[String] = CharPred(_.isLetter).rep(min = 1).!.opaque("").log() def identifierWithSpace: P[String] = (identifier ~/ AWS ~/ Pass).opaque("").log() def separator: P[Unit] = ("," ~/ AWS ~/ Pass).opaque("").log() def identifiers: P[Seq[String]] = identifierWithSpace.rep(min = 0, sep = separator)//.opaque("").log() def array: P[Seq[String]] = ("[" ~/ AWS ~/ identifiers ~/ "]" ~/ Pass)//.opaque("").log() def arrays: Parser[Seq[Seq[String]]] = (array ~/ EOL).rep(min = 0, sep = !End ~/ Pass)//.opaque("").log() def program: Parser[Seq[Seq[String]]] = Start ~/ AWS ~/ arrays ~/ End }