C++ 如何标记c++;源代码文件(转换为令牌序列)?
可能重复:C++ 如何标记c++;源代码文件(转换为令牌序列)?,c++,c++builder,tokenize,plagiarism-detection,C++,C++builder,Tokenize,Plagiarism Detection,可能重复: 我有一个项目“C++文件剽窃检测器”< /P> 以及需要知道如何将C++文件转换为令牌序列: int factorial(int n) { if (n == 0) return 1 ; else return n * factorial(n-1) ; } 为此: Int, factorial, (, int, n, ), {, if, (, n, ==, 0, ), return, 1, ;, else, return, n, *, factorial, (, n, -, 1,
我有一个项目“C++文件剽窃检测器”< /P>
以及需要知道如何将C++文件转换为令牌序列:
int factorial(int n) {
if (n == 0) return 1 ;
else return n * factorial(n-1) ;
}
为此:
Int, factorial, (, int, n, ), {, if, (, n, ==, 0, ), return, 1, ;, else, return, n, *, factorial, (, n, -, 1, ), ;, }
人们通常使用lexer生成器或解析器生成器的lexer部分编写标记器,如。C++语法和LeX和YACC的词法分析器和解析器是.< 这些lexer(在一定程度上)归结为许多正则表达式,以及一些用于在模式(例如字符串模式、注释模式和语言模式)之间切换的代码