parser excercise. points:
- statements can span across lines but they always be terminated by a semicolon ";".
- the optional command line arguments can be 0 to N filenames that will be parsed in order, then the standard input (both console or pipe) will be evaluated except in case of setting at least 1 filename as "-" (command line argument).