本文整理汇总了C++中StringBuffer::is_empty方法的典型用法代码示例。如果您正苦于以下问题:C++ StringBuffer::is_empty方法的具体用法?C++ StringBuffer::is_empty怎么用?C++ StringBuffer::is_empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringBuffer
的用法示例。
在下文中一共展示了StringBuffer::is_empty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dirdcl
void dirdcl(StringBuffer &bin, StringList &vout) { // 직접 선언자를 분석하고 결과 출력
char ch = bin.peekc();
if (is_fnamch(ch)) { // direct-declarator: 이름 (2)
std::string identifier = "";
while (bin.is_empty() == false) {
ch = bin.getc();
if (is_namch(ch) == false) {
bin.ungetc();
break;
}
identifier += ch;
}
if (identifier.empty()) // 식별자에 추가된 문자가 없다면 예외
throw Exception("올바른 식별자 이름이 아닙니다.");
vout.push_back(identifier);
}
else if (ch == '(') { // direct-declarator: (declarator) (3)
bin.getc(); // ( 문자를 해석해서 진입했으므로 다음으로 넘긴다
dcl(bin, vout);
if (bin.peekc() != ')') // 닫는 괄호가 없으면 예외
throw Exception("닫는 괄호가 없습니다.");
bin.getc(); // ) 괄호 검사를 진행했으므로 다음으로 넘긴다
}
// direct-declarator: direct-declarator() (4)
// direct-declarator: direct-declarator[] (5)
while (bin.is_empty() == false) {
ch = bin.peekc();
if (ch == '(') { // 함수 기호 획득
bin.getc(); // ( 괄호를 해석해서 진입했으므로 넘긴다
if (bin.peekc() != ')') // 닫는 괄호가 없으면 예외
throw Exception("잘못된 함수 기호입니다.");
bin.getc(); // ) 괄호를 해석했으므로 다음으로 넘긴다
vout.push_back("()");
}
else if (ch == '[') { // 배열 기호 획득
bin.getc(); // [ 괄호를 해석해서 진입했으므로 넘긴다
if (bin.peekc() != ']') // 닫는 괄호가 없으면 예외
throw Exception("잘못된 배열 기호입니다.");
bin.getc(); // ] 괄호를 해석했으므로 다음으로 넘긴다
vout.push_back("[]");
}
else { // 이외의 경우 반복문을 탈출한다
break;
}
}
}
示例2: get_type
std::string get_type(StringBuffer &bin) {
char ch = bin.peekc(); // 버퍼의 첫 문자를 확인한다
if (is_fnamch(ch) == false) // 올바른 형식이 아니면 예외
throw Exception("잘못된 입력입니다.");
std::string result = "";
while (bin.is_empty() == false) { // 버퍼에 문자가 남아있는 동안
ch = bin.getc(); // 문자를 획득하고 확인한다
if (is_namch(ch) == false) { // 더 이상 형식 문자가 아니면
bin.ungetc(); // 아직 해석되지 않은 문자를 버퍼에 되돌리고
break; // 형식이 끝났으므로 탈출한다
}
result += ch; // 획득한 문자를 결과 객체에 넣는다
}
return result;
}
示例3: dcl
void dcl(StringBuffer &bin, StringList &vout) { // 선언자를 분석하고 결과 출력
// declarator: * direct-declarator (1)
int pointer_count = 0;
char ch;
while (bin.is_empty() == false) { // 버퍼에 문자가 남아있는 동안
ch = bin.getc(); // 문자를 획득하고 확인한다
if (ch == '*') { // *라면 그만큼 포인터를 출력하기 위해
++pointer_count; // 카운터를 증가시킨다
}
else { // *가 아니라면 포인터를 되돌리고 탈출한다
bin.ungetc();
break;
}
}
// declarator: * direct-declarator (2)
dirdcl(bin, vout); // *을 모두 획득했으므로 직접 선언자를 분석한다
while (pointer_count > 0) { // 선언자의 분석이 오른쪽에서 먼저 진행되므로
vout.push_back("*"); // 왼쪽에서 획득한 기호를 오른쪽의 분석이
--pointer_count; // 종료된 후에 출력해야 한다
}
}