/** * Created by Aleksey Chichenkov on 9/20/18. */ var helper = require('jsdoc/util/templateHelper'); // var linkto = helper.linkto; var test_0 = "v2.map(v2.map(v2.string, v2.list(v2.integer)), v2.list(v2.pair(v2.list(v2.map(v2.map(v2.string, v2.list(v2.integer)), v2.list(v2.pair(v2.string, v2.vc)))), v2.vc)))"; var test_1 = "v2.map(v2.map(v2.string, v2.list(v2.integer)), v2.list(v2.pair(v2.string, v2.vc)))"; var test_2 = "v2.string"; var test_3 = "v2.string()"; var test_4 = "v2.string(v2.map)"; var split_args = function (_str) { var delta = 0; var found = 0; for (var a = 0; a < _str.length; a++) { var char = _str[a]; switch (char) { case "(": delta++; break; case ")": delta--; break; case ",": found = delta == 0; break; } if (found) break; } if (found) { var left = _str.substring(0, a); var right = _str.substring(a + 1, _str.length); return [left, right] } return [_str]; }; var recursive = function (_str, _class, _alias) { var _id = _str.replace(" ", ""); var rx = /(.*?)\((.*)\)/im; var res = _id.match(rx); var _full_id = replace_type_def(_id); if(res == null) return helper.linkto(_full_id, (_alias ? _alias : _id), _class); //if (res == null) return _id; var first = res[1]; var second = res[2]; var result = helper.linkto(first, _alias, _class); //var result = first; if (second === "") return result; var args = split_args(second); result += "("; if (args[0]) result += recursive(args[0], _class); if (args[1]){ result += ", "; result += recursive(args[1], _class); } result += ")"; return result; }; var linkto = function (_id, _alias, _class) { return recursive(_id, _class, _alias); }; var replace_type_def = function(_ln){ var td = typedefs[_ln]; if(!td) return _ln; var link = td.type.names[0]; return link; } // старый кусок говна :D var replace_enters_to_br = function(_str){ // var out = _str; // while(out.match("\n")) out = out.replace("\n", "
"); return _str; }; module.exports = { linkto: linkto, replace_enters_to_br: replace_enters_to_br, replace_type_def: replace_type_def };