예제 #1
0
CcXmlSpec_t *
CcXmlSpec(CcGlobals_t * globals)
{
    CcXmlSpec_t * self = (CcXmlSpec_t *)CcObject(&XmlSpecType);
    self->globals = globals;
    self->caseSensitive = TRUE;
    CcBitArray(&self->options, XSO_SIZE);
    CcArrayList(&self->Tags);
    CcArrayList(&self->Attrs);
    CcArrayList(&self->PInstructions);
    return self;
}
예제 #2
0
CcSyntax_t *
CcSyntax(CcSyntax_t * self, CcGlobals_t * globals)
{
    CcEBNF(&self->base);
    self->globals = globals;
    self->members = NULL;
    self->constructor = NULL;
    self->destructor = NULL;
    self->weakUsed = FALSE;
    self->schemeName = NULL;
    self->grammarPrefix = NULL;
    self->gramSy = NULL;
    self->eofSy = CcSymbolTable_NewTerminal(&self->globals->symtab, "EOF", 0);
    self->noSy = NULL;
    self->curSy = NULL;
    self->visited = NULL;
    self->allSyncSets = NULL;
    CcArrayList(&self->errors);
    return self;
}
예제 #3
0
CcGlobals_t *
CcGlobalsXml(CcGlobals_t * self, CcsErrorPool_t * errpool)
{
    self->errpool = errpool;
    self->templatePrefix = "Ccx";
    if (!CcSymbolTable(&self->symtab)) goto errquit1;
    self->lexical = NULL;
    if (!(self->xmlspecmap = CcXmlSpecMap(&self->u.xmlspecmapSpace, self)))
	goto errquit2;
    if (!CcSyntax(&self->syntax, self)) goto errquit3;
    if (!CcArrayList(&self->sections)) goto errquit4;
    return self;
 errquit4:
    CcSyntax_Destruct(&self->syntax);
 errquit3:
    CcXmlSpecMap_Destruct(self->xmlspecmap);
 errquit2:
    CcSymbolTable_Destruct(&self->symtab);
 errquit1:
    return NULL;
}
예제 #4
0
파일: EBNF.c 프로젝트: charlesw1234/cocoxml
CcEBNF_t *
CcEBNF(CcEBNF_t * self)
{
    CcArrayList(&self->nodes);
    return self;
}