문제

문서 함수와 매개변수, 클래스와 메서드, 변수 등에 대한 정보를 얻으려면 PHP와 JavaScript 문서 구조를 구문 분석해야 합니다.이를 위한 솔루션이 있는지 궁금합니다(정규 표현식 없음)."렉싱(lexing)"이라는 것에 대해 들어봤지만 이것이 내가 찾고 있는 것인지 아닌지 알 수 있는 예제조차 찾을 수 없었습니다.

미리 감사드립니다

도움이 되었습니까?

해결책

"Lexing"이란 어휘 분석을 참조하는 것이며 Lex 및 Yacc라는 이름으로 여전히 작동하는 고대 도구가 있습니다.Lex는 토크나이저를 구축하고 Yacc는 "아직 또 다른 컴파일러 컴파일러"를 의미하며 실제 파서입니다.

lex/Yacc의 개념은 언어에 대한 문법을 ​​구축한 다음 paslex 도구를 통해 문법을 실행하여 파일을 구문 분석하고 특정 키워드 및 토큰에 대해 조치를 취하는 데 사용할 수 있는 소스 코드(일반적으로 C)를 생성하는 것입니다. .Martin Waldenburg는 PasLex라는 이름의 lex/yacc의 파스칼 버전을 작성했습니다. 이 버전은 현재 10년 넘게 사용되어 왔으며 다음으로 변환되었습니다. 델파이 (단, 약간의 작업 없이는 최신 버전에서는 작동하지 않을 수도 있습니다.)내 기억이 맞다면 lex와 동일한 .L 문법 입력 파일을 사용하므로 lex/yacc에 대해 찾은 모든 문서는 출력으로 파스칼 코드를 얻는 것을 제외하고는 paslex에도 적용될 수 있습니다.

현재 문서 가용성이 확실하지 않습니다.인터넷 이전에 우리는 책을 사용했고 책의 대부분은 오랫동안 노란색으로 변한 종이에 많이 기록되어 있었습니다. 그러나 소문에 따르면...아마존에서 중고 사본을 선택할 수도 있을 것입니다.나는 "라는 책으로도 알려진 책을 사용하여 이것에 대해 잘랐습니다.드래곤북"는 최근 2006년에 재출판된 것으로 보입니다.


편집하다:

도구로 착각했네 티플라이.PasLex는 델파이 문법 구현이었습니다. TPLY는 .L 파일에서 파스칼 소스를 생성하는 Lex/Yacc 도구였습니다.

다른 팁

이것이 실현 가능한지 확실하지 않지만 PHP의 경우 델파이에서 PHP CLI를 호출하여 정보를 얻을 수 있습니까?

그렇다면 전화 할 수 있습니다 token_get_all () 그런 다음 결과를 델파이 (XML, JSON 등)로 구문 분석 할 수있는 무언가를 뱉어냅니다. 이것은 렉싱입니다. 이것의 문제는 해결 된 문제의 절반에 불과하다는 것입니다. 원하는 결과를 얻으려면 각 토큰을 이해해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top