[완료] C/C++ 파일 파싱을 어떻게 하는게 좋을까요?

crane76의 이미지

.h, .c, .cpp 등 C/C++ 파일을 파싱하여
전역변수, 함수, 구조체, 클레스등 정보를 모아보려 하는데요..
어떻게 파싱을 해야할지 감이 안잡혀서요...
무식한 방법으로 괄호 등을 기준으로 하면 될것 같기도 한데 이는 좀 느릴것 같고...
좋은 방법 없을까요?
아님 이런걸 구현 해 논 오픈소스 라도...

그럼 즐거운 주말 되세요~ ^^

litdream의 이미지

CSCOPE 기반으로 만들어진 KSCOPE 한번 써보세요.

삽질의 대마왕...

삽질의 대마왕...

익명 사용자의 이미지

그런걸 구현해 놓은 오픈소스로 ctags가 유명합니다.

dragonkun의 이미지

주로 컴파일러 제작에서 쓰이는 YACC 과 LEX 를 알아보세요.
간단한 문법으로 Lexical Analyzer 및 Parser 의 코드를 생성해 줍니다.
---------------------
Emerging the World!

Emerging the World!

crane76의 이미지

네 ctags 가 볼만 하더군요...
KSCOPE 의 소스를 열어보니 ctags를 이용하네요..
그래서 ctags 소스를 가지고 열씨미 분석중입니다.

YACC 나 LEX 같은경우 이용하면 편리하다는걸 알고는 있지만..
한번도 써본적도 없고 정규식등에 그리 능숙하지가 않아
찾아보질 않았습니다.

의견주신분들 감사합니다.

이 스레드는 여기서 일단락 짓는것으로 합니다.
^__^;

M.W.Park의 이미지

java에 친숙하시다면 javaCC도 있습니다.
기본적으로 EBNF와 비슷한 표기를 파싱해서 입력파일을 AST(Abstract Syntax Tree)로 만들어 주는 코드를 생성합니다.

웬만한 grammar 들도 있습니다.

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.