In bioinformatics, long character strings are often encoded in a format called FASTA.

A FASTA file can contain several strings, each identified by a name marked by a > (greater than) character at the beginning of the line.



Task

Write a program that reads a FASTA file such as:

>Rosetta_Example_1
THERECANBENOSPACE
>Rosetta_Example_2
THERECANBESEVERAL
LINESBUTTHEYALLMUST
BECONCATENATED


Output:
Rosetta_Example_1: THERECANBENOSPACE
Rosetta_Example_2: THERECANBESEVERALLINESBUTTHEYALLMUSTBECONCATENATED

Note that a high-quality implementation will not hold the entire file in memory at once; real FASTA files can be multiple gigabytes in size.




class Fasta {
  function : Main(args : String[]) ~ Nil {
    if(args->Size() = 1) {
      is_line := false;
      tokens := System.Utility.Parser->Tokenize(System.IO.File.FileReader->ReadFile(args[0]))<String>;
      each(i : tokens) {
          token := tokens->Get(i);
          if(token->Get(0) = '>') {
            is_line := true;
            if(i <> 0) {
              "\n"->Print();
            };
          } 
          else if(is_line) {
            "{$token}: "->Print();
            is_line := false;
          }
          else {
            token->Print();
          };
        };
      };
    };
  }
}
 