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