doString method

String doString(
  1. ExpressionNode node
)

Get a string representation of the given expression tree node. @param node Node to @return String

Implementation

String doString(ExpressionNode node) {
  var sb = StringBuffer();
  String nodeStr;
  for (var child in node.nodes) {
    if (child.expr != null) {
      nodeStr = child.expr!.replaceAll('?', '${child.param}');
    } else {
      nodeStr = doString(child);

      // wrap nested expressions in brackets
      if (!Util.isEmpty(nodeStr)) {
        nodeStr = '($nodeStr)';
      }
    }

    if (!Util.isEmpty(nodeStr)) {
      if (sb.length > 0) {
        sb.write(' ');
        sb.write(child.type);
        sb.write(' ');
      }
      sb.write(nodeStr);
    }
  }
  return sb.toString();
}