本文整理汇总了C++中skip_white函数的典型用法代码示例。如果您正苦于以下问题:C++ skip_white函数的具体用法?C++ skip_white怎么用?C++ skip_white使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了skip_white函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: skip_white
char *skip_token(char *ptr)
{
ptr = skip_white(ptr);
ptr = skip_not_white(ptr);
ptr = skip_white(ptr);
return (ptr);
}
开发者ID:Palantir555,项目名称:ecos-mars-zx3,代码行数:7,代码来源:read_config.c
示例2: parse_comment
static void parse_comment( char* in, M3u_Playlist::info_t& info, bool first )
{
in = skip_white( in + 1 );
const char* field = in;
while ( *in && *in != ':' )
in++;
if ( *in == ':' )
{
const char* text = skip_white( in + 1 );
if ( *text )
{
*in = 0;
if ( !strcmp( "Composer", field ) ) info.composer = text;
else if ( !strcmp( "Engineer", field ) ) info.engineer = text;
else if ( !strcmp( "Ripping" , field ) ) info.ripping = text;
else if ( !strcmp( "Tagging" , field ) ) info.tagging = text;
else
text = 0;
if ( text )
return;
*in = ':';
}
}
if ( first )
info.title = field;
}
开发者ID:Accusedbold,项目名称:zdoom,代码行数:28,代码来源:M3u_Playlist.cpp
示例3: read_lisp_symbol
static void
read_lisp_symbol (FILE *infile, char *buffer)
{
char c;
char *fillp = buffer;
skip_white (infile);
while (1)
{
c = getc (infile);
if (c == '\\')
*(++fillp) = getc (infile);
else if (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '(' || c == ')')
{
ungetc (c, infile);
*fillp = 0;
break;
}
else
*fillp++ = c;
}
if (! buffer[0])
fprintf (stderr, "## expected a symbol, got '%c'\n", c);
skip_white (infile);
}
开发者ID:cpitclaudel,项目名称:emacs,代码行数:27,代码来源:make-docfile.c
示例4: parse_mask
static int parse_mask(lbind_Enum *et, const char *s, int *penum, lua_State *L) {
*penum = 0;
while (*s != '\0') {
const char *e;
int inversion = 0;
lbind_EnumItem *item;
s = skip_white(s);
if (*s == '~') {
inversion = 1;
s = skip_white(s+1);
}
if (*s == '\0') break;
e = skip_ident(s);
if (e == s || (item = lbind_findenum(et, s, e-s)) == NULL) {
if (L == NULL) return 0;
if (e == s)
return luaL_error(L, "unexpected token '%c' in %s", *s, et->name);
else {
lua_pushlstring(L, s, e-s);
return luaL_error(L, "unexpected mask '%s' in %s", lua_tostring(L, -1), et->name);
}
}
s = e;
if (inversion)
*penum &= ~item->value;
else
*penum |= item->value;
}
return 1;
}
开发者ID:ifzz,项目名称:nui,代码行数:30,代码来源:lbind.c
示例5: skip_white
pdf_obj *parse_pdf_array (char **start, char *end)
{
pdf_obj *result, *tmp1;
#ifdef MEM_DEBUG
MEM_START
#endif
skip_white(start, end);
if (*((*start)++) != '[')
return NULL;
result = pdf_new_array ();
skip_white(start, end);
while (*start < end &&
**start != ']') {
if ((tmp1 = parse_pdf_object (start, end)) == NULL) {
pdf_release_obj (result);
return NULL;
};
pdf_add_array (result, tmp1);
skip_white(start, end);
}
if (*start >= end) {
pdf_release_obj (result);
fprintf (stderr, "\nArray ended prematurely\n");
return NULL;
}
(*start)++;
#ifdef MEM_DEBUG
MEM_END
#endif
return result;
}
开发者ID:BackupTheBerlios,项目名称:texlive,代码行数:31,代码来源:pdfparse.c
示例6: jump_etc
char *
jump_etc(char *op)
{ char *p = op;
/* try to get the type separated from the name */
p = skip_white(p); /* initial white space */
if (strncmp(p, "enum", strlen("enum")) == 0) /* special case: a two-part typename */
{ p += strlen("enum")+1;
p = skip_white(p);
}
p = skip_nonwhite(p); /* type name */
p = skip_white(p); /* white space */
while (*p == '*') p++; /* decorations */
p = skip_white(p); /* white space */
if (*p == '\0')
fatal("c_state format (%s)", op);
if (strchr(p, '[')
&& !strchr(p, '{'))
{ non_fatal("array initialization error, c_state (%s)", p);
return (char *) 0;
}
return p;
}
开发者ID:Improbus,项目名称:CPEG614,代码行数:28,代码来源:spinlex.c
示例7: parse_any
NODE*
parse_any(SCANNER *s, int mode) {
NODE *x = NULL;
int c;
skip_white(s);
if (s_eof(s)) return raise(s, "unexpected end of file");
c = s_peek(s);
if (c == '(') {
s_getc(s);
x = parse_paren(s, mode);
if (x == NULL) return NULL;
if (s_eof(s)) {
return raise(s, "unexpected end of file");
}
skip_white(s);
if (s_getc(s) != ')') {
return invalid_token(s);
}
} else if (c == '\'')
x = parse_quote(s);
else if (c == '`')
return parse_bquote(s);
else if (c == '"')
x = parse_string(s);
else if (isalnum((int)c) || strchr(SYMBOL_CHARS, c))
x = parse_primitive(s);
else
return invalid_token(s);
return x;
}
开发者ID:kariya-mitsuru,项目名称:cisp,代码行数:34,代码来源:parser.c
示例8: get_token
// Get next token.
static parse_ptr get_token(parse_ptr src, token_info & token, const char * path, int & line)
{
src = skip_white(src, path, line);
switch (*src) {
case '{': case '}': case ',':
// Simple token
token.type = *src; token.line = line;
++src;
break;
case '"':
// String constant
token.type = '"'; token.line = line;
token.value = "";
do {
for (++src; *src != '"'; ++src) {
char c = *src;
if (!c || c == '\n' || (c == '\\' && !src[1])) {
pout("%s(%d): Missing terminating '\"'\n", path, line);
token.type = '?'; token.line = line;
return src;
}
if (c == '\\') {
c = *++src;
switch (c) {
case 'n' : c = '\n'; break;
case '\n': ++line; break;
case '\\': case '"': break;
default:
pout("%s(%d): Unknown escape sequence '\\%c'\n", path, line, c);
token.type = '?'; token.line = line;
continue;
}
}
token.value += c;
}
// Lookahead to detect string constant concatentation
src = skip_white(++src, path, line);
} while (*src == '"');
break;
case 0:
// EOF
token.type = 0; token.line = line;
break;
default:
pout("%s(%d): Syntax error, invalid char '%c'\n", path, line, *src);
token.type = '?'; token.line = line;
while (*src && *src != '\n')
++src;
break;
}
return src;
}
开发者ID:Elastifile,项目名称:smartmontools,代码行数:57,代码来源:knowndrives.cpp
示例9: skip_white
// Parse next letter/number pair.
// Returns the remaining line or NULL if end reached.
static const char *gcodep_parse_pair_with_linenumber(int line_num,
const char *line,
char *letter, float *value,
FILE *err_stream) {
// TODO: error callback when we have errors with messages.
if (line == NULL)
return NULL;
line = skip_white(line);
if (*line == '\0' || *line == ';' || *line == '%')
return NULL;
if (*line == '(') { // Comment between words; e.g. G0(move) X1(this axis)
while (*line && *line != ')')
line++;
line = skip_white(line + 1);
if (*line == '\0') return NULL;
}
*letter = toupper(*line++);
if (*line == '\0') {
fprintf(err_stream ? err_stream : stderr,
"// Line %d G-Code Syntax Error: expected value after '%c'\n",
line_num, *letter);
return NULL;
}
// If this line has a checksum, we ignore it. In fact, the line is done.
if (*letter == '*')
return NULL;
while (*line && isspace(*line))
line++;
// Parsing with strtof() can be problematic if the line does
// not contain spaces, and strof() sees the sequence 0X... as it treats that
// as hex value. E.g. G0X1. Unlikely, but let's do a nasty workaround:
char *repair_x = (*(line+1) == 'x' || *(line+1) == 'X') ? (char*)line+1 : NULL;
if (repair_x) *repair_x = '\0'; // pretend that is the end of number.
char *endptr;
*value = strtof(line, &endptr);
if (repair_x) *repair_x = 'X'; // Put the 'X' back.
if (line == endptr) {
fprintf(err_stream ? err_stream : stderr, "// Line %d G-Code Syntax Error:"
" Letter '%c' is not followed by a number `%s`.\n",
line_num, *letter, line);
return NULL;
}
line = endptr;
line = skip_white(line); // Makes the line better to deal with.
return line; // We parsed something; return whatever is remaining.
}
开发者ID:fcorrea,项目名称:beagleg,代码行数:56,代码来源:gcode-parser.c
示例10: has_ident
char *
has_ident(const char *name,
char *first,
char *last)
{
char *base;
char *s, *t, *d, c;
name = leaf_of(name);
s = first;
while ((t = base = strchr(s, '$')) != 0 && (t < last)) {
t++;
if ((s = exact(skip_camel(t), "Id")) != 0
|| (s = exact(t, "Header")) != 0) {
if (*s == '$') {
return base;
} else if ((*s == ':')
&& is_inline(t, '$')) {
/* RCS identifier can have pathname prepended */
s = skip_white(s + 1);
d = skip_text(s);
c = *d;
*d = EOS;
while (is_inline(s, '/'))
s++;
*d = c;
if ((s = same_name(s, name)) != 0
&& (s = exact(s, ",v")) != 0
&& isspace(*s))
return base;
}
}
s = t;
}
s = first;
while ((t = base = strchr(s, '@')) != 0 && (t < last)) {
t++;
if ((s = exact(t, "(#)")) != NULL) {
t = s;
/* some versions of SCCS don't do module-name */
if ((s = same_name(t, name)) != NULL)
return base;
t = skip_text(t); /* module-name, if any */
t = skip_white(t);
if ((s = same_name(t, name)) != NULL)
return base;
}
s = t;
}
return 0;
}
开发者ID:ThomasDickey,项目名称:copyrite-snapshots,代码行数:54,代码来源:hasident.c
示例11: parse_paren
NODE*
parse_paren(SCANNER *s, int mode) {
NODE *head, *node, *x;
skip_white(s);
if (s_eof(s)) return raise(s, "unexpected end of file");
head = node = new_node();
node->t = NODE_CELL;
while (!s_eof(s) && s_peek(s) != ')') {
NODE *child;
char q = s_peek(s) == ',';
if (q) s_getc(s);
child = parse_any(s, PARSE_ANY);
if (child == NULL) return NULL;
if ((mode & PARSE_BQUOTE) != 0 && !q) {
NODE *r = new_node();
r->t = NODE_QUOTE;
r->car = child;
child = r;
}
if (child->t == NODE_IDENT && !strcmp(".", child->s)) {
if (!head->car) {
free_node(child);
return raise(s, "illegal dot operation");
}
free_node(child);
child = parse_any(s, PARSE_ANY);
if (child == NULL) return NULL;
node->cdr = child;
break;
} else {
if (head->car) {
x = new_node();
x->t = NODE_CELL;
node->cdr = x;
node = x;
}
node->car = child;
}
skip_white(s);
}
if (!head->car && !head->cdr)
head->t = NODE_NIL;
return head;
}
开发者ID:kariya-mitsuru,项目名称:cisp,代码行数:53,代码来源:parser.c
示例12: proc_parse_config
void
proc_parse_config(const char *token, char *cptr)
{
char tmpname[STRMAX];
struct myproc **procp = &procwatch;
/*
* don't allow two entries with the same name
*/
copy_nword(cptr, tmpname, sizeof(tmpname));
if (get_proc_by_name(tmpname) != NULL) {
config_perror("Already have an entry for this process.");
return;
}
/*
* skip past used ones
*/
while (*procp != NULL)
procp = &((*procp)->next);
(*procp) = (struct myproc *) calloc(1, sizeof(struct myproc));
if (*procp == NULL)
return; /* memory alloc error */
numprocs++;
/*
* not blank and not a comment
*/
copy_nword(cptr, (*procp)->name, sizeof((*procp)->name));
cptr = skip_not_white(cptr);
if ((cptr = skip_white(cptr))) {
(*procp)->max = atoi(cptr);
cptr = skip_not_white(cptr);
if ((cptr = skip_white(cptr)))
(*procp)->min = atoi(cptr);
else
(*procp)->min = 0;
} else {
/* Default to asssume that we require at least one
* such process to be running, but no upper limit */
(*procp)->max = 0;
(*procp)->min = 1;
/* This frees "proc <procname> 0 0" to monitor
* processes that should _not_ be running. */
}
#ifdef NETSNMP_PROCFIXCMD
sprintf((*procp)->fixcmd, NETSNMP_PROCFIXCMD, (*procp)->name);
#endif
DEBUGMSGTL(("ucd-snmp/proc", "Read: %s (%d) (%d)\n",
(*procp)->name, (*procp)->max, (*procp)->min));
}
开发者ID:prak5192,项目名称:C_Project,代码行数:51,代码来源:proc.c
示例13: parse_fmtargs
static void parse_fmtargs(parse_info *info, int *wide, int *count) {
skip_white(info->fmt);
parse_optint(&info->fmt, wide);
skip_white(info->fmt);
if (*info->fmt == '*') {
++info->fmt;
skip_white(info->fmt);
parse_optint(&info->fmt, count);
}
else if (*info->fmt == '$') {
++info->fmt;
*count = -1;
}
skip_white(info->fmt);
}
开发者ID:brimworks,项目名称:lbuffer,代码行数:15,代码来源:lbuffer.c
示例14: parse_html_tag
static int parse_html_tag (char **start, char *end)
{
int result = -1;
char *token = NULL;
int closing = 0;
skip_white(start, end);
if (*start < end) {
if (**start == '/') {
(*start)++;
closing = 1;
}
if (*start < end && (token = parse_ident (start, end))) {
downcase (token);
{
int i;
for (i=0; i<sizeof(tags)/sizeof(tags[0]); i++) {
if (!strcmp (token, tags[i])) {
result = i;
if (closing)
result += sizeof(tags)/sizeof(tags[0]);
}
break;
}
if (i>=sizeof(tags)/sizeof(tags[0]))
result = -1;
}
RELEASE (token);
}
}
return result;
}
开发者ID:BackupTheBerlios,项目名称:texlive,代码行数:31,代码来源:htex.c
示例15: _pm_save_everything
/**
* @internal
* parse mode: save everything
*/
void
_pm_save_everything(FILE *f, netsnmp_container *cin, int flags)
{
char line[STRINGMAX], *ptr;
size_t len;
netsnmp_assert(NULL != f);
netsnmp_assert(NULL != cin);
while (fgets(line, sizeof(line), f) != NULL) {
ptr = line;
len = strlen(line) - 1;
if (line[len] == '\n')
line[len] = 0;
/*
* save blank line or comment?
*/
if (flags & PM_FLAG_SKIP_WHITESPACE) {
if (NULL == (ptr = skip_white(ptr)))
continue;
}
ptr = strdup(line);
if (NULL == ptr) {
snmp_log(LOG_ERR,"malloc failed\n");
break;
}
CONTAINER_INSERT(cin,ptr);
}
}
开发者ID:ColdStart,项目名称:SNMPD,代码行数:37,代码来源:text_utils.c
示例16: str_to_bool
Bool
str_to_bool(
char *ptr,
Bool def_val
)
{
if (!ptr || !*ptr) return def_val;
skip_white(ptr);
switch (*ptr) { /* true/false , 1/0 , yes/no , on/off */
case '1':
case 'T': case 't':
case 'Y': case 'y':
def_val = True; break;
case '0':
case 'F': case 'f':
case 'N': case 'n':
def_val = False; break;
case 'O': case 'o':
if (ptr[1] == 'N' || ptr[1] == 'n')
def_val = True;
else if (ptr[1] == 'F' || ptr[1] == 'f')
def_val = False;
break;
}
return def_val;
}
开发者ID:juddy,项目名称:edcde,代码行数:29,代码来源:I18nUtil.c
示例17: read_ascii_double
/* Read a single double in ascii (not locale) encoding.
*
* Return the char that caused failure on fail (EOF or \n).
*/
static int
read_ascii_double( FILE *fp, const char whitemap[256], double *out )
{
int ch;
char buf[256];
char *p;
*out = 0.0;
ch = skip_white( fp, whitemap );
if( ch == EOF ||
ch == '\n' )
return( ch );
fetch_nonwhite( fp, whitemap, buf, 256 );
/* The str we fetched must contain at least 1 digit. This helps stop
* us trying to convert "MATLAB" (for example) to a number and
* getting zero.
*/
for( p = buf; *p; p++ )
if( isdigit( *p ) )
break;
if( !*p )
return( *buf );
*out = g_ascii_strtod( buf, NULL );
return( 0 );
}
开发者ID:binarytemple,项目名称:debian-vips,代码行数:35,代码来源:csv.c
示例18: parse_name
static char* parse_name( char* in )
{
char* out = in;
while ( 1 )
{
int c = *in;
if ( !c ) break;
in++;
if ( c == ',' ) // commas in string
{
char* p = skip_white( in );
if ( *p == ',' || *p == '-' || from_dec( *p ) <= 9 )
{
in = p;
break;
}
}
if ( c == '\\' ) // \ prefix for special characters
{
c = *in;
if ( !c ) break;
in++;
}
*out++ = (char) c;
}
*out = 0; // terminate string
return in;
}
开发者ID:9a3eedi,项目名称:Droidsound,代码行数:30,代码来源:M3u_Playlist.cpp
示例19: factor
float factor() {
float value;
float sign = 1.0;
if (*look == '-') {
sign = -1;
}
if (*look == '(') {
match('(');
value = expression();
match(')');
return value;
}
else if (is_alpha(*look)) {
switch (*look) {
case 'x': {
value = env.x;
} break;
case 'y': {
value = env.y;
} break;
}
get_char();
skip_white();
}
else {
value = get_num();
}
return sign*value;
}
开发者ID:samrat,项目名称:phase-plane,代码行数:31,代码来源:interpreter.c
示例20: se_read_conf
void
se_read_conf(const char *word, char *cptr)
{
int major, minor;
int value;
char *cp, *cp2;
char e_name[BUFSIZ];
char e_enum[ BUFSIZ];
if (!cptr || *cptr=='\0')
return;
/*
* Extract the first token
* (which should be the name of the list)
*/
cp = copy_nword(cptr, e_name, sizeof(e_name));
cp = skip_white(cp);
if (!cp || *cp=='\0')
return;
/*
* Add each remaining enumeration to the list,
* using the appropriate style interface
*/
if (sscanf(e_name, "%d:%d", &major, &minor) == 2) {
/*
* Numeric major/minor style
*/
while (1) {
cp = copy_nword(cp, e_enum, sizeof(e_enum));
if (sscanf(e_enum, "%d:", &value) != 1) {
break;
}
cp2 = e_enum;
while (*(cp2++) != ':')
;
se_add_pair(major, minor, strdup(cp2), value);
if (!cp)
break;
}
} else {
/*
* Named enumeration
*/
while (1) {
cp = copy_nword(cp, e_enum, sizeof(e_enum));
if (sscanf(e_enum, "%d:", &value) != 1) {
break;
}
cp2 = e_enum;
while (*(cp2++) != ':')
;
se_add_pair_to_slist(e_name, strdup(cp2), value);
if (!cp)
break;
}
}
}
开发者ID:ColdStart,项目名称:SNMPD,代码行数:60,代码来源:snmp_enum.c
注:本文中的skip_white函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论