Ho lavorato su un altro linguaggio di golf basato su stack chiamato Stackgoat . In questa sfida dovrai scrivere un tokenizer per Stackgoat (o davvero qualsiasi linguaggio generale basato su stack).
Esempi
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
specificazione
I tre tipi che dovrai gestire sono:
- Stringhe, qualsiasi cosa all'interno
""
- Numeri, qualsiasi sequenza di cifre
- Operatori, qualsiasi altro singolo carattere oltre agli spazi bianchi
Lo spazio bianco viene essenzialmente ignorato a meno che non sia all'interno di una stringa o separa due numeri.
Specifiche stringa / carattere:
- Le stringhe sono delimitate da a
"
e quando\
si incontra a, il carattere successivo deve essere evitato. - I caratteri sono preceduti da a
'
e il carattere dopo che'
devono essere convertiti in una stringa letterale.'a
->"a"
'
avrà sempre un personaggio dopo di esso- Le virgolette di chiusura devono essere inserite automaticamente
Regole:
- Non
eval
è consentita alcuna forma di
Input Output:
- L'input può essere preso tramite STDIN, i parametri di funzione o l'equivalente della tua lingua.
- L'output dovrebbe essere un array o l'equivalente più vicino alla tua lingua.
'"PPCG"'
anziché solo "PPCG"
?