이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 : 문서 : 17 : 50.3. 파서 스테이지버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

46.3.

theParser Stage두 가지로 구성됩니다

  • the파서정의gram.yandscan.lisBisonandFlex.

  • the변환 과정

46.3.1.

파서는 쿼리 문자열을 확인해야합니다 (일반으로 도착합니다.Parse Tree가 세워져 나눠졌습니다. 그렇지 않으면BisonandFlex.

theLexer파일에 정의되어 있습니다scan.l인식의 책임식별자, TheSQL등. 발견 된 모든 키워드 또는 식별자에 대해토큰가 생성되어

파서는 파일에 정의되어 있습니다gram.y세트로 구성문법 규칙andAction규칙이 해고 될 때마다 실행됩니다. 행동의 코드

파일scan.lscan.c프로그램 사용Flexandgram.y|gram.c사용Bison. 이러한 변형 후Flex또는Bison호출.

참고 :언급 된 변환 및 편집은 다음과 같습니다makefilesPostgreSQL소스 배포.

자세한 설명Bison또는 문법 규칙gram.y이 백서의 범위를 벗어납니다. 많은 책이 있습니다FlexandBison. 당신은 익숙해야합니다Bison공부를 시작하기 전에gram.y그렇지 않으면 당신

46.3.2.

파서 스테이지는 고정 규칙 만 사용하여 구문 분석 트리를 만듭니다.변환파서에 의해 트리를 입력으로 가져옵니다.쿼리 트리.

시맨틱 분석에서 원시 파싱을 분리하는 이유는시작, 롤백등) 및select또는업데이트), 우리가 거래를 시작해도 괜찮습니다.

변환 프로세스에 의해 생성 된 쿼리 트리는 다음과 같습니다funccall구문 분석 트리의 노드는 나타납니다funcexpr또는aggref