\hypertarget{group__cpelang}{ \section{CPE Language} \label{group__cpelang}\index{CPE Language@{CPE Language}} } See more details at \href{http://nvd.nist.gov/cpe.cfm.}{\tt http://nvd.nist.gov/cpe.cfm.} \subsection*{Data Structures} \begin{DoxyCompactItemize} \item struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} \begin{DoxyCompactList}\small\item\em CPE language boolean expression. \item\end{DoxyCompactList}\item struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} \begin{DoxyCompactList}\small\item\em CPE platform specification. \item\end{DoxyCompactList}\item struct \hyperlink{structcpe__platform}{cpe\_\-platform} \begin{DoxyCompactList}\small\item\em Single platform representation in CPE language. \item\end{DoxyCompactList}\item struct \hyperlink{structcpe__platform__iterator}{cpe\_\-platform\_\-iterator} \begin{DoxyCompactList}\small\item\em Iterator over CPE dictionary items. \item\end{DoxyCompactList}\item struct \hyperlink{structcpe__testexpr__iterator}{cpe\_\-testexpr\_\-iterator} \begin{DoxyCompactList}\small\item\em Iterator over CPE language expressions. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Modules} \begin{DoxyCompactItemize} \item \hyperlink{group__CPELangPrivate}{Private members} \end{DoxyCompactItemize} \subsection*{Files} \begin{DoxyCompactItemize} \item file \hyperlink{cpelang__priv_8h}{cpelang\_\-priv.h} \begin{DoxyCompactList}\small\item\em Interface to Common Platform Enumeration (CPE) Language. \item\end{DoxyCompactList}\item file \hyperlink{cpelang_8h}{cpelang.h} \begin{DoxyCompactList}\small\item\em Interface to Common Platform Enumeration (CPE) Language. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Enumerations} \begin{DoxyCompactItemize} \item enum \hyperlink{group__cpelang_gacbb2c8c91d3bb516182bb64c6d8f7d82}{cpe\_\-lang\_\-oper\_\-t} \{ \par \hyperlink{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82aff8e856890304becc49a2d20226384c9}{CPE\_\-LANG\_\-OPER\_\-INVALID} = 0x00, \hyperlink{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a5f771b20c70ee0e33634122b911a7aac}{CPE\_\-LANG\_\-OPER\_\-AND} = 0x01, \hyperlink{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a9dd5489d930d04d6abf1764da5e45a5c}{CPE\_\-LANG\_\-OPER\_\-OR} = 0x02, \hyperlink{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a6780963744226db651cbceb998302a6d}{CPE\_\-LANG\_\-OPER\_\-MATCH} = 0x04, \par \hyperlink{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a40fe8d6616363046111b48e04aaf47fa}{CPE\_\-LANG\_\-OPER\_\-MASK} = 0xFF, \hyperlink{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a77cd2c7e835b07adc60002de1c041b4f}{CPE\_\-LANG\_\-OPER\_\-NOT} = 0x100, {\bfseries CPE\_\-LANG\_\-OPER\_\-NAND} = CPE\_\-LANG\_\-OPER\_\-AND $|$ CPE\_\-LANG\_\-OPER\_\-NOT, {\bfseries CPE\_\-LANG\_\-OPER\_\-NOR} = CPE\_\-LANG\_\-OPER\_\-OR $|$ CPE\_\-LANG\_\-OPER\_\-NOT \} \begin{DoxyCompactList}\small\item\em CPE language operators. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Get functions} \label{_amgrpc2ac1eb4de8ec5add5567cbae2f237e5} Functions for getting attributes from CVE model structures. Return value is pointer to structure's member. Do not free unless you null the pointer in the structure. Use remove function otherwise. \begin{DoxyCompactItemize} \item \hypertarget{group__cpelang_ga310cec52c2b21a717df860d162840baa}{ struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$ {\bfseries cpe\_\-lang\_\-model\_\-get\_\-item} (const struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$item, const char $\ast$key)} \label{group__cpelang_ga310cec52c2b21a717df860d162840baa} \item \hypertarget{group__cpelang_ga4016df3687404f37811b7f94c31e26a4}{ \hyperlink{group__cpelang_gacbb2c8c91d3bb516182bb64c6d8f7d82}{cpe\_\-lang\_\-oper\_\-t} \hyperlink{group__cpelang_ga4016df3687404f37811b7f94c31e26a4}{cpe\_\-testexpr::cpe\_\-testexpr\_\-get\_\-oper} (const struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$item)} \label{group__cpelang_ga4016df3687404f37811b7f94c31e26a4} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} functions to get variable members \item\end{DoxyCompactList}\item struct \hyperlink{structcpe__testexpr__iterator}{cpe\_\-testexpr\_\-iterator} $\ast$ \hyperlink{group__cpelang_ga2b7e68ad301e0c45227c7fc9071be2cd}{cpe\_\-testexpr::cpe\_\-testexpr\_\-get\_\-meta\_\-expr} (const struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$item) \begin{DoxyCompactList}\small\item\em Get CPE expression subexpression. \item\end{DoxyCompactList}\item struct \hyperlink{structcpe__name}{cpe\_\-name} $\ast$ \hyperlink{group__cpelang_ga8b24fb99f23926f558662d6808bcb534}{cpe\_\-testexpr::cpe\_\-testexpr\_\-get\_\-meta\_\-cpe} (const struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$item) \begin{DoxyCompactList}\small\item\em Get CPE name to match against. \item\end{DoxyCompactList}\item struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$ \hyperlink{group__cpelang_gab229fbb8fa2c2c0de0714ce2c9c9bc53}{cpe\_\-testexpr::cpe\_\-testexpr\_\-get\_\-next} (const struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$expr) \begin{DoxyCompactList}\small\item\em Function to get next expr from array. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga8c3446147158e606b9d02ccd33020d8a}{ const char $\ast$ \hyperlink{group__cpelang_ga8c3446147158e606b9d02ccd33020d8a}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-get\_\-ns\_\-prefix} (const struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$item)} \label{group__cpelang_ga8c3446147158e606b9d02ccd33020d8a} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} function to get namespace prefix \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_gaa5e9009c4b979291e110552c8e8a31b1}{ struct \hyperlink{structcpe__platform__iterator}{cpe\_\-platform\_\-iterator} $\ast$ \hyperlink{group__cpelang_gaa5e9009c4b979291e110552c8e8a31b1}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-get\_\-platforms} (const struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$item)} \label{group__cpelang_gaa5e9009c4b979291e110552c8e8a31b1} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} function to get CPE platforms \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga90b91aecc0f9f8255a32b1fe00de1234}{ struct \hyperlink{structxml__metadata__iterator}{xml\_\-metadata\_\-iterator} $\ast$ \hyperlink{group__cpelang_ga90b91aecc0f9f8255a32b1fe00de1234}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-get\_\-xmlns} (const struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$item)} \label{group__cpelang_ga90b91aecc0f9f8255a32b1fe00de1234} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} function to get xmlns attribute \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga8b9494431d8599fe802361433231436d}{ const char $\ast$ \hyperlink{group__cpelang_ga8b9494431d8599fe802361433231436d}{cpe\_\-platform::cpe\_\-platform\_\-get\_\-id} (const struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$item)} \label{group__cpelang_ga8b9494431d8599fe802361433231436d} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__platform}{cpe\_\-platform} functions to get id \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga11161328967d030f8d71608b27415676}{ const char $\ast$ \hyperlink{group__cpelang_ga11161328967d030f8d71608b27415676}{cpe\_\-platform::cpe\_\-platform\_\-get\_\-remark} (const struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$item)} \label{group__cpelang_ga11161328967d030f8d71608b27415676} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__platform}{cpe\_\-platform} functions to get remark \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_gab6a97be125225b1d698e7e6f9c0001f1}{ struct \hyperlink{structoscap__title__iterator}{oscap\_\-title\_\-iterator} $\ast$ \hyperlink{group__cpelang_gab6a97be125225b1d698e7e6f9c0001f1}{cpe\_\-platform::cpe\_\-platform\_\-get\_\-titles} (const struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$item)} \label{group__cpelang_gab6a97be125225b1d698e7e6f9c0001f1} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__platform}{cpe\_\-platform} functions to get titles \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga66c92792dad71233eaca532a143aefac}{ struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$ \hyperlink{group__cpelang_ga66c92792dad71233eaca532a143aefac}{cpe\_\-platform::cpe\_\-platform\_\-get\_\-expr} (const struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$item)} \label{group__cpelang_ga66c92792dad71233eaca532a143aefac} \begin{DoxyCompactList}\small\item\em \hyperlink{structcpe__platform}{cpe\_\-platform} functions to get test expression \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Iterator functions} \label{_amgrp5668530844eac97b0daa3354806c1edf} Functions to iterate throught lists. \begin{DoxyCompactItemize} \item struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$ \hyperlink{group__cpelang_gad18be4cfe7be42e8869a3e0e7202532f}{cpe\_\-platform\_\-iterator::cpe\_\-platform\_\-iterator\_\-next} (struct \hyperlink{structcpe__platform__iterator}{cpe\_\-platform\_\-iterator} $\ast$it) \item bool \hyperlink{group__cpelang_gafe87b5c9308ad0cf4f2e55a73b008b91}{cpe\_\-platform\_\-iterator::cpe\_\-platform\_\-iterator\_\-has\_\-more} (struct \hyperlink{structcpe__platform__iterator}{cpe\_\-platform\_\-iterator} $\ast$it) \item void \hyperlink{group__cpelang_gafbcede38295c3ae9cc4c2e568ce3ea26}{cpe\_\-platform\_\-iterator::cpe\_\-platform\_\-iterator\_\-free} (struct \hyperlink{structcpe__platform__iterator}{cpe\_\-platform\_\-iterator} $\ast$it) \item struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$ \hyperlink{group__cpelang_gadba17c675fef806a7a97bb9976bbfa6c}{cpe\_\-testexpr\_\-iterator::cpe\_\-testexpr\_\-iterator\_\-next} (struct \hyperlink{structcpe__testexpr__iterator}{cpe\_\-testexpr\_\-iterator} $\ast$it) \item bool \hyperlink{group__cpelang_ga43c36e2b99f7362081eb2f7a2130cc6f}{cpe\_\-testexpr\_\-iterator::cpe\_\-testexpr\_\-iterator\_\-has\_\-more} (struct \hyperlink{structcpe__testexpr__iterator}{cpe\_\-testexpr\_\-iterator} $\ast$it) \item void \hyperlink{group__cpelang_ga7578274b57a93aebd0f462c779ec20be}{cpe\_\-testexpr\_\-iterator::cpe\_\-testexpr\_\-iterator\_\-free} (struct \hyperlink{structcpe__testexpr__iterator}{cpe\_\-testexpr\_\-iterator} $\ast$it) \end{DoxyCompactItemize} \subsection*{Add functions} \label{_amgrpaabced06c8a2e8c15954ce4b1e334884} Get XML namespace from CPE lang model Functions to add member to list. Return value is true if added succesfuly or false in case of error. \begin{DoxyCompactItemize} \item \hypertarget{group__cpelang_ga563eeb9702f9c93df5a25998e9a39600}{ bool \hyperlink{group__cpelang_ga563eeb9702f9c93df5a25998e9a39600}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-add\_\-platform} (struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$lang, struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$platform)} \label{group__cpelang_ga563eeb9702f9c93df5a25998e9a39600} \begin{DoxyCompactList}\small\item\em Add platform to CPE lang model. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_gab31bfb6288d13667166acab4947db1ff}{ bool \hyperlink{group__cpelang_gab31bfb6288d13667166acab4947db1ff}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-add\_\-xml} (struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$lang, struct \hyperlink{structxml__metadata}{xml\_\-metadata} $\ast$xml)} \label{group__cpelang_gab31bfb6288d13667166acab4947db1ff} \begin{DoxyCompactList}\small\item\em Add xml metadata to CPE lang model. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga64da424f8bd783da762bee8b766e247d}{ bool \hyperlink{group__cpelang_ga64da424f8bd783da762bee8b766e247d}{cpe\_\-platform::cpe\_\-platform\_\-add\_\-title} (struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$platform, struct \hyperlink{structoscap__title}{oscap\_\-title} $\ast$title)} \label{group__cpelang_ga64da424f8bd783da762bee8b766e247d} \begin{DoxyCompactList}\small\item\em Add title to platform. \item\end{DoxyCompactList}\item bool \hyperlink{group__cpelang_ga0f9cb4770990700bb2828faf397addb3}{cpe\_\-testexpr::cpe\_\-testexpr\_\-add\_\-subexpression} (struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$expr, struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$sub) \begin{DoxyCompactList}\small\item\em Add XML namespace to CPE lang model. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Remove functions} \label{_amgrp40428a142bd2c0b6ea1306c0905502ce} Functions to remove list memebers that the given iterator is pointing to. \begin{DoxyCompactItemize} \item void \hyperlink{group__cpelang_gaf7011b78669b32e52036b3923878e831}{cpe\_\-platform\_\-iterator::cpe\_\-platform\_\-iterator\_\-remove} (struct \hyperlink{structcpe__platform__iterator}{cpe\_\-platform\_\-iterator} $\ast$it, struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$parent) \end{DoxyCompactItemize} \subsection*{New functions} \label{_amgrp73a4128f20867fa23ebb2e75e58922df} Constructors of CVE model structures. Free function returns new empty allocated structure. If returns non NULL it need to be freed by the caller. \begin{DoxyCompactItemize} \item \hypertarget{group__cpelang_gab38c9e5fb94f6cbb806cb02d4d24bf51}{ struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$ \hyperlink{group__cpelang_gab38c9e5fb94f6cbb806cb02d4d24bf51}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-new} (void)} \label{group__cpelang_gab38c9e5fb94f6cbb806cb02d4d24bf51} \begin{DoxyCompactList}\small\item\em Constructor of CPE Language model. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga6de4dc9c0d8171bcb666da7bbae44984}{ struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$ \hyperlink{group__cpelang_ga6de4dc9c0d8171bcb666da7bbae44984}{cpe\_\-testexpr::cpe\_\-testexpr\_\-new} (void)} \label{group__cpelang_ga6de4dc9c0d8171bcb666da7bbae44984} \begin{DoxyCompactList}\small\item\em Constructor of CPE test expression. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_gad83641ba4fb292a923b7ff5753b4070d}{ struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$ \hyperlink{group__cpelang_gad83641ba4fb292a923b7ff5753b4070d}{cpe\_\-platform::cpe\_\-platform\_\-new} (void)} \label{group__cpelang_gad83641ba4fb292a923b7ff5753b4070d} \begin{DoxyCompactList}\small\item\em Constructor of CPE Platform. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Set functions} \label{_amgrp8b7ecf2f4bd25da1aae981677901d55d} Set functions assign values to members of structures except lists. For lists use add functions. Parameters of set functions are duplicated in memory and need to be freed by caller. \begin{DoxyCompactItemize} \item \hypertarget{group__cpelang_ga24d19a5cfb7d414053f8a5e99a4e6b5a}{ bool \hyperlink{group__cpelang_ga24d19a5cfb7d414053f8a5e99a4e6b5a}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-set\_\-ns\_\-prefix} (struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$model, const char $\ast$new\_\-prefix)} \label{group__cpelang_ga24d19a5cfb7d414053f8a5e99a4e6b5a} \begin{DoxyCompactList}\small\item\em Set ns\_\-prefix to CPE lang model. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_gad59b55938ebbe388218016cb67fbac50}{ bool \hyperlink{group__cpelang_gad59b55938ebbe388218016cb67fbac50}{cpe\_\-platform::cpe\_\-platform\_\-set\_\-id} (struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$platform, const char $\ast$new\_\-id)} \label{group__cpelang_gad59b55938ebbe388218016cb67fbac50} \begin{DoxyCompactList}\small\item\em Set ID of CPE platform. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga301685568659041bd2a47c958800ddbc}{ bool \hyperlink{group__cpelang_ga301685568659041bd2a47c958800ddbc}{cpe\_\-platform::cpe\_\-platform\_\-set\_\-remark} (struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$platform, const char $\ast$new\_\-remark)} \label{group__cpelang_ga301685568659041bd2a47c958800ddbc} \begin{DoxyCompactList}\small\item\em Set remark of CPE platform. \item\end{DoxyCompactList}\item bool \hyperlink{group__cpelang_gaa9bc76ff30e7f9faa4def792404c1a62}{cpe\_\-platform::cpe\_\-platform\_\-set\_\-expr} (struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$platform, struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$expr) \begin{DoxyCompactList}\small\item\em Set evaluation expression for this CPE platform. \item\end{DoxyCompactList}\item bool \hyperlink{group__cpelang_gaf5cbbabfe39b2bbd5eebd180d0b3eb68}{cpe\_\-testexpr::cpe\_\-testexpr\_\-set\_\-oper} (struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$expr, \hyperlink{group__cpelang_gacbb2c8c91d3bb516182bb64c6d8f7d82}{cpe\_\-lang\_\-oper\_\-t} oper) \begin{DoxyCompactList}\small\item\em Set CPE operation. \item\end{DoxyCompactList}\item bool \hyperlink{group__cpelang_gaa95723258aff68c121c25c825852d5c3}{cpe\_\-testexpr::cpe\_\-testexpr\_\-set\_\-name} (struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$expr, struct \hyperlink{structcpe__name}{cpe\_\-name} $\ast$name) \begin{DoxyCompactList}\small\item\em Set CPE name. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Free functions} \label{_amgrp237dd65bc76b7de56066830910ced6ed} Destructors of CVE model structures. Functions free structures with all members recursively. For simple deletion of entity use remove functions. \begin{DoxyCompactItemize} \item \hypertarget{group__cpelang_gac6135bb7df1b4c083e97dcb67f7bfccd}{ void \hyperlink{group__cpelang_gac6135bb7df1b4c083e97dcb67f7bfccd}{cpe\_\-testexpr::cpe\_\-testexpr\_\-free} (struct \hyperlink{structcpe__testexpr}{cpe\_\-testexpr} $\ast$expr)} \label{group__cpelang_gac6135bb7df1b4c083e97dcb67f7bfccd} \begin{DoxyCompactList}\small\item\em Free function of CPE test expression. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga6a4e8a7210b76078bb6ac8bc9f3be0a7}{ void \hyperlink{group__cpelang_ga6a4e8a7210b76078bb6ac8bc9f3be0a7}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-free} (struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$platformspec)} \label{group__cpelang_ga6a4e8a7210b76078bb6ac8bc9f3be0a7} \begin{DoxyCompactList}\small\item\em Free function of CPE test expression. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga1bcb12e96db31e6b57be749fd5ba3b3e}{ void \hyperlink{group__cpelang_ga1bcb12e96db31e6b57be749fd5ba3b3e}{cpe\_\-platform::cpe\_\-platform\_\-free} (struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$platform)} \label{group__cpelang_ga1bcb12e96db31e6b57be749fd5ba3b3e} \begin{DoxyCompactList}\small\item\em Free function of CPE Platform. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Other functions} \label{_amgrpb175402ebe89f00c62233c5453c5a243} \begin{DoxyCompactItemize} \item const char $\ast$ \hyperlink{group__cpelang_gabf469c1ab5798bb321e6c89ffb4b6e9d}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-supported} (void) \begin{DoxyCompactList}\small\item\em Get supported version of CPE language XML. \item\end{DoxyCompactList}\item bool \hyperlink{group__cpelang_ga087bb45387925a51ae6be052320327c2}{cpe\_\-lang\_\-model::cpe\_\-platform\_\-match\_\-cpe} (struct \hyperlink{structcpe__name}{cpe\_\-name} $\ast$$\ast$cpe, size\_\-t n, const struct \hyperlink{structcpe__platform}{cpe\_\-platform} $\ast$platform) \begin{DoxyCompactList}\small\item\em Function to match cpe in platform. \item\end{DoxyCompactList}\item \hypertarget{group__cpelang_ga092a153b42c0b5565a2c22eebf79874d}{ struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$ \hyperlink{group__cpelang_ga092a153b42c0b5565a2c22eebf79874d}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-import} (const struct \hyperlink{structoscap__import__source}{oscap\_\-import\_\-source} $\ast$source)} \label{group__cpelang_ga092a153b42c0b5565a2c22eebf79874d} \begin{DoxyCompactList}\small\item\em Load CPE language model from a XML document. \item\end{DoxyCompactList}\item void \hyperlink{group__cpelang_gade703f4a7cf45cefa351f975a5fed5da}{cpe\_\-lang\_\-model::cpe\_\-lang\_\-model\_\-export} (const struct \hyperlink{structcpe__lang__model}{cpe\_\-lang\_\-model} $\ast$spec, struct \hyperlink{structoscap__export__target}{oscap\_\-export\_\-target} $\ast$target) \begin{DoxyCompactList}\small\item\em Write the lang\_\-model to a file. \item\end{DoxyCompactList}\end{DoxyCompactItemize} \subsection{Detailed Description} See more details at \href{http://nvd.nist.gov/cpe.cfm.}{\tt http://nvd.nist.gov/cpe.cfm.} Class diagram \subsection{Enumeration Type Documentation} \hypertarget{group__cpelang_gacbb2c8c91d3bb516182bb64c6d8f7d82}{ \index{cpelang@{cpelang}!cpe\_\-lang\_\-oper\_\-t@{cpe\_\-lang\_\-oper\_\-t}} \index{cpe\_\-lang\_\-oper\_\-t@{cpe\_\-lang\_\-oper\_\-t}!cpelang@{cpelang}} \subsubsection[{cpe\_\-lang\_\-oper\_\-t}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf cpe\_\-lang\_\-oper\_\-t}}} \label{group__cpelang_gacbb2c8c91d3bb516182bb64c6d8f7d82} CPE language operators. \begin{Desc} \item[Enumerator: ]\par \begin{description} \index{CPE\_\-LANG\_\-OPER\_\-INVALID@{CPE\_\-LANG\_\-OPER\_\-INVALID}!cpelang@{cpelang}}\index{cpelang@{cpelang}!CPE\_\-LANG\_\-OPER\_\-INVALID@{CPE\_\-LANG\_\-OPER\_\-INVALID}}\item[{\em \hypertarget{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82aff8e856890304becc49a2d20226384c9}{ CPE\_\-LANG\_\-OPER\_\-INVALID} \label{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82aff8e856890304becc49a2d20226384c9} }]invalid or unknown operation \index{CPE\_\-LANG\_\-OPER\_\-AND@{CPE\_\-LANG\_\-OPER\_\-AND}!cpelang@{cpelang}}\index{cpelang@{cpelang}!CPE\_\-LANG\_\-OPER\_\-AND@{CPE\_\-LANG\_\-OPER\_\-AND}}\item[{\em \hypertarget{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a5f771b20c70ee0e33634122b911a7aac}{ CPE\_\-LANG\_\-OPER\_\-AND} \label{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a5f771b20c70ee0e33634122b911a7aac} }]logical AND \index{CPE\_\-LANG\_\-OPER\_\-OR@{CPE\_\-LANG\_\-OPER\_\-OR}!cpelang@{cpelang}}\index{cpelang@{cpelang}!CPE\_\-LANG\_\-OPER\_\-OR@{CPE\_\-LANG\_\-OPER\_\-OR}}\item[{\em \hypertarget{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a9dd5489d930d04d6abf1764da5e45a5c}{ CPE\_\-LANG\_\-OPER\_\-OR} \label{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a9dd5489d930d04d6abf1764da5e45a5c} }]logical OR \index{CPE\_\-LANG\_\-OPER\_\-MATCH@{CPE\_\-LANG\_\-OPER\_\-MATCH}!cpelang@{cpelang}}\index{cpelang@{cpelang}!CPE\_\-LANG\_\-OPER\_\-MATCH@{CPE\_\-LANG\_\-OPER\_\-MATCH}}\item[{\em \hypertarget{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a6780963744226db651cbceb998302a6d}{ CPE\_\-LANG\_\-OPER\_\-MATCH} \label{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a6780963744226db651cbceb998302a6d} }]match against specified CPE \index{CPE\_\-LANG\_\-OPER\_\-MASK@{CPE\_\-LANG\_\-OPER\_\-MASK}!cpelang@{cpelang}}\index{cpelang@{cpelang}!CPE\_\-LANG\_\-OPER\_\-MASK@{CPE\_\-LANG\_\-OPER\_\-MASK}}\item[{\em \hypertarget{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a40fe8d6616363046111b48e04aaf47fa}{ CPE\_\-LANG\_\-OPER\_\-MASK} \label{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a40fe8d6616363046111b48e04aaf47fa} }]mask to extract the operator w/o possible negation \index{CPE\_\-LANG\_\-OPER\_\-NOT@{CPE\_\-LANG\_\-OPER\_\-NOT}!cpelang@{cpelang}}\index{cpelang@{cpelang}!CPE\_\-LANG\_\-OPER\_\-NOT@{CPE\_\-LANG\_\-OPER\_\-NOT}}\item[{\em \hypertarget{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a77cd2c7e835b07adc60002de1c041b4f}{ CPE\_\-LANG\_\-OPER\_\-NOT} \label{group__cpelang_ggacbb2c8c91d3bb516182bb64c6d8f7d82a77cd2c7e835b07adc60002de1c041b4f} }]negate \end{description} \end{Desc} \subsection{Function Documentation} \hypertarget{group__cpelang_gade703f4a7cf45cefa351f975a5fed5da}{ \index{cpelang@{cpelang}!cpe\_\-lang\_\-model\_\-export@{cpe\_\-lang\_\-model\_\-export}} \index{cpe\_\-lang\_\-model\_\-export@{cpe\_\-lang\_\-model\_\-export}!cpelang@{cpelang}} \subsubsection[{cpe\_\-lang\_\-model\_\-export}]{\setlength{\rightskip}{0pt plus 5cm}void cpe\_\-lang\_\-model\_\-export (const struct {\bf cpe\_\-lang\_\-model} $\ast$ {\em spec}, \/ struct {\bf oscap\_\-export\_\-target} $\ast$ {\em target})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gade703f4a7cf45cefa351f975a5fed5da} Write the lang\_\-model to a file. \begin{DoxyParams}{Parameters} \item[{\em spec}]CPE lang model \item[{\em target}]target structure with filename, endcoding and indent information \end{DoxyParams} \hypertarget{group__cpelang_gabf469c1ab5798bb321e6c89ffb4b6e9d}{ \index{cpelang@{cpelang}!cpe\_\-lang\_\-model\_\-supported@{cpe\_\-lang\_\-model\_\-supported}} \index{cpe\_\-lang\_\-model\_\-supported@{cpe\_\-lang\_\-model\_\-supported}!cpelang@{cpelang}} \subsubsection[{cpe\_\-lang\_\-model\_\-supported}]{\setlength{\rightskip}{0pt plus 5cm}const char $\ast$ cpe\_\-lang\_\-model\_\-supported (void)\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gabf469c1ab5798bb321e6c89ffb4b6e9d} Get supported version of CPE language XML. \begin{DoxyReturn}{Returns} version of XML file format \end{DoxyReturn} \hypertarget{group__cpelang_gafbcede38295c3ae9cc4c2e568ce3ea26}{ \index{cpelang@{cpelang}!cpe\_\-platform\_\-iterator\_\-free@{cpe\_\-platform\_\-iterator\_\-free}} \index{cpe\_\-platform\_\-iterator\_\-free@{cpe\_\-platform\_\-iterator\_\-free}!cpelang@{cpelang}} \subsubsection[{cpe\_\-platform\_\-iterator\_\-free}]{\setlength{\rightskip}{0pt plus 5cm}void cpe\_\-platform\_\-iterator\_\-free (struct {\bf cpe\_\-platform\_\-iterator} $\ast$ {\em it})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gafbcede38295c3ae9cc4c2e568ce3ea26} \hypertarget{group__cpelang_gafe87b5c9308ad0cf4f2e55a73b008b91}{ \index{cpelang@{cpelang}!cpe\_\-platform\_\-iterator\_\-has\_\-more@{cpe\_\-platform\_\-iterator\_\-has\_\-more}} \index{cpe\_\-platform\_\-iterator\_\-has\_\-more@{cpe\_\-platform\_\-iterator\_\-has\_\-more}!cpelang@{cpelang}} \subsubsection[{cpe\_\-platform\_\-iterator\_\-has\_\-more}]{\setlength{\rightskip}{0pt plus 5cm}bool cpe\_\-platform\_\-iterator\_\-has\_\-more (struct {\bf cpe\_\-platform\_\-iterator} $\ast$ {\em it})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gafe87b5c9308ad0cf4f2e55a73b008b91} \hypertarget{group__cpelang_gad18be4cfe7be42e8869a3e0e7202532f}{ \index{cpelang@{cpelang}!cpe\_\-platform\_\-iterator\_\-next@{cpe\_\-platform\_\-iterator\_\-next}} \index{cpe\_\-platform\_\-iterator\_\-next@{cpe\_\-platform\_\-iterator\_\-next}!cpelang@{cpelang}} \subsubsection[{cpe\_\-platform\_\-iterator\_\-next}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf cpe\_\-platform} $\ast$ cpe\_\-platform\_\-iterator\_\-next (struct {\bf cpe\_\-platform\_\-iterator} $\ast$ {\em it})\hspace{0.3cm}{\ttfamily \mbox{[}read, inherited\mbox{]}}}} \label{group__cpelang_gad18be4cfe7be42e8869a3e0e7202532f} \hypertarget{group__cpelang_gaf7011b78669b32e52036b3923878e831}{ \index{cpelang@{cpelang}!cpe\_\-platform\_\-iterator\_\-remove@{cpe\_\-platform\_\-iterator\_\-remove}} \index{cpe\_\-platform\_\-iterator\_\-remove@{cpe\_\-platform\_\-iterator\_\-remove}!cpelang@{cpelang}} \subsubsection[{cpe\_\-platform\_\-iterator\_\-remove}]{\setlength{\rightskip}{0pt plus 5cm}void cpe\_\-platform\_\-iterator\_\-remove (struct {\bf cpe\_\-platform\_\-iterator} $\ast$ {\em it}, \/ struct {\bf cpe\_\-lang\_\-model} $\ast$ {\em parent})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gaf7011b78669b32e52036b3923878e831} \hypertarget{group__cpelang_ga087bb45387925a51ae6be052320327c2}{ \index{cpelang@{cpelang}!cpe\_\-platform\_\-match\_\-cpe@{cpe\_\-platform\_\-match\_\-cpe}} \index{cpe\_\-platform\_\-match\_\-cpe@{cpe\_\-platform\_\-match\_\-cpe}!cpelang@{cpelang}} \subsubsection[{cpe\_\-platform\_\-match\_\-cpe}]{\setlength{\rightskip}{0pt plus 5cm}bool cpe\_\-platform\_\-match\_\-cpe (struct {\bf cpe\_\-name} $\ast$$\ast$ {\em cpe}, \/ size\_\-t {\em n}, \/ const struct {\bf cpe\_\-platform} $\ast$ {\em platform})\hspace{0.3cm}{\ttfamily \mbox{[}related, inherited\mbox{]}}}} \label{group__cpelang_ga087bb45387925a51ae6be052320327c2} Function to match cpe in platform. \begin{DoxyParams}{Parameters} \item[{\em cpe}]to be matched with \item[{\em n}]size \item[{\em platform}]CPE platform \end{DoxyParams} \hypertarget{group__cpelang_gaa9bc76ff30e7f9faa4def792404c1a62}{ \index{cpelang@{cpelang}!cpe\_\-platform\_\-set\_\-expr@{cpe\_\-platform\_\-set\_\-expr}} \index{cpe\_\-platform\_\-set\_\-expr@{cpe\_\-platform\_\-set\_\-expr}!cpelang@{cpelang}} \subsubsection[{cpe\_\-platform\_\-set\_\-expr}]{\setlength{\rightskip}{0pt plus 5cm}bool cpe\_\-platform\_\-set\_\-expr (struct {\bf cpe\_\-platform} $\ast$ {\em platform}, \/ struct {\bf cpe\_\-testexpr} $\ast$ {\em expr})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gaa9bc76ff30e7f9faa4def792404c1a62} Set evaluation expression for this CPE platform. Expression has to be a logical-\/test (i.e. its operation shall be AND or OR, possibly with negation) \hypertarget{group__cpelang_ga0f9cb4770990700bb2828faf397addb3}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-add\_\-subexpression@{cpe\_\-testexpr\_\-add\_\-subexpression}} \index{cpe\_\-testexpr\_\-add\_\-subexpression@{cpe\_\-testexpr\_\-add\_\-subexpression}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-add\_\-subexpression}]{\setlength{\rightskip}{0pt plus 5cm}bool cpe\_\-testexpr\_\-add\_\-subexpression (struct {\bf cpe\_\-testexpr} $\ast$ {\em expr}, \/ struct {\bf cpe\_\-testexpr} $\ast$ {\em sub})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_ga0f9cb4770990700bb2828faf397addb3} Add XML namespace to CPE lang model. Add an subexpression to a compound CPE language expression. Expression has to be of type CPE\_\-LANG\_\-OPER\_\-AND or CPE\_\-LANG\_\-OPER\_\-OR, possibly with negation. \hypertarget{group__cpelang_ga8b24fb99f23926f558662d6808bcb534}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-get\_\-meta\_\-cpe@{cpe\_\-testexpr\_\-get\_\-meta\_\-cpe}} \index{cpe\_\-testexpr\_\-get\_\-meta\_\-cpe@{cpe\_\-testexpr\_\-get\_\-meta\_\-cpe}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-get\_\-meta\_\-cpe}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf cpe\_\-name} $\ast$ cpe\_\-testexpr\_\-get\_\-meta\_\-cpe (const struct {\bf cpe\_\-testexpr} $\ast$ {\em item})\hspace{0.3cm}{\ttfamily \mbox{[}read, inherited\mbox{]}}}} \label{group__cpelang_ga8b24fb99f23926f558662d6808bcb534} Get CPE name to match against. Only valid for CPE\_\-LANG\_\-OPER\_\-MATCH. \hypertarget{group__cpelang_ga2b7e68ad301e0c45227c7fc9071be2cd}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-get\_\-meta\_\-expr@{cpe\_\-testexpr\_\-get\_\-meta\_\-expr}} \index{cpe\_\-testexpr\_\-get\_\-meta\_\-expr@{cpe\_\-testexpr\_\-get\_\-meta\_\-expr}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-get\_\-meta\_\-expr}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf cpe\_\-testexpr\_\-iterator} $\ast$ cpe\_\-testexpr\_\-get\_\-meta\_\-expr (const struct {\bf cpe\_\-testexpr} $\ast$ {\em item})\hspace{0.3cm}{\ttfamily \mbox{[}read, inherited\mbox{]}}}} \label{group__cpelang_ga2b7e68ad301e0c45227c7fc9071be2cd} Get CPE expression subexpression. Not valid for CPE\_\-LANG\_\-OPER\_\-MATCH operation. \hypertarget{group__cpelang_gab229fbb8fa2c2c0de0714ce2c9c9bc53}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-get\_\-next@{cpe\_\-testexpr\_\-get\_\-next}} \index{cpe\_\-testexpr\_\-get\_\-next@{cpe\_\-testexpr\_\-get\_\-next}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-get\_\-next}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf cpe\_\-testexpr} $\ast$ cpe\_\-testexpr\_\-get\_\-next (const struct {\bf cpe\_\-testexpr} $\ast$ {\em expr})\hspace{0.3cm}{\ttfamily \mbox{[}read, inherited\mbox{]}}}} \label{group__cpelang_gab229fbb8fa2c2c0de0714ce2c9c9bc53} Function to get next expr from array. \begin{DoxyParams}{Parameters} \item[{\em expr}]CPE Test expression structure \end{DoxyParams} \hypertarget{group__cpelang_ga7578274b57a93aebd0f462c779ec20be}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-iterator\_\-free@{cpe\_\-testexpr\_\-iterator\_\-free}} \index{cpe\_\-testexpr\_\-iterator\_\-free@{cpe\_\-testexpr\_\-iterator\_\-free}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-iterator\_\-free}]{\setlength{\rightskip}{0pt plus 5cm}void cpe\_\-testexpr\_\-iterator\_\-free (struct {\bf cpe\_\-testexpr\_\-iterator} $\ast$ {\em it})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_ga7578274b57a93aebd0f462c779ec20be} \hypertarget{group__cpelang_ga43c36e2b99f7362081eb2f7a2130cc6f}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-iterator\_\-has\_\-more@{cpe\_\-testexpr\_\-iterator\_\-has\_\-more}} \index{cpe\_\-testexpr\_\-iterator\_\-has\_\-more@{cpe\_\-testexpr\_\-iterator\_\-has\_\-more}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-iterator\_\-has\_\-more}]{\setlength{\rightskip}{0pt plus 5cm}bool cpe\_\-testexpr\_\-iterator\_\-has\_\-more (struct {\bf cpe\_\-testexpr\_\-iterator} $\ast$ {\em it})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_ga43c36e2b99f7362081eb2f7a2130cc6f} \hypertarget{group__cpelang_gadba17c675fef806a7a97bb9976bbfa6c}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-iterator\_\-next@{cpe\_\-testexpr\_\-iterator\_\-next}} \index{cpe\_\-testexpr\_\-iterator\_\-next@{cpe\_\-testexpr\_\-iterator\_\-next}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-iterator\_\-next}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf cpe\_\-testexpr} $\ast$ cpe\_\-testexpr\_\-iterator\_\-next (struct {\bf cpe\_\-testexpr\_\-iterator} $\ast$ {\em it})\hspace{0.3cm}{\ttfamily \mbox{[}read, inherited\mbox{]}}}} \label{group__cpelang_gadba17c675fef806a7a97bb9976bbfa6c} \hypertarget{group__cpelang_gaa95723258aff68c121c25c825852d5c3}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-set\_\-name@{cpe\_\-testexpr\_\-set\_\-name}} \index{cpe\_\-testexpr\_\-set\_\-name@{cpe\_\-testexpr\_\-set\_\-name}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-set\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}bool cpe\_\-testexpr\_\-set\_\-name (struct {\bf cpe\_\-testexpr} $\ast$ {\em expr}, \/ struct {\bf cpe\_\-name} $\ast$ {\em name})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gaa95723258aff68c121c25c825852d5c3} Set CPE name. If the expression does not have type CPE\_\-LANG\_\-OPER\_\-MATCH, this function has no effect and returns false. \hypertarget{group__cpelang_gaf5cbbabfe39b2bbd5eebd180d0b3eb68}{ \index{cpelang@{cpelang}!cpe\_\-testexpr\_\-set\_\-oper@{cpe\_\-testexpr\_\-set\_\-oper}} \index{cpe\_\-testexpr\_\-set\_\-oper@{cpe\_\-testexpr\_\-set\_\-oper}!cpelang@{cpelang}} \subsubsection[{cpe\_\-testexpr\_\-set\_\-oper}]{\setlength{\rightskip}{0pt plus 5cm}bool cpe\_\-testexpr\_\-set\_\-oper (struct {\bf cpe\_\-testexpr} $\ast$ {\em expr}, \/ {\bf cpe\_\-lang\_\-oper\_\-t} {\em oper})\hspace{0.3cm}{\ttfamily \mbox{[}inherited\mbox{]}}}} \label{group__cpelang_gaf5cbbabfe39b2bbd5eebd180d0b3eb68} Set CPE operation. Any subexpressions and CPE names associated with this expression will be removed.