私は字句解析プログラムで作業していますが、1行のコメントを検出するとすべて正常に動作します。これは私の単一行コメントの検出コードです。C言語での字句解析 - 複数行コメントの検出時にアスタリスクを読み込んで出力する方法は?
マルチラインコメントを検出しようとすると、アスタリスクを検出できない論理エラーが発生します。ここでは複数行コメント検出のための私のコードは次のとおりです。
//Multi-Line Comment
if((Current_Character == '/') && (fgetc(File_Input) == '*')){
printf ("%c", fgetc(File_Input));
do{
printf ("%c", Current_Character);
Current_Character = fgetc(File_Input);
}while(Current_Character != '/');
printf("\b | COMMENT\n", Current_Character);
i = -1;
Lexeme_Count++;
Comment_Count++;
}
現在の文字は、(fgetc関数であるバックスラッシュと二番目の文字である複数行のコメントのための最初の文字(FILE_INPUT)(最新の次を取得するためでありますファイルから文字)askteriskを開くためである
これは私が入力されたファイルの内容です:。
#include <conio.h>
{
int a[3],t1,t2;
t1=2; a[0]=1; a[1]=2; a[t1]=3;
t2=
-
(a[2]+t1*6)/(a[2]
-
t1);
if t2>5 then
print(t2);
else {
int t3;
t3=99;
t2=
-
25;
print(
-
t1+t2*t3); // this is a comment on 2 lines
} endif /* THIS IS A MUTLI-LINE COMMENT ON 2 LINES
*/ }