nl_tokens: / * Parses a single block . A block is a sequence of statements wrapped in braces .
pl_tokens: function block ( ordinary , stmt , isfunc ) { var a , b = inblock , old_indent = indent , m , s = scope , t , line , d ; inblock = ordinary ; if ( ! ordinary || ! option . funcscope ) scope = Object . create ( scope ) ; nonadjacent ( token , nexttoken ) ; t = nexttoken ; if ( nexttoken . id === '{' ) { advance ( '{' ) ; line = token . line ; if ( nexttoken . id !== '}' ) { indent += <mask> . indent ; while ( ! ordinary && nexttoken . from > indent ) { indent += option . indent ; } if ( isfunc ) { m = { } ; for ( d in directive ) { if ( is_own ( directive , d ) ) { m [ d ] = directive [ d ] ; } } directives ( ) ; if ( option . strict && funct [ '(context)' ] [ '(global)' ] ) { if ( ! m [ "use strict" ] && ! directive [ "use strict" ] ) { warning ( "Missing \"use strict\" statement." ) ; } } } a = statements ( line ) ; if ( isfunc ) { directive = m ; } indent -= option . indent ; if ( line !== nexttoken . line ) { indentation ( ) ; } } else if ( line !== nexttoken . line ) { indentation ( ) ; } advance ( '}' , t ) ; indent = old_indent ; } else if ( ! ordinary ) { error ( "Expected '{a}' and instead saw '{b}'." , nexttoken , '{' , nexttoken . value ) ; } else { if ( ! stmt || option . curly ) warning ( "Expected '{a}' and instead saw '{b}'." , nexttoken , '{' , nexttoken . value ) ; noreach = true ; indent += option . indent ; // test indentation only if statement is in new line a = [ statement ( nexttoken . line === token . line ) ] ; indent -= option . indent ; noreach = false ; } funct [ '(verb)' ] = null ; if ( ! ordinary || ! option . funcscope ) scope = s ; inblock = b ; if ( ordinary && option . noempty && ( ! a || a . length === 0 ) ) { warning ( "Empty block." ) ; } return a ; }