nl_tokens: 解析入口函数
pl_tokens: function ( asts , contextId ) { var str = '' ; asts = asts || this . asts ; if ( contextId ) { if ( contextId !== this . condition && utils . indexOf ( contextId , this . conditions ) === - 1 ) { this . conditions . unshift ( contextId ) ; } this . condition = contextId ; } else { this . condition = null ; } utils . forEach ( asts , function ( ast ) { // 进入stop，直接退出 if ( this . _state . <mask> === true ) { return false ; } switch ( ast . type ) { case 'references' : str += this . format ( this . getReferences ( ast , true ) ) ; break ; case 'set' : this . setValue ( ast ) ; break ; case 'break' : this . _state . break = true ; break ; case 'macro_call' : str += this . getMacro ( ast ) ; break ; case 'comment' : break ; case 'raw' : str += ast . value ; break ; default : str += typeof ast === 'string' ? ast : this . getBlock ( ast ) ; break ; } } , this ) ; return str ; }