identifier names can include @ and $
detect encoding