general tokenizer/scanner in Go