Ответ 1
Короткий ответ:
Вы не можете сделать это в LOLCODE 1.2.
Длинный ответ:
Поскольку нет функций YARN
манипуляции и нет способа сделать a YARN
чем-то вроде BUKKIT
в предлагаемой спецификации 1.3 (после чего мы могли бы моделировать строку как символ BUKKIT
), невозможно извлечь номера из такой строки.
Используя только спецификацию 1.2, мы все равно можем сделать эту работу, я думаю...
Так как конкатенация строк уже существует в 1.2 как SMOOSH ... MKAY
, теоретически вы могли бы зарезервировать переменные str01
через str99
, а затем...
IM IN YR readloop UPPIN YR throwawayvariable WILE BOTH OF NOT broken AN DIFFRINT currentyarn AN STRINGY
str01, WTF?
OMG "Z"
str99 R str98
str98 R str97
str97 R str96
...
str02 R str01
str01 R ""
GTFO
OMG "Y"
str01 R "Z";
GTFO
OMG "X"
str01 R "Y";
GTFO
...
OMG "0"
str01 R "1";
GTFO
OMG ""
str01 R "0"
GTFO
OMGWTF
I HAS A ERRORMSG
ERRORMSG R SMOOSH "I DUNNO WAT U SAY, illegal character", str01 MKAY
VISIBLE ERRORMSG
broken R WIN
GTFO
OIC
currentyarn R SMOOSH str01, str02, str03, str04, ..., str98, str99 MKAY
IM OUTTA YR readloop
Затем, получив NUMBRs...
NOT broken, O RLY? YA RLY
yarnnumber R ""
done R FAIL
IM IN YR parseloop UPPIN YR otherthrowaway WILE NOT done
EITHER OF BOTH SAEM str01 AN " " AN BOTH SAEM str01 AN "", O RLY? YA RLY
number1 R 0
DIFFRINT yarnnumber AN "", O RLY? YA RLY
number1 R MAEK yarnnumber A NUMBR
OIC
done R WIN
MEBBE DIFFRINT str01 AN ""
yarnnumber R SMOOSH yarnnumber, str01 MKAY
OIC
str01 R str02
str02 R str03
str03 R str04
...
str98 R str99
str99 R ""
IM OUTTA YR parseloop
yarnnumber R ""
done R FAIL
IM IN YR parseloop2 UPPIN YR otherthrowaway2 WILE NOT done
EITHER OF BOTH SAEM str01 AN " " AN BOTH SAEM str01 AN "", O RLY? YA RLY
number2 R 0
DIFFRINT yarnnumber AN "", O RLY? YA RLY
number2 R MAEK yarnnumber A NUMBR
OIC
done R WIN
MEBBE DIFFRINT str01 AN ""
yarnnumber R SMOOSH yarnnumber, str01 MKAY
OIC
str01 R str02
str02 R str03
str03 R str04
...
str98 R str99
str99 R ""
IM OUTTA YR parseloop2
OIC
И, наконец, что вы хотели с ними делать.
I HAZ A result
result R SUM OF number1 AN number2
VISIBLE result
Для ...
заполните остальные инструкции, которые используют переменные str##
.
Если вы собираетесь использовать это, я рекомендую использовать что-то для создания LOLCODE для вас, писать это вручную просто невозможно. Особенно, если вам нужно поддерживать более длинные строки ввода, например, 255 или 1024 символа.