nl_tokens: walk through nodes
pl_tokens: function walk ( node , parent , ctx ) { if ( ! node ) { return } node . parent = parent // walk each node if array if ( util . isArray ( node ) ) { return node . forEach ( function ( node ) { walk ( node , parent , ctx ) } ) } // visit each node depending on its type switch ( node . type ) { case T . MODULE : visitModule ( node , parent , ctx ) break case T . SPECIAL_PLACEHOLDER : visitSpecialPlaceholder ( node , parent , ctx ) break case T . SEXPR : visitSexpr ( node , parent , ctx ) break case T . ARRAY : visitArray ( node , parent , ctx ) break case T . PROPERTY : visitProperty ( <mask> , parent , ctx ) break case T . OBJECT : visitObject ( node , parent , ctx ) break case T . JSBLOCK : visitJSBlock ( node , parent , ctx ) break case T . NIL : visitNil ( node , parent , ctx ) break case T . STRING : visitString ( node , parent , ctx ) break case T . KEY_IDENT : visitKeyIdent ( node , parent , ctx ) break case T . IDENT : visitIdent ( node , parent , ctx ) break case T . REGEXP : visitRegexp ( node , parent , ctx ) break case T . NUMBER : case T . BOOLEAN : case T . LITERAL : visitLiteral ( node , parent , ctx ) } }