He estado trabajando en otro lenguaje de golf basado en pila llamado Stackgoat . En este desafío, escribirás un Tokenizer para Stackgoat (o realmente cualquier lenguaje general basado en pila).
Ejemplos
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
Especificación
Los tres tipos que necesitará manejar son:
- Cuerdas, cualquier cosa dentro
""
- Números, cualquier secuencia de dígitos
- Operadores, cualquier otro caracter aparte del espacio en blanco
El espacio en blanco se ignora esencialmente a menos que esté dentro de una cadena o separe dos números.
String / char spec:
- Las cadenas están delimitadas por a
"
, y cuando\
se encuentra a, se debe escapar al siguiente carácter. - Los caracteres están precedidos por a
'
y el carácter después del'
debe convertirse en un literal de cadena.'a
->"a"
'
siempre tendrá un personaje después- Las comillas de cierre deben insertarse automáticamente
Reglas:
- No
eval
se permite ninguna forma de
De entrada y salida:
- La entrada se puede tomar a través de STDIN, parámetros de función o el equivalente de su idioma.
- La salida debe ser una matriz o el equivalente más cercano de su idioma.
'"PPCG"'
lugar de justo "PPCG"
?