Pracowałem nad innym językiem gry w golfa o nazwie Stackgoat . W tym wyzwaniu będziesz pisać Tokenizera dla Stackgoat (lub tak naprawdę innych ogólnych języków opartych na stosie).
Przykłady
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
Specyfikacja
Trzy typy, z którymi musisz sobie poradzić to:
- Ciągi, wszystko w środku
""
- Liczby, dowolna sekwencja cyfr
- Operatory, każdy inny pojedynczy znak oprócz białych znaków
Białe znaki są zasadniczo ignorowane, chyba że znajdują się w ciągu znaków lub nie rozdzielają dwóch liczb.
Specyfikacja string / char:
- Ciągi są rozdzielane znakiem a
"
, a po\
napotkaniu znaku należy uciec do następnego znaku. - Znaki są poprzedzane przez a,
'
a po nim znak'
należy przekształcić w literał łańcuchowy.'a
->"a"
'
zawsze będzie po nim miała postać- Cytaty końcowe powinny być wstawiane automatycznie
Zasady:
- Żadna forma nie
eval
jest dozwolona
Wejście wyjście:
- Dane wejściowe można pobierać poprzez STDIN, parametry funkcji lub odpowiednik języka.
- Wynik powinien być tablicą lub najbliższym odpowiednikiem twojego języka.
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
źródło
źródło
'"PPCG"'
zamiast po prostu"PPCG"
?Odpowiedzi:
Retina ,
686463 bajtówlub
Myślę, że obejmuje to wszystkie funky Edge, nawet te nieobjęte testami w wyzwaniu.
Wypróbuj online!
źródło
Rubinowy, 234 bajty
Próbowałem użyć
find(&:itself)
sztuczki, którą widziałem ... gdzieś, ale najwyraźniej.itself
tak naprawdę nie jest to metoda. Pracuję też nad golfem wyrażenia regularnego, ale jest to już nieczytelne.Jeśli nie musimy wyprowadzać danych w żaden fantazyjny sposób (tzn. Ciągi nie muszą być cytowane w tablicy), mogę zapisać całe bajty lotta:
Still Ruby, 194 bajty:
Jestem pewien, że mogę grać w golfa bardziej, ale nie jestem pewien, jak to zrobić.
Niedoszły wkrótce. W pewnym momencie zacząłem majstrować przy golfie i będę musiał się z nim drażnić.
źródło
Python 3, 228 bajtów
Oto ładny, długi, dwuwarstwowy.
Przetestuj to w Pythonie 3. Oto kilka przykładów:
źródło