some refactorings

- use switch statements
- improve character_literal::to_string()
skip comments

    # a line comment till the end of line
    # a block comment put between '#'s