J'ai travaillé sur un autre langage de golf basé sur la pile appelé Stackgoat . Dans ce défi, vous allez écrire un Tokenizer pour Stackgoat (ou vraiment n'importe quel langage général basé sur la pile).
Exemples
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
spécification
Les trois types que vous devrez gérer sont:
- Cordes, n'importe quoi à l' intérieur
""
- Numéros, n'importe quelle séquence de chiffres
- Opérateurs, tout autre caractère en plus des espaces
Les espaces sont essentiellement ignorés, sauf s'ils se trouvent dans une chaîne ou séparent deux nombres.
Spécification chaîne / caractère:
- Les chaînes sont délimitées par un
"
, et quand un\
est rencontré, le caractère suivant doit être échappé. - Les caractères sont précédés d'un
'
et le caractère après le'
doit être converti en un littéral de chaîne.'a
->"a"
'
aura toujours un caractère après- Les guillemets de clôture doivent être insérés automatiquement
Règles:
- Aucune forme de
eval
n'est autorisée
Entrée sortie:
- L'entrée peut être effectuée via STDIN, les paramètres de fonction ou l'équivalent de votre langue.
- La sortie doit être un tableau ou l'équivalent le plus proche de votre langue.
'"PPCG"'
il être au lieu de juste "PPCG"
?