Beispiel: Java-Parsec

interface Parser<T> {
  Result<T> parse (PushbackReader in) throws IOException;
}

class Arithmetic {
  final static Parser<Integer> product = 
    Combine.transform(
      Combine.sepBy(Atom.expect('*'), Basic.natural), 
        Combine.fold(1,
          new Function<Pair<Integer, Integer>, Integer>() {
            public Integer compute(Pair<Integer, Integer> x) {
              return x.getFirst() * x.getSecond(); } })); }



Johannes Waldmann 2008-01-24