Saya telah bekerja di lain tumpukan berbasis bahasa golf disebut Stackgoat . Dalam tantangan ini Anda akan menulis Tokenizer untuk Stackgoat (atau benar-benar bahasa berbasis stack umum).
Contohnya
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
Spesifikasi
Tiga jenis yang perlu Anda tangani adalah:
- String, apa pun di dalamnya
"" - Bilangan, urutan angka apa pun
- Operator, karakter tunggal lainnya selain spasi putih
Whitespace pada dasarnya diabaikan kecuali dalam string atau memisahkan dua angka.
String / spesifikasi char:
- String dibatasi oleh a
", dan ketika\ditemui, karakter selanjutnya harus melarikan diri. 'Karakter diawali dengan a dan karakter setelah'harus dikonversi menjadi string literal.'a->"a"'akan selalu memiliki karakter setelahnya- Kutipan penutup harus dimasukkan secara otomatis
Aturan:
- Tidak ada bentuk
evalyang diizinkan
Input output:
- Input dapat diambil melalui STDIN, parameter fungsi, atau yang setara dengan bahasa Anda.
- Output harus berupa array atau padanan terdekat bahasa Anda.
'"PPCG"'bukannya adil "PPCG"?