public void functionHandler(FunctionDescr functionDescr) { // for now all functions are in MAIN // setModuleName( functionDescr ); functionDescr.setNamespace("MAIN"); Appendable builder = new StringBuilderAppendable(); // strip lead/trailing quotes String name = functionDescr.getName().trim(); if (name.charAt(0) == '"') { name = name.substring(1); } if (name.charAt(name.length() - 1) == '"') { name = name.substring(0, name.length() - 1); } builder.append("function " + name + "("); for (int i = 0, length = functionDescr.getParameterNames().size(); i < length; i++) { builder.append(functionDescr.getParameterNames().get(i)); if (i < length - 1) { builder.append(", "); } } builder.append(") {\n"); // TODO: fix this // List list = (List) functionDescr.getBody(); // for ( Iterator it = list.iterator(); it.hasNext(); ) { // FunctionHandlers.dump( (LispForm) it.next(), // builder, // true ); // } builder.append("}"); System.out.println("mvel expr:" + builder.toString()); functionDescr.setText(builder.toString()); functionDescr.setDialect("clips"); PackageDescr pkgDescr = createPackageDescr(functionDescr.getNamespace()); pkgDescr.addFunction(functionDescr); this.packageBuilder.addPackage(pkgDescr); }