Skip to content

Commit

Permalink
Almost got it to work...
Browse files Browse the repository at this point in the history
  • Loading branch information
igal-getrailo committed Dec 11, 2013
1 parent 71fffea commit 2598a87
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
@@ -0,0 +1,37 @@
package railo.transformer.cfml.evaluator.func.impl;

import railo.runtime.exp.TemplateException;
import railo.transformer.bytecode.Position;
import railo.transformer.bytecode.expression.Expression;
import railo.transformer.bytecode.expression.var.Argument;
import railo.transformer.bytecode.expression.var.BIF;
import railo.transformer.bytecode.literal.LitString;
import railo.transformer.bytecode.op.OpDouble;
import railo.transformer.cfml.evaluator.FunctionEvaluator;
import railo.transformer.library.function.FunctionLibFunction;


public class PrecisionEvaluate implements FunctionEvaluator {

@Override
public void evaluate(BIF bif, FunctionLibFunction flf) throws TemplateException {

Argument[] args = bif.getArguments();

for (Argument arg : args) {

Expression value = arg.getValue();

if (value instanceof OpDouble) {

/* this works:
String lit = "p1 + p2";
Position p1 = new Position(0,0,0), p2 = new Position(0,lit.length()-1,lit.length()-1);
arg.setValue(LitString.toExprString( lit, p1, p2 ), "string"); //*/

// TODO: HOW DO WE GET THE ORIGINAL CFML STRING HERE?
// arg.setValue(LitString.toExprString( arg.getRawValue(), value.getStart(), value.getEnd() ), "string");
}
}
}
}
Expand Up @@ -12943,6 +12943,7 @@ You can find a list of all available timezones in the Railo administrator (Setti
<function>
<name>PrecisionEvaluate</name>
<class>railo.runtime.functions.dynamicEvaluation.PrecisionEvaluate</class>
<tte-class>railo.transformer.cfml.evaluator.func.impl.PrecisionEvaluate</tte-class>
<description>Evaluates one or more string expressions.</description>
<argument-type>dynamic</argument-type>
<argument-min>1</argument-min>
Expand Down

0 comments on commit 2598a87

Please sign in to comment.