#include <stdio.h>
/*
現在の状態を示す定数
*/
enum{
MODE_NORMAL,
MODE_COMMENT_BLOCK,
MODE_COMMENT_LINE,
MODE_LITERAL,
MODE_ESCAPE,
};
int main(void) // this is main function
{
int c, c_prev=0;
int mode=MODE_NORMAL;
int line_no=1;
int end_quote=0;
while((c=getchar())!=EOF)
{
switch(mode)
{
case MODE_COMMENT_BLOCK:
if(c_prev=='*' && c=='/')
{
mode=MODE_NORMAL;
printf("/\n");
}
else
{
putchar(c);
}
break;
case MODE_COMMENT_LINE:
if(c=='\n')
{
mode=MODE_NORMAL;
printf("\n");
}
else
{
putchar(c);
}
break;
case MODE_ESCAPE:
mode=MODE_LITERAL;
break;
case MODE_LITERAL:
if(c==end_quote)
{
mode=MODE_NORMAL;
}
if(c=='\\')
{
mode=MODE_ESCAPE;
}
break;
default:
if(c_prev=='/' && c=='*')
{
mode=MODE_COMMENT_BLOCK;
printf("Line:%d /*", line_no);
}
if(c_prev=='/' && c=='/')
{
mode=MODE_COMMENT_LINE;
printf("Line:%d //", line_no);
}
if(c=='"' || c=='\'')
{
mode=MODE_LITERAL;
end_quote=c;
}
break;
}
if(c=='\n') line_no++;
c_prev=c;
}
return 0;
}