1 package org.apidesign.visitor;
3 public final class Language {
6 // BEGIN: visitor.clientprovider.v1
7 public interface Expression {
8 public abstract void visit(Visitor v);
10 public interface Plus extends Expression {
11 public Expression getFirst();
12 public Expression getSecond();
14 public interface Number extends Expression {
15 public int getValue();
18 public static abstract class Visitor {
21 public static Visitor create(Version1_0 v) {
25 public interface Version1_0 {
26 public boolean visitUnknown(Expression e);
27 public void visitPlus(Plus s);
28 public void visitNumber(Number n);
31 public abstract void dispatchPlus(Plus p);
32 public abstract void dispatchNumber(Number n);
34 // END: visitor.clientprovider.v1
36 static Visitor create1_0(final Visitor.Version1_0 v) {
37 return new Visitor() {
39 public void dispatchPlus(Plus p) {
44 public void dispatchNumber(Number n) {