소스 텍스트, 토큰, 리더

리더는 고정된 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 같은 기수·정확성 접두사는 현재 프로필 밖입니다.

현재 경계

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

다음으로

읽은 뒤 무엇이 일어나는지는 평가 순서에서, 허용되는 모든 토큰 형태는 리더 문법에서 이어집니다.

평가 순서 · 리더 문법