execute method

dynamic execute(
  1. String text
)

Implementation

dynamic execute(String text) {
  String param = text.trim();
  dynamic _stringResult() {
    try {
      return jsonDecode(param);
    } catch (e) {
      return param;
    }
  }
  if (param.indexOf("(") > 0) {
    MethodNode? m = MethodNode.parse(param, this);
    if (m == null)
      return _stringResult();
    dynamic func = get(m.name);
    if (func is Function) {
      return Function.apply(func, m.arguments);
    } else if (_methods.containsKey(m.name)) {
      var handler = _methods[m.name]!;
      return handler(m, this);
    } else {
      print("Warring: Can't find the method [${m.name}]");
      return _stringResult();
    }
  } else {
    if (param.startsWith("\$")) {
      Match? regExp = _matchRegExp1.firstMatch(param);
      if (regExp == null) {
        regExp = _matchRegExp2.firstMatch(param);
      }

      if (regExp != null) {
        return get(regExp.group(1)!);
      } else {
        return _stringResult();
      }
    } else {
      return _stringResult();
    }
  }
}