in src/parser/WDL/hermes/wdl_parser.js [56:109]
function _ast_string(ast, 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(' ') : ''
var next_indent_str = typeof(indent) !== 'undefined' ? Array(indent * (indent_level+1) + 1).join(' ') : ''
if (ast instanceof Ast) {
var children = {}
for (var key in ast.attributes) {
children[key] = _ast_string(ast.attributes[key], indent, b64_source, indent_level + 1)
}
if (typeof(indent) == 'undefined') {
var strs = []
for (var key in children) {
strs.push('{0}={1}'.format(key, children[key]))
}
return '({0}: {1})'.format(
ast.name,
strs.join(', ')
)
} else {
var strs = []
for (var key in children) {
strs.push('{0}{1}={2}'.format(next_indent_str, key, children[key]))
}
return '({0}:\n{1}\n{2})'.format(
ast.name,
strs.join(',\n'),
indent_str
)
}
} else if (ast instanceof AstList) {
var children = []
for (var key in ast.list) {
children.push(_ast_string(ast.list[key], indent, b64_source, indent_level + 1))
}
if (typeof(indent) == 'undefined' || children.length == 0) {
return '[{0}]'.format(children.join(', '))
} else {
var strs = []
for (var index in children) {
strs.push('{0}{1}'.format(next_indent_str, children[index]))
}
return '[\n{0}\n{1}]'.format(
strs.join(',\n'),
indent_str
)
}
} else if (ast instanceof Terminal) {
return ast.to_string(b64_source)
} else {
return (ast == null) ? 'None' : ast.to_string()
}
}