이 섹션에는 전체 Q 언어 문법이 나열되어 있습니다. 토큰 구조는 렉시칼 요소를 참조하십시오.
다음 테이블에 문법의 프리젠테이션에 사용되는 인쇄 규정에 대한 요약이 표시되어 있습니다.
: expr
: expr′
| expr′ |= expr′
: implies-expr | let-expr | if-expr | universal-expr | existential-expr
: let ID = expr in expr′
: if expr then expr else expr′
: for_all ID in expr = expr′
: there_exists ID in expr = expr′
: or-expr | or-expr implies implies-expr
: and-expr | or-expr or and-expr
: relational-expr | and-expr and relational-expr
: additive-expr | additive-expr = additive-expr | additive-expr <> additive-expr | additive-expr ~= additive-expr | additive-expr ~<> additive-expr | additive-expr < additive-expr | additive-expr <= additive-expr | additive-expr > additive-expr | additive-expr = additive-expr
: multiplicative-expr | additive-expr + multiplicative-expr | additive-expr - multiplicative-expr
: unary-expr | multiplicative-expr * unary-expr | multiplicative-expr / unary-expr
: primary-expr | - unary-expr | not unary-expr
: constant
| $ ID
| $ ID of primary-expr
| map { expr } over primary-expr
| filter { expr } over primary-expr
| traverse { expr } over primary-expr
| sort-expr
| ID primary-expr
| conversion-expr
| parenthesized-expr
| path
: REGEXP_LITERAL | STRING_LITERAL | INTEGER_LITERAL | REAL_LITERAL | BOOLEAN_LITERAL
: sort-component ( & sort-component )* over primary-expr
: sort-direction { expr }
: sort | sortd
: conversion-operator primary-expr
: string | integer | real | boolean
: ( ) | ( expr ) | ( expr (, expr )+ )
: anchor
| anchor -association-chain
| association-chain
: this | current | model | ID
: simple-association ( -simple-association )* [ association-chain-tail ]
: [ ID : ] [^] ASSOC_LITERAL [ { expr } ]
: -reference-association | -composite-association
: @ ID
: ( component-association ( ; component-association )+ )
: reference-association | association-chain