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; }
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; }
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; }
CcEBNF_t * CcEBNF(CcEBNF_t * self) { CcArrayList(&self->nodes); return self; }