grouping

구획

나루 위키
둘러보기로 가기 검색하러 가기

구획은 1차원의 토큰열에 시작과 끝을 지정해 2차원적인 구조를 부여하는데 사용되는 토큰이다.

구획은 1개 이상의 똑같은 여는 구획 문자닫는 구획 문자만으로 이루어져 있다. 각 문자에는 대응하는 구획 문자쌍이 존재해야 하며, 같은 갯수의 여는 구획 문자와 대응되는 닫는 구획 문자로 이루어진 두 구획이 쌍을 이룬다.

  • ()는 서로 쌍이다. (로 열고 )로 닫는다. (이하 상동)
  • <>는 서로 쌍이 아니다.
  • [[]]는 서로 쌍이다.
  • (((]]]는 서로 쌍이 아니다.
  • ([((는 하나의 구획이 아닌 세 개의 구획 (, [, ((이다.
  • U+3008 와 U+3009 는 서로 쌍이다.
  • U+FD3F ﴿와 U+FD3E 는 각각 여닫는 구획 문자임에도 서로 쌍이 아니다. 이들은 기호로도 쓰일 수 없다.

구획은 항상 여는 구획과 닫는 구획이 쌍으로 나와야 하며, 그렇지 않으면 토큰화 과정에서 오류가 발생한다.

기본 문법

나루는 다음 구획쌍을 기본으로 지원한다.

구획쌍 홀로 표현식으로 쓰일 때 표현식 뒤에서 쓰일 때
소괄호 (expr) expr(expr)
중괄호 {stmt} expr{typeexpr}
대괄호 [collexpr] expr[expr]
이중 대괄호 [[attrexpr]] (사용 불가, 항상 오류)