1 package tests.jfun.parsec; 2 3 import jfun.parsec.Parser; 4 import jfun.parsec.Parsers; 5 import jfun.parsec.Scanners; 6 import junit.framework.TestCase; 7 8 public class SimpleParserTestCase extends TestCase { 9 public void testOrShouldRecoverError(){ 10 Parser<Object > parser = Parsers.or( 11 Scanners.isChar('a').seq(Scanners.isChar('b')).seq(Parsers.retn(new Character ('b'))), 12 Scanners.isString("aa").seq(Parsers.retn("aa")) 13 ); 14 verify("aaa", "aa", parser); 15 verify("ab", new Character ('b'), parser); 16 } 17 public void testAltShouldRecoverError() { 18 Parser<String > parser = Parsers.alt( 19 Scanners.isChar('a').seq(Scanners.isChar('b')).seq(Parsers.retn("ab")), 20 Scanners.isString("aa").seq(Parsers.retn("aa")) 21 ); 22 verify("aaa", "aa", parser); 23 verify("ab", "ab", parser); 24 } 25 private static void verify(String code, Object expected, Parser parser){ 26 assertEquals(expected, parser.parse(code)); 27 } 28 } 29 | Popular Tags |