Estive trabalhando outra linguagem de golfe baseada pilha chamada Stackgoat . Neste desafio, você escreverá um Tokenizer para Stackgoat (ou realmente qualquer linguagem geral baseada em pilha).
Exemplos
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
Especificação
Os três tipos com os quais você precisará lidar são:
- Strings, qualquer coisa dentro
""
- Números, qualquer sequência de dígitos
- Operadores, qualquer outro caractere único, além de espaço em branco
O espaço em branco é essencialmente ignorado, a menos que esteja dentro de uma string ou separe dois números.
Especificação de string / caractere:
- As cadeias são delimitadas por a
"
e quando um\
é encontrada, o próximo caractere deve ser escapado. - Os caracteres são precedidos por ae
'
o caractere após'
deve ser convertido em uma string literal.'a
->"a"
'
sempre terá um personagem depois- As aspas finais devem ser inseridas automaticamente
Regras:
- Nenhuma forma de
eval
é permitida
Entrada / Saída:
- A entrada pode ser obtida através de STDIN, parâmetros de função ou equivalente do seu idioma.
- A saída deve ser uma matriz ou o equivalente mais próximo do seu idioma.
'"PPCG"'
vez de apenas "PPCG"
?