_versionCompliance = versionCompliance;
}
public boolean visit(AstNode node) {
if (node instanceof FunctionCall) {
FunctionCall call = (FunctionCall) node;
String functionName = call.getTarget().toSource();
boolean arrayGet = false;
if (call.getParent() != null && call.getParent() instanceof ElementGet) {
arrayGet = true;
}
// first try to find property of environment object with given name
Iterator<TMLScriptMethod> methods = ReflectionManager.getInstance(_versionCompliance).getPublicMethods(_env, _envFlags).iterator();
while (methods.hasNext()) {
TMLScriptMethod method = methods.next();
if (method.matchName(functionName) && method.getParameters().size() == call.getArguments().size()) {
if (method instanceof TMLScriptMethodExtension1) {
// compute type of parameters
List<String> paramTypes = new ArrayList<String>();
for (AstNode paramNode : call.getArguments()) {
String currentEnvironmentObject = ReflectionManager.GLOBAL_SCOPE_CLASSNAME;
String[] values = splitVariableValue(paramNode.toSource(), false);
for (String value : values) {
AstRoot valueAst = createParser().parse(value, "", 0);