ฉันได้รับการทำงานในอีกภาษากอล์ฟสแต็คที่เรียกว่าStackgoat ในการท้าทายนี้คุณจะต้องเขียน Tokenizer สำหรับ Stackgoat (หรือภาษาที่ใช้กองซ้อนทั่วไป)
ตัวอย่าง
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
สเปค
สามประเภทที่คุณต้องจัดการคือ:
- เงื่อนไขอะไรภายใน
"" - ตัวเลขลำดับของตัวเลขใด ๆ
- ผู้ประกอบการตัวละครอื่น ๆ นอกเหนือจากช่องว่าง
ช่องว่างจะถูกละเว้นเป็นหลักเว้นแต่ว่ามันจะอยู่ในสตริงหรือแยกตัวเลขสองตัว
สตริง / อักขระถ่าน:
- สตริงถูกคั่นด้วย a
"และเมื่อ\พบa อักขระตัวถัดไปควรถูกหลีกเลี่ยง - ตัวอักษรจะถูกเติมหน้าโดย a
'และตัวอักษรหลังจากที่'ควรจะถูกแปลงเป็นตัวอักษรสตริง'a->"a" 'จะมีตัวละครอยู่เสมอ- ควรปิดการเสนอราคาปิดอัตโนมัติ
กฎ:
- ไม่
evalอนุญาตให้ใช้รูปแบบ
อินพุต / เอาต์พุต:
- สามารถป้อนข้อมูลผ่าน STDIN พารามิเตอร์ฟังก์ชันหรือเทียบเท่าภาษาของคุณ
- ผลลัพธ์ควรเป็นอาร์เรย์หรือภาษาที่ใกล้เคียงที่สุดของคุณ
'"PPCG"'แทนที่จะเป็นเพียงแค่"PPCG"?