正在做个 ycmd 前端,要解析 ycmd 的代码完成返回,假设有如下返回( cpp ,想了个较复杂的)
const foo::bar::cls * foo::bar::func<T1, T2>( const foo::bar::t1 * p1, const foo::bar::t1 * p2 ) const
需要提取出
return: const foo::bar::cls *
class: foo::bar (func 前的)
text: func<T1, T2>( const foo::bar::t1 * p1, const foo::bar::t1 * p2 )
snippet: func<${1:T1}, ${2:T2}>( ${3:const foo::bar::t1 * p1}, ${4:const foo::bar::t1 * p2} )
请问:如何优雅的用 javascript 解析。
我现在的做法是自己倒着逐字符判断提取,总感觉不够优雅。
PS :有没有可能把类构造声明能一起,就是 return,和 () 内可选