code: func (p *parser) parseInverse() *ast.BlockStatement {
  	// openInverse
  	result, blockParams := p.parseOpenBlock()
  
  	// program
  	program := p.parseProgram()
  
  	program.BlockParams = blockParams
  	result.Inverse = program
  
  	// inverseAndProgram?
  	if p.isInverse() {
  		result.Program = p.parseInverseAndProgram()
  	}
  
  	// closeBlock
  	p.parseCloseBlock(result)
  
  	setBlockInverseStrip(result)
  
  	return result
  }
docs: // block : openInverse program inverseAndProgram? closeBlock