resolve method

  1. @override
dynamic resolve(
  1. AstContext astContext,
  2. AstRuntimeExecutor executor,
  3. dynamic target, {
  4. String? property,
  5. List<AstRuntimeNode>? arguments,
})
override

ClassName.methodName() methodName() obj.methodName() ClassName()

Implementation

@override
dynamic resolve(AstContext astContext, AstRuntimeExecutor executor, target,
    {String? property, List<AstRuntimeNode>? arguments}) {
  for (var resolver in _resolverList) {
    if (resolver.canResolve(target, property: property)) {
      return resolver.resolve(astContext, executor, target,
          property: property, arguments: arguments);
    }
  }
  if (functionApply != null && target is String && property == null) {
    var argumentsValue = [];
    if (arguments != null) {
      for (var arg in arguments) {
        argumentsValue.add(executor.execute(astContext, arg));
      }
    }
    return functionApply!(target, argumentsValue);
  }
  warn(
      object: this,
      message:
          "No default resolver for target: $target, or property: $property");
}