function _parse_tree_string()

in src/parser/WDL/hermes/wdl_parser.js [29:52]


function _parse_tree_string(parsetree, indent, b64_source, indent_level) {
  if (typeof(indent) != 'number' || indent <= 0) {
    indent = undefined
  }
  var indent_str = typeof(indent) !== 'undefined' ? Array(indent * indent_level + 1).join(' ') : ''
  if (parsetree instanceof ParseTree) {
    var children = []
    for (var i in parsetree.children) {
      children.push(_parse_tree_string(parsetree.children[i], indent, b64_source, indent_level + 1))
    }
    if (typeof(indent) == 'undefined' || children.length == 0) {
      return '{0}({1}: {2})'.format(indent_str, parsetree.nonterminal.to_string(), children.join(', '))
    } else {
      return '{0}({1}:\n{2}\n{3})'.format(
        indent_str,
        parsetree.nonterminal.to_string(),
        children.join(',\n'),
        indent_str
      )
    }
  } else if (parsetree instanceof Terminal) {
    return indent_str + parsetree.to_string(b64_source)
  }
}