KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > parsec > FollowedByParser


1 /**
2  *
3  */

4 package jfun.parsec;
5
6 final class FollowedByParser<R> extends Parser<R> {
7   private final Parser<?> sep;
8
9   private final Parser<R> p;
10
11   FollowedByParser(String JavaDoc n, Parser<?> sep, Parser<R> p) {
12     super(n);
13     this.sep = sep;
14     this.p = p;
15   }
16
17   boolean apply(final ParseContext ctxt) {
18     final boolean r1 = p.parse(ctxt);
19     if (!r1)
20       return r1;
21     final R ret = p.getReturn(ctxt);
22     if (!sep.parse(ctxt))
23       return false;
24     ctxt.setReturn(ret);
25     return true;
26   }
27 }
Popular Tags