Syntax is a minor issue but something that people are very opinionated about. You could technically build multiple front ends that share the typechecking, CFG validation, optimization, register allocation and byte code emission phases. But it is too much work for what is presently a personal project.
also:
https://github.com/BaseMax/AwesomeInterpreter
and probably there is one for compilers too.