나는 작업을했습니다 다른 호출 스택 기반의 골프 언어 Stackgoat . 이 과제에서는 Stackgoat (또는 실제로는 일반적인 스택 기반 언어) 용 Tokenizer를 작성하게됩니다.
예
"PPCG"23+
["PPCG", '23', '+']
'a "bc" +
['"a"', '"bc"', '+']
12 34+-"abc\"de'fg\\"
['12', '34', '+', '-', '"abc\"de'fg\\"']
"foo
['"foo"']
(empty input)
[]
' ""
['" "', '""']
사양
처리해야 할 세 가지 유형은 다음과 같습니다.
- 문자열, 아무것도 내
""
- 숫자, 모든 자릿수
- 연산자, 공백 이외의 다른 단일 문자
공백은 문자열 내에 있거나 두 숫자를 분리하지 않으면 본질적으로 무시됩니다.
문자열 / 문자 사양 :
- 문자열은로 구분됩니다
"
하고,이 때\
발생, 다음 문자는 이스케이프해야합니다. - 문자 앞에 a가 붙어 있고
'
뒤에 나오는 문자'
는 문자열 리터럴로 변환되어야합니다.'a
->"a"
'
항상 그 뒤에 문자가 있습니다- 닫는 따옴표는 자동 삽입되어야합니다
규칙 :
- 어떤 형태
eval
도 허용 되지 않습니다
입출력:
- STDIN, 함수 매개 변수 또는 해당 언어를 통해 입력 할 수 있습니다.
- 출력은 배열이거나 해당 언어와 가장 비슷한 것이어야합니다.
5
@Doorknob, 진심으로?
—
LegionMammal978
@ LegionMammal978 그렇습니다.
—
Alex A.
STDOUT으로 출력 할 수 있습니까?
—
Doorknob
@ZachGates 예, 대부분의 언어는 \를 이스케이프 문자로 취급하므로 언어가 분명히 필요한 경우 이스케이프해야합니다.
—
Downgoat
또한, 제 실시 예에서, 결과의 첫 번째 요소가되어야
—
기금 모니카의 소송
'"PPCG"'
대신으로 "PPCG"
?