2012-03-19 4 views
1

가능한 중복 :
How to create a plagiarism detector of c++ files
a simple lexer.cpp to convert a simle c++ file to a sequence of tokensC++ 소스 코드 파일을 토큰 화하는 방법 (토큰 시퀀스로 변환)?

안녕 나는 C를 변환하는 방법을 알고하는 프로젝트

및 필요 "파일을 C++에 대한 표절 감지기"를 가지고 ++ 파일 다음과 같은 토큰 시퀀스에 :

int factorial(int n) { 
if (n == 0) return 1 ; 
else return n * factorial(n-1) ; 
} 
0 그으로

:

Int, factorial, (, int, n,), {, if, (, n, ==, 0,), return, 1, ;, else, return, n, *, factorial, (, n, -, 1,), ;, } 

답변

2

하나는 일반적 Flex 같은 렉서 생성기를 이용하거나 ANTLR 같은 파서 생성기 렉서 부분을 사용 tokenizers 쓴다. lex와 yacc로 작성된 C++ 문법의 렉서와 파서는 available입니다.

이러한 렉서는 많은 정규 표현식과 모드 전환을위한 코드 (예 : 문자열 모드, 설명 모드 및 언어 모드)로 구성됩니다.