Broke out appendChar to separate method so the parser can be used with other things such as TCP