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.
code-golf
parsing
code-golf
hexagonal-grid
code-golf
string
code-golf
string
code-golf
combinatorics
code-golf
ascii-art
code-golf
string
game
counting
code-golf
arithmetic
complex-numbers
code-golf
string
code-golf
decision-problem
hexagonal-grid
code-golf
string
sequence
code-golf
number
arithmetic
code-golf
ascii-art
code-golf
ascii-art
code-golf
string
arithmetic
code-golf
number
simulation
code-golf
number
arithmetic
code-golf
string
sequence
unicode
code-golf
string
ascii-art
balanced-string
code-golf
number
clock
code-golf
ascii-art
number
code-golf
math
number
sequence
code-golf
string
ascii-art
balanced-string
code-golf
math
string
popularity-contest
graphical-output
image-processing
code-golf
string
permutations
code-golf
string
code-golf
random
code-golf
string
cryptography
palindrome
code-golf
chess
code-golf
math
array-manipulation
topology
code-golf
math
sequence
code-golf
keyboard
classification
code-golf
string
sequence
code-golf
natural-language
code-golf
math
number
sequence
sorting
code-golf
sequence
combinatorics
grid
tic-tac-toe
code-golf
geometry
code-golf
number
restricted-source
new-years
expression-building
Downgoat
la source
la source
'"PPCG"'
il être au lieu de juste"PPCG"
?Réponses:
Rétine ,
686463 octetsou
Je pense que cela couvre tous les cas funky edge, même ceux qui ne sont pas couverts par les cas de test du défi.
Essayez-le en ligne!
la source
Rubis, 234 octets
J'ai essayé d'utiliser l'
find(&:itself)
astuce que j'ai vue ... quelque part, mais ce.itself
n'est apparemment pas une méthode. En outre, je travaille sur le regex, mais c'est déjà illisible.Si nous n'avons pas besoin de sortir de façon fantaisiste (c'est-à-dire que les chaînes n'ont pas à être citées dans le tableau), je peux enregistrer un grand nombre d'octets:
Still Ruby, 194 octets:
Je suis sûr que je peux jouer au golf plus, mais je ne sais pas trop comment.
Ungolfed arrive bientôt. J'ai commencé à jouer avec le golf directement à un moment donné et je vais devoir le taquiner.
la source
Python 3, 228 octets
Voici une belle, longue doublure.
Testez-le en Python 3. Voici quelques exemples:
la source