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
evalse 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"?