XML-Bare-SAX-Parser
view release on metacpan or search on metacpan
parser_engine.c view on Meta::CPAN
switch( *(cpos+1) ) {
case '!':
if( *(cpos+2) == '[' ) { // <![
//if( !strncmp( cpos+3, "CDATA", 5 ) ) {
if( *(cpos+3) == 'C' &&
*(cpos+4) == 'D' &&
*(cpos+5) == 'A' &&
*(cpos+6) == 'T' &&
*(cpos+7) == 'A' ) {
cpos += 9;
goto cdata;
}
else {
cpos++; cpos++;
goto val_x;//actually goto error...
}
}
else if( *(cpos+2) == '-' && // <!--
*(cpos+3) == '-' ) {
cpos += 4;
goto comment;
parser_engine.c view on Meta::CPAN
bang:
let = *cpos;
if( !let ) goto done;
if( let == '>' ) {
cpos++;
goto val_1;
}
cpos++;
goto bang;
cdata:
let = *cpos;
if( !let ) goto done;
if( let == ']' && *(cpos+1) == ']' && *(cpos+2) == '>' ) {
cpos += 3;
goto val_1;
}
if( !curnode->numvals ) {
curnode->value = cpos;
curnode->vallen = 0;
curnode->numvals = 1;
}
if( curnode->numvals == 1 ) curnode->vallen++;
cpos++;
goto cdata;
name_1:
let = *cpos;
if( !let ) goto done;
switch( let ) {
case 0:
goto done;
case ' ':
case 0x0d:
case 0x0a:
parser_engine.h view on Meta::CPAN
struct attc *firstatt;
struct attc *lastatt;
int numchildren;
int numatt;
char *name;
int namelen;
char *value;
char *comment;
int vallen;
int comlen;
int type;// cdata or normal
int numvals;
int numcoms;
};
struct nodec *nodec_addchildr( struct nodec *self, char *newname, int newnamelen );//, char *newval, int newvallen, int newtype );
//struct nodec *nodec_addchild( struct nodec *self, char *newname, int newnamelen );
struct attc *nodec_addattr ( struct nodec *self, char *newname, int newnamelen );//, char *newval, int newvallen );
//struct attc *nodec_addatt ( struct nodec *self, char *newname, int newnamelen );
struct nodec *new_nodecp( struct nodec *newparent );
( run in 0.597 second using v1.01-cache-2.11-cpan-454fe037f31 )