001 package sexp;
002
003 /**
004 * SExp represents an s-expression.
005 */
006 public interface SExp {
007 /**
008 * Apply a visitor to this s-expression.
009 * @requires visitor != null
010 * @returns result of applying the function represented by the visitor to this expression
011 */
012 public <T> T accept(SExpVisitor<T> visitor);
013 }