nl_tokens: / * Gets node of an AST which path
pl_tokens: function getNode ( ast , path ) { if ( path . length ) { if ( ast . tag === MAP_TAG ) { let value = ast . value ; for ( let i = 0 ; i < value . length ; ++ i ) { let [ keyNode , valNode ] = value [ i ] ; if ( path [ 0 ] === keyNode . value ) { return getNode ( valNode , path . <mask> ( 1 ) ) ; } } return undefined ; } else if ( ast . tag === SEQ_TAG ) { return ast . value [ path [ 0 ] ] && getNode ( ast . value [ path [ 0 ] ] , path . slice ( 1 ) ) ; } } return ast ; }