theParser Stage두 부분으로 구성됩니다.
the토토 사이트 추천정의gram.y
andscan.l
UNIX 도구를 사용하여 구축되었습니다BisonandFlex.
the변환 과정토토 사이트 추천가 반환 한 데이터 구조를 수정 및 확대합니다.
토토 사이트 추천는 유효한 구문에 대해 쿼리 문자열 (일반 텍스트로 도착)을 확인해야합니다. 구문이 올바른 경우 aParse Tree가 세워져 나눠졌습니다. 그렇지 않으면 오류가 반환됩니다.BisonandFlex.
theLexer파일에 정의되어 있습니다scan.l
인식의 책임식별자, TheSQL 키워드등. 발견 된 모든 키워드 또는 식별자에 대해 A토큰생성되어 토토 사이트 추천에게 건네집니다.
토토 사이트 추천는 파일에 정의되어 있습니다gram.y
세트로 구성문법 규칙andAction규칙이 해고 될 때마다 실행됩니다. 동작 코드 (실제로 C 코드)는 구문 분석 트리를 구축하는 데 사용됩니다.
파일scan.l
C 소스 파일로 변환scan.c
프로그램 사용Flexandgram.y
gram.c
사용Bison. 이러한 변환이 발생한 후 정상적인 C 컴파일러를 사용하여 토토 사이트 추천를 생성 할 수 있습니다.Flex또는Bison호출.
언급 된 변환 및 편집은 일반적으로를 사용하여 자동으로 수행됩니다.makefilesPostgreSQL소스 배포.
자세한 설명Bison또는 문법 규칙gram.y
이 매뉴얼의 범위를 벗어납니다. 다루는 많은 책과 문서가 있습니다FlexandBison. 당신은 익숙해야합니다Bison당신이 주어진 문법을 공부하기 전에gram.y
그렇지 않으면 거기에서 무슨 일이 일어나는지 이해하지 못할 것입니다.
토토 사이트 추천 스테이지는 SQL의 구문 구조에 대한 고정 규칙 만 사용하여 구문 분석 트리를 만듭니다. 시스템 카탈로그에서 조회하지 않으므로 요청 된 작업의 상세한 의미를 이해할 가능성이 없습니다.변환 과정토토 사이트 추천에 의해 트리를 입력으로 가져오고 쿼리에서 참조되는 테이블, 기능 및 연산자를 이해하는 데 필요한 의미 론적 해석을 수행합니다. 이 정보를 표현하기 위해 구축 된 데이터 구조를라고합니다.쿼리 트리.
시맨틱 분석에서 원시 구문 분석을 분리하는 이유는 시스템 카탈로그 조회가 트랜잭션 내에서만 수행 될 수 있기 때문에 쿼리 문자열을 수신하면 즉시 트랜잭션을 시작하지 않기 때문입니다. 원시 구문 분석 단계는 트랜잭션 제어 명령을 식별하기에 충분합니다 (시작
, 롤백
등) 그리고 더 이상의 분석없이 올바르게 실행할 수 있습니다. 우리가 실제 쿼리를 다루고 있다는 것을 알게되면 (예 :select
또는업데이트
), 우리가 아직 하나가 아닌 경우 거래를 시작해도 괜찮습니다. 그래야만 변환 프로세스를 호출 할 수 있습니다.
변환 프로세스에 의해 생성 된 쿼리 트리는 대부분의 장소에서 원시 구문 분석 트리와 구조적으로 유사하지만 자세한 차이가 있습니다. 예를 들어, AFUNCCALL
구문 분석 노드는 함수 호출처럼 구문으로 보이는 것을 나타냅니다. 이것은 둘 중 하나로 변형 될 수 있습니다funcexpr
또는aggref
참조 이름이 일반 함수인지 집계 함수로 판명되는지에 따라 노드. 또한 쿼리 트리에 실제 데이터 유형 및 표현식 결과에 대한 정보가 추가됩니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면