Ejemplo n.º 1
0
main()
{
	int c,d;
	while((c=getchar())!=EOF)							/*读入一个字符给c,如果不是文件结束*/
		rcomment(c);												/*调用rcomment函数处理*/
	return 0;
}
Ejemplo n.º 2
0
main() {
    int c;

    while ((c=getchar()) != EOF)  //遍历整个代码文件
        rcomment(c);  
    return 0;
}
Ejemplo n.º 3
0
int main() {
  int c, d;
  
  while ((c = getchar()) != EOF) {
    rcomment(c);
  }
  return 0;
}
Ejemplo n.º 4
0
/* 移除所有注释 */
main(void)
{
    int c, d;

    while ((c = getchar()) != EOF)
        rcomment(c);
    return 0;
}
int main(void)
{
    int c,d;

    printf(" To Check /* Quoted String */ \n");

    while((c=getchar())!=EOF)
        rcomment(c);

    return 0;
}
Ejemplo n.º 6
0
void rcomment(int c) {
    int d;

    if (c=='/') {
        if ((d=getchar())=='*')
            in_comment();
        else if (d=='/')  {
            putchar(c);
            rcomment(d);
        } else {
            putchar(c);
            putchar(d);
        }
    } else if (c=='\'' || c=='"')
        echo_quote(c);
    else
        putchar(c);
}
Ejemplo n.º 7
0
/*rcomment: czytaj każdy znak, usuń komentarze*/
void rcomment(int c)
{
	int d;

	if (c == '/')
		if ((d = getchar()) == '*')
			in_comment();	/*początek komentarza*/
		else if (d == '/') {
			putchar(c);	/*drugi znak / */
			rcomment(d);
		} else {
			putchar(c);	/*to nie jest komentarz ;)*/	
			putchar(d);
		}
	else if (c == '\'' || c == '"')
		echo_quote(c);		/*to początek stałej*/
	else
		putchar(c);		/*to nie jest komentarz*/
}
Ejemplo n.º 8
0
/* rcomment: read each character, remove the comments */
void rcomment(int c)
{
    int d;

    if (c == '/')
        if ((d = getchar()) == '*')
            in_comment();           /* beginning comment */
        else if (d == '/') {        /* another slash */
            putchar(c);
            rcomment(d);
        } else {
            putchar(c);             /* not a comment */
            putchar(d);
        }
    else if (c == '\'' || c == '"')
        echo_quote(c);              /* quote begins */
    else
        putchar(c);                 /* not a comment */
}
Ejemplo n.º 9
0
/* 阅读每个字节,移除注释 */
void rcomment(int c)
{
    int d;

    if (c == '/')
        if ((d = getchar()) == '*')
            in_comment();       /* 开始注释 */
        else if (d == '/') {
            putchar(c);             /* 另一个斜杠 */
            rcomment(d);
        } else {
            putchar(c);             /* 不是注释 */
            putchar(d);
        }
    else if (c == '\'' || c == '"')     /* 引号中的内容原样输出 */
        echo_quote(c);      /* 引用开始 */
    else
        putchar(c);     /* 不是注释 */
}
Ejemplo n.º 10
0
/*rcomment:处理读入的每个字符,删除注释,首先是搜索起始标志*/
void rcomment(int c)
{
	int d;																	/*用来储存c后面读入的一个字符*/
	if(c=='/')															/*当遇到一个/时,需要进行后续的判断*/
	{
		if((d=getchar())=='*')								/*  再读入一个字符,如果是*号,d已经读入,后续不需读入,而且必须输出  */
			in_comment();												/*  说明进入注释,调用in_comment()函数寻找结束标志,删除注释 */
		else if (d=='/') 										 /*   如果又出现一个/   */
		{
			putchar(c); 										   /*则c一定不是属于注释,把c原样输出*/
			rcomment(d);											/*****递归调用rcomment函数,继续对d进行检测,而实际上只是c==‘/’的情况******/
		}
		else   														 /* 第一个/出现后,之后读入的一个字符,不是/也不是*    */
		{
			putchar(c);   /*c,d均不属于注释,c,d均原样输出*/
			putchar(d);	
		}
	}
	else if(c=='\''||c=='"') /*出现单引号或双引号*/
		echo_quote(c);/*调用echo_quote函数处理*/
	else /*其他情况表示即不是/也不是引号*/
		putchar(c);/*原样输出*/
}
Ejemplo n.º 11
0
// scan the next symbol
void nextsym() 
{
  // continue until symbol found
  bool symfnd;
  do 
  {
    symfnd = true;
    skipsep();
    symptr = inptr;

    if (inLetters( ch)) // ident or reserved word
    { 
      scanident();
    }
    else 
    {
      if (inDigits( ch)) // number
        scannum();
      else 
      {
        switch( ch) 
        {
          case '"':
          	strToMatch = '"';
          	scanstr();
            break;
          case '\'': 
          	strToMatch = '\'';
            scanstr();
            break;
          case '.':
            sym = per;
            nextchar();
            if ( ch == '.') 
            {
              sym = doubledot;
              nextchar();
            }
            break;
          case ':':
            idassign();
            break;
          case '<': // fall through to case '>', both call relop
          case '>':
            idrelop();
            break;
          case '(': // check for comment
            nextchar();
            if ( ch != '*')
              sym = lparen;
            else // now we know it's a comment
            { 
              symfnd = false;
              nextchar();
              rcomment();
            }
            break;
          case EOF:
            sym = eof_sym;
            break;
          default: // then should be in one of the "special" chars (star, slash, etc.)
            sym = spsym[ ch];
            nextchar();
            break;
        } // end switch
      }   // end if
    }     // end do
  } while (!symfnd);

  // TODO
  //writesym();

} // end nextsym
Ejemplo n.º 12
0
int main()
{
	rcomment();
	return 0;
}