new SQLParser.Mapper() {
new SQLParser.IdentityMapper() {
        public void onPassthrough(final Expression.Passthrough e) {            SQLParser p = new SQLParser                (new StringReader(e.getExpression()),                 new SQLParser.Mapper() {                     public Path map(Path path) {                         if (m_root.hasObjectType(path.getPath())) {                             return path;                         } else if (m_query.getSignature().exists(path)) {                             genPath(path);                             return getColumn(path);                         } else if (isAllowedFunction(path)) {                             return path;                         } else {                             StringBuffer msg = new StringBuffer();                             msg.append("unknown value in expression: ");                             msg.append(path);                             msg.append("\nquery signature: ");                             msg.append(m_query.getSignature());                             throw new RDBMSException(msg.toString()) {};                         }                     }                 });            try {                p.sql();            } catch (ParseException pe) {                throw new Error(pe.getMessage());            }        }