processScript method

dynamic processScript(
  1. String data,
  2. List<int> script
)

Implementation

dynamic processScript(String data, List<int> script) {
  List<dynamic> radScript = cborToRad(script);
  RadString root = RadString(data);
  List<dynamic> opStack = [];
  opStack.add([root.runtimeType.toString(), root]);
  if (radScript[0] == OP.STRING_PARSE_JSON_MAP) {
    opStack.add(['RadonMap', RadMap.fromJson(json.decode(data))]);
  }
  for (int i = 1; i < radScript.length; i++) {
    var lastOp = opStack.last[1];
    var _op = radScript[i];
    var currentOp;
    if (_op.runtimeType == int) {
      currentOp = lastOp.op(_op);
    } else {
      currentOp = lastOp.op(_op[0], _op[1]);
    }
    opStack.add([currentOp.runtimeType.toString(), currentOp]);
  }

  return {'trace': opStack, 'script': radScript};
}