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
eval
yang 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"
?