modificado: scanner.l