2011-03-20 4 views
3

내 목표는 매우 간단하고 기본적인 C 구문 검사기를 만드는 것입니다. (전체 컴파일러가 아니라 소스 코드를 입력으로 사용하고 오류를 보여주는 코드를 다시 인쇄하는 기본 프로그램). 이 언어로 C++을 사용하고 싶습니다.어휘 분석

사람이 다음과 같은 사항에 대해 'C++'언어에서 정규 표현식을 작성하는 나를 인도 할 수 :

  • 스위치
  • 모든 세부 사항/제안/안내 더 것이기

    1. 할당
    2. 많이 감사하겠습니다.

    +2

    ^^ 실례합니다. 그게 뭐야? – Sadique

    +1

    어휘 분석과 구문 분석은 매우 다른 점에 유의하십시오. 어휘 분석 (스캐닝)은 입력을 토큰으로 나눕니다. 구문 분석 (구문 분석)은 해당 토큰에서 구문 트리를 만듭니다. – ninjalj

    답변

    1

    내가 혼자 정규 표현식 C을 구문 분석 할 수 있다고 생각하지 않습니다 boost spirit

    3

    C 코드의 구문을 검사하는 데 정규식보다 훨씬 많은 작업이 필요합니다. 대수적 인 gammars를 대신 파싱 할 수있는 도구가 필요합니다. 나는 http://www.gnu.org/software/bison/을보고 싶습니다. C++에서 파서의 "해골"을 생성하여 구문을 검사하고 구문 검사 코드를 추가 할 수 있습니다.

    2

    clang 라이브러리를 사용하십시오. 튜토리얼은 GitHub에 있습니다.

    0

    C 문을 인식하려면 렉서가 문자 수준에서 작동하기 때문에 렉시 컬 분석만으로는 충분하지 않습니다. C 렉서 외에 필요한 것은 소스 코드의 구문 분석을 수행하는 C 파서입니다. LRSTAR Parser Generator은 C 프로젝트를 제공하여 사용자를 시작하고 실행할 수는 있지만 전 처리기 코드 (#include, #ifdef 등)는 처리하지 않습니다. LRSTAR은 C++에서 렉서 (lexer)와 파서 (parser)를 생성합니다. 자유롭고 오픈 소스입니다. GCC로 컴파일하면 Windows, Linux, Mac OS X 등에서 실행됩니다. C 언어 처리를위한 MS Visual Studio 프로젝트가 포함되어 있습니다.