KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > jfun > parsec > SimpleParserTestCase


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 JavaDoc> parser = Parsers.or(
11           Scanners.isChar('a').seq(Scanners.isChar('b')).seq(Parsers.retn(new Character JavaDoc('b'))),
12           Scanners.isString("aa").seq(Parsers.retn("aa"))
13     );
14     verify("aaa", "aa", parser);
15     verify("ab", new Character JavaDoc('b'), parser);
16   }
17   public void testAltShouldRecoverError() {
18     Parser<String JavaDoc> 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 JavaDoc code, Object JavaDoc expected, Parser parser){
26     assertEquals(expected, parser.parse(code));
27   }
28 }
29
Popular Tags