/* @func embPatternSeqCompile ************************************************* ** ** Adds compiled pattern into AjPPattern. ** ** @param [w] pat [AjPPatternSeq] Pattern for compiling ** @return [AjBool] True, if compilation succeeded ** @@ ******************************************************************************/ AjBool embPatternSeqCompile (AjPPatternSeq pat) { AjPPatComp embpat; AjBool embType; AjPStr pattern = NULL; ajStrAssignS(&pattern,ajPatternSeqGetPattern(pat)); ajStrFmtUpper(&pattern); ajDebug("embPatlistSeqCompile: name %S, pattern %S\n", ajPatternSeqGetName(pat),pattern); embpat = ajPatCompNew(); if (ajPatternSeqGetProtein(pat)) embType=ajTrue; else embType=ajFalse; if (!embPatGetTypeII(embpat,pattern, ajPatternSeqGetMismatch(pat),embType)) { ajDebug("embPatlistSeqCompile: Illegal pattern %S: '%S'\n", ajPatternSeqGetName(pat),ajPatternSeqGetPattern(pat)); ajPatCompDel(&embpat); ajStrDel(&pattern); return ajFalse; } embPatCompileII(embpat,ajPatternSeqGetMismatch(pat)); ajPatternSeqSetCompiled(pat,embpat); ajStrDel(&pattern); return ajTrue; }
void ajPatternSeqDel (AjPPatternSeq* pthys) { AjPPatternSeq thys = *pthys; ajStrDel(&thys->Name); ajStrDel(&thys->Pattern); ajPatCompDel((AjPPatComp*) &thys->Compiled); AJFREE (*pthys); return; }