自己动手写C语言编译器(3)(三)

2014-11-23 22:37:13 · 作者: · 浏览: 21
;

peekc = c;

return nextToken();

} else {

/* Now see if it is still a single line comment */

if ((ct['/'] & CT_COMMENT) != 0) {

while ((c = read()) != '\n' && c != '\r' && c >= 0);

peekc = c;

return nextToken();

} else {

peekc = c;

return ttype = '/';

}

}

}

if ((ctype & CT_COMMENT) != 0) {

while ((c = read()) != '\n' && c != '\r' && c >= 0);

peekc = c;

return nextToken();

}

return ttype = c;

}

void pushBack() {

if (ttype != TT_NOTHING)

pushedBack = true;

}

int lineno() {

return LINENO;

}

std::string toString();

};

const unsigned char IstreamTokenizer::CT_WHITESPACE = 1;

const unsigned char IstreamTokenizer::CT_DIGIT = 2;

const unsigned char IstreamTokenizer::CT_ALPHA = 4;

const unsigned char IstreamTokenizer::CT_QUOTE = 8;

const unsigned char IstreamTokenizer::CT_COMMENT = 16;

const int IstreamTokenizer::NEED_CHAR = INT_MAX;

const int IstreamTokenizer::SKIP_LF = INT_MAX - 1;

#endif