Ignore an incorrect warning from Clang

* Type of aa and bb should be char16_t*.
  Clang probably does not detect correctly the code path
  because of the std::is_same<C, char16_t>::value.
* Fix #130.
Merge pull request #132 from eregon/fix_clang_warning_tautological

Ignore an incorrect warning from Clang
Fix the Clang warning by a better approach: use template specialization

* This adds some minor duplication of trivial code
  but give us a cleaner compile-time check.
Merge pull request #133 from eregon/fix_clang_warning_tautological

Fix the Clang warning by a better approach: use template specialization
Fixes handling of EOF in the compiler

Fixes #127
Fixes #93
Merge pull request #134 from yjaradin/fixParser

Fixes handling of EOF in the compiler