구두점 기호는 다음과 같습니다.
= <> ~= ~<> < <= > >= + - * / -> ( ) { } [ ] " => |=> , $
ID는 문자 또는 밑줄 뒤의 여러 문자, 숫자 또는 밑줄로 구성됩니다. ID는 대소문자를 구분합니다.
키워드는 다음과 같습니다. 변수 또는 함수 이름으로 키워드를 사용할 수 없습니다.
| and | in | real |
| 부울 | integer | sort |
| current | let | string |
| else | map | then |
| false | model | there_exists |
| filter | not | this |
| for_all | of | traverse |
| if | or | true |
| implies | over |
정수 리터럴은 선택적 빼기 부호 뒤에 하나 이상의 10진수 숫자로 구성됩니다.
실수 리터럴은 선택적 빼기 부호 뒤에 하나 이상의 10진수 숫자, 소수점 및 하나 이상의 10진수 숫자로 구성됩니다.
부울 리터럴은 true 및 false입니다.
연관 리터럴은 기본적으로 따옴표 대신 대괄호([])를 사용하는 문자열 리터럴입니다. 시퀀스 \]는 닫기 구분 기호를 이스케이프합니다.
문자열 리터럴은 따옴표로 묶인 문자의 시퀀스입니다. 행 전체에서 문자열을 확장할 수 없습니다(즉, 문자열에 이스케이프되지 않은 줄 바꾸기를 포함할 수 없음). 지원되는 이스케이프 시퀀스는 다음 표에 나열되어 있습니다.
정규식 리터럴은 강세표로 묶인 문자 시퀀스입니다. 정규식 리터럴의 여러 문자에는 특수한 의미가 있습니다. 이러한 문자에 역슬래시가 없는 한 특수한 의미가 포함됩니다. 특수 문자는 ., \, [, ], ?, *, +, ^, 및 $입니다. 정규식 리터럴에 문자 이스케이프 시퀀스를 포함할 수 있습니다. 허용되는 이스케이프 시퀀스는 \t, \r, \n 및 \xdd이며, 탭, 캐리지 리턴, 줄 바꾸기 및 16진수 dd와 동일한 ASCII 코드가 있는 문자를 의미합니다.
정규식에 반복 구조가 있습니다. 이는 더 작은 하위 표현식으로부터 형성됩니다. 모든 정규식의 빌딩 블록은 단일 문자를 일치시키기 위한 표현식입니다. 이러한 기본 표현식에 다음과 같은 세 가지 양식이 있습니다.
이러한 빌딩 블록에서 다음과 같은 방법으로 더 큰 정규식을 형성할 수 있습니다.
전체 정규식을 ^ 및 $가 포함된 문자열의 시작 또는 끝에 각각 앵커할 수 있습니다. re가 정규식이면 re는 문자열 시작에서 발생하는 경우에만 re로 일치 가능한 모든 문자열과 일치하는 정규식입니다. 마찬가지로, re$는 문자열 끝에서 발생하는 경우에만 re로 일치 가능한 모든 문자열과 일치하는 정규식입니다. 예를 들어, `^[01]+`는 a0 또는 a0110이 아닌 0 및 0110과 일치하며 `[01]+$`는 0a 또는 0110a가 아닌 0 및 0110과 일치합니다.