소스 텍스트, 토큰, 리더

리더는 고정된 UTF-8 S-표현식 문법을 받습니다. 정규화가 시작되기 전에 리더 단계 진단을 결정적으로 냅니다.

언제 필요한가요?

평가가 시작되기도 전에 소스가 거부될 때, 또는 괄호가 호출인지 데이터인지 헷갈릴 때 이 페이지부터 보세요. 리더가 정하는 것은 철자와 구조뿐입니다. 이 단계에서는 아직 아무것도 계산하지 않습니다.

실행으로 확인하기

LISPEX
'(alpha 1 2/3 #u8(4 5))

관측 결과

OUTPUT
(alpha 1 2/3 #u8(4 5))

예제 읽기

맨 앞의 인용 부호가 폼 전체를 데이터로 남깁니다. 리더는 심볼과 정수, 유리수, 바이트벡터를 하나씩 알아봅니다. 다만 그중 어느 것도 호출하거나 계산하지는 않습니다. 인용 부호를 빼면 alpha가 프로시저 위치에 놓입니다.

이 순서로 생각하세요

  • 정수와 유리수, 실수의 토큰 문법은 서로 겹치지 않습니다. 선행 0이 붙은 표기와 비유한 수 표기는 거부됩니다.
  • 리스트와 점쌍, 벡터, 바이트벡터, 문자열, 문자, 인용, 준인용, 주석은 표기 형식이 고정되어 있습니다.
  • 리더 실패는 소스 범위를 담은 E1xx 진단으로 나옵니다. 잘못된 UTF-8은 호출 경계에서 거부됩니다.

빠르게 고르기

원하는 값표기리더가 만드는 것
이름alpha나중에 조회될 수 있는 심볼 토큰
텍스트"alpha"불변 문자열
데이터인 올바른 리스트'(alpha 1)()로 끝나는 인용된 쌍 사슬
데이터인 점쌍'(alpha . 1)꼬리가 1인 쌍 하나
인덱스 값#(1 2)벡터
바이트#u8(1 2)불변 바이트벡터

흔한 오해

#x, #e 같은 기수·정확성 접두사는 현재 프로필 밖입니다.

현재 경계

  • 언어는 줄바꿈이나 경로, 호스트 인코딩을 몰래 정규화하지 않습니다.

다음으로

읽기가 끝난 뒤에 무슨 일이 일어나는지는 평가 순서에서 이어집니다. 허용되는 토큰 형태를 전부 보려면 리더 문법을 여세요.

평가 순서 · 리더 문법