PS: I remove the signNumber function because it becomes messy when trying to create binary operator tokens.