newline fix
token now returns length of string as second return value
removed is_semi implementation