# Functions
NewFileOrReader tries to open a file if a non empty filename is passed as a parameter, otherwise a reader passed as the first argument is to be read and copied in a buffer that is returned.
NewScanner instantiates a new Scanner from an io.Reader and output.Device.