##iinncclluuddee <> ##iinncclluuddee < > </pprree>> < > LLDDAAPPSSyynnttaaxx ** llddaapp__ssttrr22ssyynnttaaxx((ss,, ccooddee,, eerrrrpp,, ffllaaggss)) ccoonnsstt cchhaarr ** ss;; iinntt ** ccooddee;; ccoonnsstt cchhaarr **** eerrrrpp;; ccoonnsstt iinntt ffllaaggss;; <
> cchhaarr ** llddaapp__ssyynnttaaxx22ssttrr((ssyynn)) ccoonnsstt LLDDAAPPSSyynnttaaxx ** ssyynn;; <
> ccoonnsstt cchhaarr ** llddaapp__ssyynnttaaxx22nnaammee((ssyynn)) LLDDAAPPSSyynnttaaxx ** ssyynn;; <
> llddaapp__ssyynnttaaxx__ffrreeee((ssyynn)) LLDDAAPPSSyynnttaaxx ** ssyynn;; <
> LLDDAAPPMMaattcchhiinnggRRuullee ** llddaapp__ssttrr22mmaattcchhiinnggrruullee((ss,, ccooddee,, eerrrrpp,, ffllaaggss)) ccoonnsstt cchhaarr ** ss;; iinntt ** ccooddee;; ccoonnsstt cchhaarr **** eerrrrpp;; ccoonnsstt iinntt ffllaaggss;; <
> cchhaarr ** llddaapp__mmaattcchhiinnggrruullee22ssttrr((mmrr));; ccoonnsstt LLDDAAPPMMaattcchhiinnggRRuullee ** mmrr;; <
> ccoonnsstt cchhaarr ** llddaapp__mmaattcchhiinnggrruullee22nnaammee((mmrr)) LLDDAAPPMMaattcchhiinnggRRuullee ** mmrr;; <
> llddaapp__mmaattcchhiinnggrruullee__ffrreeee((mmrr)) LLDDAAPPMMaattcchhiinnggRRuullee ** mmrr;; <
> LLDDAAPPAAttttrriibbuutteeTTyyppee ** llddaapp__ssttrr22aattttrriibbuutteettyyppee((ss,, ccooddee,, eerrrrpp,, ffllaaggss)) ccoonnsstt cchhaarr ** ss;; iinntt ** ccooddee;; ccoonnsstt cchhaarr **** eerrrrpp;; ccoonnsstt iinntt ffllaaggss;; <
> cchhaarr ** llddaapp__aattttrriibbuutteettyyppee22ssttrr((aatt)) ccoonnsstt LLDDAAPPAAttttrriibbuutteeTTyyppee ** aatt;; <
> ccoonnsstt cchhaarr ** llddaapp__aattttrriibbuutteettyyppee22nnaammee((aatt)) LLDDAAPPAAttttrriibbuutteeTTyyppee ** aatt;; <
> llddaapp__aattttrriibbuutteettyyppee__ffrreeee((aatt)) LLDDAAPPAAttttrriibbuutteeTTyyppee ** aatt;; <
> LLDDAAPPOObbjjeeccttCCllaassss ** llddaapp__ssttrr22oobbjjeeccttccllaassss((ss,, ccooddee,, eerrrrpp,, ffllaaggss)) ccoonnsstt cchhaarr ** ss;; iinntt ** ccooddee;; ccoonnsstt cchhaarr **** eerrrrpp;; ccoonnsstt iinntt ffllaaggss;; <
> cchhaarr ** llddaapp__oobbjjeeccttccllaassss22ssttrr((oocc)) ccoonnsstt LLDDAAPPOObbjjeeccttCCllaassss ** oocc;; <
> ccoonnsstt cchhaarr ** llddaapp__oobbjjeeccttccllaassss22nnaammee((oocc)) LLDDAAPPOObbjjeeccttCCllaassss ** oocc;; <
> llddaapp__oobbjjeeccttccllaassss__ffrreeee((oocc)) LLDDAAPPOObbjjeeccttCCllaassss ** oocc;; <
> cchhaarr ** llddaapp__sscchheerrrr22ssttrr((ccooddee)) iinntt ccooddee;; <
> DDEESSCCRRIIPPTTIIOONN </hh33>> TThheessee rroouuttiinneess aarree uusseedd ttoo ppaarrssee sscchheemmaa ddeeffiinniittiioonnss iinn tthhee ssyynnttaaxx ddeeffiinneedd iinn RRFFCC 44551122 iinnttoo ssttrruuccttss aanndd hhaannddllee tthheessee ssttrruuccttss.. TThheessee rroouuttiinneess hhaannddllee ffoouurr kkiinnddss ooff ddeeffiinniittiioonnss:: ssyynnttaaxxeess,, mmaattcchhiinngg rruulleess,, aattttrriibbuuttee ttyyppeess aanndd oobbjjeecctt ccllaasssseess.. FFoorr eeaacchh ddeeffiinniittiioonn kkiinndd,, ffoouurr rroouuttiinneess aarree pprroovviiddeedd.. < > <>llddaapp__ssttrr22xxxxxx(())</bb>> ttaakkeess aa ddeeffiinniittiioonn iinn RRFFCC 44551122 ffoorrmmaatt iinn aarrgguummeenntt ss aass aa NNUULL--tteerrmmiinnaatteedd ssttrriinngg aanndd rreettuurrnnss,, iiff ppoossssiibbllee,, aa ppooiinntteerr ttoo aa nneewwllyy aallllooccaatteedd ssttrruucctt ooff tthhee aapppprroopprriiaattee kkiinndd.. TThhee ccaalllleerr iiss rreessppoonnssiibbllee ffoorr ffrreeeeiinngg tthhee ssttrruucctt bbyy ccaalllliinngg <>llddaapp__xxxxxx__ffrreeee(())</bb>> wwhheenn nnoott nneeeeddeedd aannyy lloonnggeerr.. TThhee rroouuttiinnee rreettuurrnnss NNUULLLL iiff ssoommee pprroobblleemm hhaappppeenneedd.. IInn tthhiiss ccaassee,, tthhee iinntteeggeerr ppooiinntteedd aatt bbyy aarrgguummeenntt ccooddee wwiillll rreecceeiivvee aann eerrrroorr ccooddee ((sseeee bbeellooww tthhee ddeessccrriippttiioonn ooff <>llddaapp__sscchheerrrr22ssttrr(())</bb>> ffoorr aann eexxppllaannaattiioonn ooff tthhee vvaalluueess)) aanndd aa ppooiinntteerr ttoo aa NNUULL--tteerrmmiinnaatteedd ssttrriinngg wwiillll bbee ppllaacceedd wwhheerree rreeqquueesstteedd bbyy aarrgguummeenntt eerrrrpp ,, iinnddiiccaattiinngg wwhheerree iinn aarrgguummeenntt ss tthhee eerrrroorr hhaappppeenneedd,, ssoo iitt mmuusstt nnoott bbee ffrreeeedd bbyy tthhee ccaalllleerr.. AArrgguummeenntt ffllaaggss iiss aa bbiitt mmaasskk ooff ppaarrssiinngg ooppttiioonnss ccoonnttrroolllliinngg tthhee rreellaaxxaattiioonn ooff tthhee ssyynnttaaxx rreeccooggnniizzeedd.. TThhee ffoolllloowwiinngg vvaalluueess aarree ddeeffiinneedd:: <
> < > <>LLDDAAPP__SSCCHHEEMMAA__AALLLLOOWW__NNOONNEE</bb>> < > ssttrriicctt ppaarrssiinngg aaccccoorrddiinngg ttoo RRFFCC 44551122.. < > <>LLDDAAPP__SSCCHHEEMMAA__AALLLLOOWW__NNOO__OOIIDD</bb>> < > ppeerrmmiitt ddeeffiinniittiioonnss tthhaatt ddoo nnoott ccoonnttaaiinn aann iinniittiiaall OOIIDD.. < > <>LLDDAAPP__SSCCHHEEMMAA__AALLLLOOWW__QQUUOOTTEEDD</bb>> < > ppeerrmmiitt qquuootteess aarroouunndd ssoommee iitteemmss tthhaatt sshhoouulldd nnoott hhaavvee tthheemm.. < > <>LLDDAAPP__SSCCHHEEMMAA__AALLLLOOWW__DDEESSCCRR</bb>> < > ppeerrmmiitt aa <>ddeessccrr</bb>> iinnsstteeaadd ooff aa nnuummeerriicc OOIIDD iinn ppllaacceess wwhheerree tthhee ssyynnttaaxx eexxppeecctt tthhee llaatttteerr.. < > <>LLDDAAPP__SSCCHHEEMMAA__AALLLLOOWW__DDEESSCCRR__PPRREEFFIIXX</bb>> < > ppeerrmmiitt tthhaatt tthhee iinniittiiaall nnuummeerriicc OOIIDD ccoonnttaaiinnss aa pprreeffiixx iinn <>ddeessccrr</bb>> ffoorrmmaatt.. < > <>LLDDAAPP__SSCCHHEEMMAA__AALLLLOOWW__AALLLL</bb>> < > bbee vveerryy lliibbeerraall,, iinncclluuddee aallll ooppttiioonnss.. </ddll>> < > TThhee ssttrruuccttuurreess rreettuurrnneedd aarree aass ffoolllloowwss:: <><> <> <
> ttyyppeeddeeff ssttrruucctt llddaapp__sscchheemmaa__eexxtteennssiioonn__iitteemm {{ cchhaarr **llsseeii__nnaammee;; //** EExxtteennssiioonn nnaammee **// cchhaarr ****llsseeii__vvaalluueess;; //** EExxtteennssiioonn vvaalluueess **// }} LLDDAAPPSScchheemmaaEExxtteennssiioonnIItteemm;; </pprree>> <
> ttyyppeeddeeff ssttrruucctt llddaapp__ssyynnttaaxx {{ cchhaarr **ssyynn__ooiidd;; //** OOIIDD **// cchhaarr ****ssyynn__nnaammeess;; //** NNaammeess **// cchhaarr **ssyynn__ddeesscc;; //** DDeessccrriippttiioonn **// LLDDAAPPSScchheemmaaEExxtteennssiioonnIItteemm ****ssyynn__eexxtteennssiioonnss;; //** EExxtteennssiioonn **// }} LLDDAAPPSSyynnttaaxx;; <
> ttyyppeeddeeff ssttrruucctt llddaapp__mmaattcchhiinnggrruullee {{ cchhaarr **mmrr__ooiidd;; //** OOIIDD **// cchhaarr ****mmrr__nnaammeess;; //** NNaammeess **// cchhaarr **mmrr__ddeesscc;; //** DDeessccrriippttiioonn **// iinntt mmrr__oobbssoolleettee;; //** IIss oobbssoolleettee?? **// cchhaarr **mmrr__ssyynnttaaxx__ooiidd;; //** SSyynnttaaxx ooff aasssseerrtteedd vvaalluueess **// LLDDAAPPSScchheemmaaEExxtteennssiioonnIItteemm ****mmrr__eexxtteennssiioonnss;; //** EExxtteennssiioonnss **// }} LLDDAAPPMMaattcchhiinnggRRuullee;; <
> ttyyppeeddeeff ssttrruucctt llddaapp__aattttrriibbuutteettyyppee {{ cchhaarr **aatt__ooiidd;; //** OOIIDD **// cchhaarr ****aatt__nnaammeess;; //** NNaammeess **// cchhaarr **aatt__ddeesscc;; //** DDeessccrriippttiioonn **// iinntt aatt__oobbssoolleettee;; //** IIss oobbssoolleettee?? **// cchhaarr **aatt__ssuupp__ooiidd;; //** OOIIDD ooff ssuuppeerriioorr ttyyppee **// cchhaarr **aatt__eeqquuaalliittyy__ooiidd;; //** OOIIDD ooff eeqquuaalliittyy mmaattcchhiinngg rruullee **// cchhaarr **aatt__oorrddeerriinngg__ooiidd;; //** OOIIDD ooff oorrddeerriinngg mmaattcchhiinngg rruullee **// cchhaarr **aatt__ssuubbssttrr__ooiidd;; //** OOIIDD ooff ssuubbssttrriinnggss mmaattcchhiinngg rruullee **// cchhaarr **aatt__ssyynnttaaxx__ooiidd;; //** OOIIDD ooff ssyynnttaaxx ooff vvaalluueess **// iinntt aatt__ssyynnttaaxx__lleenn;; //** SSuuggggeesstteedd mmiinniimmuumm mmaaxxiimmuumm lleennggtthh **// iinntt aatt__ssiinnggllee__vvaalluuee;; //** IIss ssiinnggllee--vvaalluueedd?? **// iinntt aatt__ccoolllleeccttiivvee;; //** IIss ccoolllleeccttiivvee?? **// iinntt aatt__nnoo__uusseerr__mmoodd;; //** AArree cchhaannggeess ffoorrbbiiddddeenn tthhrroouugghh LLDDAAPP?? **// iinntt aatt__uussaaggee;; //** UUssaaggee,, sseeee bbeellooww **// LLDDAAPPSScchheemmaaEExxtteennssiioonnIItteemm ****aatt__eexxtteennssiioonnss;; //** EExxtteennssiioonnss **// }} LLDDAAPPAAttttrriibbuutteeTTyyppee;; <
> ttyyppeeddeeff ssttrruucctt llddaapp__oobbjjeeccttccllaassss {{ cchhaarr **oocc__ooiidd;; //** OOIIDD **// cchhaarr ****oocc__nnaammeess;; //** NNaammeess **// cchhaarr **oocc__ddeesscc;; //** DDeessccrriippttiioonn **// iinntt oocc__oobbssoolleettee;; //** IIss oobbssoolleettee?? **// cchhaarr ****oocc__ssuupp__ooiiddss;; //** OOIIDDss ooff ssuuppeerriioorr ccllaasssseess **// iinntt oocc__kkiinndd;; //** KKiinndd,, sseeee bbeellooww **// cchhaarr ****oocc__aatt__ooiiddss__mmuusstt;; //** OOIIDDss ooff rreeqquuiirreedd aattttrriibbuuttee ttyyppeess **// cchhaarr ****oocc__aatt__ooiiddss__mmaayy;; //** OOIIDDss ooff ooppttiioonnaall aattttrriibbuuttee ttyyppeess **// LLDDAAPPSScchheemmaaEExxtteennssiioonnIItteemm ****oocc__eexxtteennssiioonnss;; //** EExxtteennssiioonnss **// }} LLDDAAPPOObbjjeeccttCCllaassss;; <
> SSoommee iinntteeggeerr ffiieellddss ((tthhoossee ddeessccrriibbeedd wwiitthh aa qquueessttiioonn mmaarrkk)) hhaavvee aa ttrruutthh vvaalluuee,, ffoorr tthheessee ffiieellddss tthhee ppoossssiibbllee vvaalluueess aarree:: <
> < > <>LLDDAAPP__SSCCHHEEMMAA__NNOO</bb>> < > TThhee aannsswweerr ttoo tthhee qquueessttiioonn iiss nnoo.. < > <>LLDDAAPP__SSCCHHEEMMAA__YYEESS</bb>> < > TThhee aannsswweerr ttoo tthhee qquueessttiioonn iiss yyeess.. </ddll>> < > FFoorr aattttrriibbuuttee ttyyppeess,, tthhee ffoolllloowwiinngg uussaaggeess aarree ppoossssiibbllee:: <
> < > <>LLDDAAPP__SSCCHHEEMMAA__UUSSEERR__AAPPPPLLIICCAATTIIOONNSS</bb>> < > tthhee aattttrriibbuuttee ttyyppee iiss nnoonn--ooppeerraattiioonnaall.. < > <>LLDDAAPP__SSCCHHEEMMAA__DDIIRREECCTTOORRYY__OOPPEERRAATTIIOONN</bb>> < > tthhee aattttrriibbuuttee ttyyppee iiss ooppeerraattiioonnaall aanndd iiss ppeerrttiinneenntt ttoo tthhee ddiirreeccttoorryy iittsseellff,, ii..ee.. iitt hhaass tthhee ssaammee vvaalluuee oonn aallll sseerrvveerrss tthhaatt mmaasstteerr tthhee eennttrryy ccoonnttaaiinniinngg tthhiiss aattttrriibbuuttee ttyyppee.. < > <>LLDDAAPP__SSCCHHEEMMAA__DDIISSTTRRIIBBUUTTEEDD__OOPPEERRAATTIIOONN</bb>> < > tthhee aattttrriibbuuttee ttyyppee iiss ooppeerraattiioonnaall aanndd iiss ppeerrttiinneenntt ttoo rreepplliiccaattiioonn,, sshhaaddoowwiinngg oorr ootthheerr ddiissttrriibbuutteedd ddiirreeccttoorryy aassppeecctt.. TTBBCC.. < > <>LLDDAAPP__SSCCHHEEMMAA__DDSSAA__OOPPEERRAATTIIOONN</bb>> < > tthhee aattttrriibbuuttee ttyyppee iiss ooppeerraattiioonnaall aanndd iiss ppeerrttiinneenntt ttoo tthhee ddiirreeccttoorryy sseerrvveerr iittsseellff,, ii..ee.. iitt mmaayy hhaavvee ddiiffffeerreenntt vvaalluueess ffoorr tthhee ssaammee eennttrryy wwhheenn rreettrriieevveedd ffrroomm ddiiffffeerreenntt sseerrvveerrss tthhaatt mmaasstteerr tthhee eennttrryy.. </ddll>> < > OObbjjeecctt ccllaasssseess ccaann bbee ooff tthhrreeee kkiinnddss:: <
> < > <>LLDDAAPP__SSCCHHEEMMAA__AABBSSTTRRAACCTT</bb>> < > tthhee oobbjjeecctt ccllaassss iiss aabbssttrraacctt,, ii..ee.. tthheerree ccaannnnoott bbee eennttrriieess ooff tthhiiss ccllaassss aalloonnee.. < > <>LLDDAAPP__SSCCHHEEMMAA__SSTTRRUUCCTTUURRAALL</bb>> < > tthhee oobbjjeecctt ccllaassss iiss ssttrruuccttuurraall,, ii..ee.. iitt ddeessccrriibbeess tthhee mmaaiinn rroollee ooff tthhee eennttrryy.. OOnn ssoommee sseerrvveerrss,, oonnccee tthhee eennttrryy iiss ccrreeaatteedd tthhee sseett ooff ssttrruuccttuurraall oobbjjeecctt ccllaasssseess aassssiiggnneedd ccaannnnoott bbee cchhaannggeedd:: nnoonnee ooff tthhoossee pprreesseenntt ccaann bbee rreemmoovveedd aanndd nnoonnee ootthheerr ccaann bbee aaddddeedd.. < > <>LLDDAAPP__SSCCHHEEMMAA__AAUUXXIILLIIAARRYY</bb>> < > tthhee oobbjjeecctt ccllaassss iiss aauuxxiilliiaarryy,, ii..ee.. iitt iiss iinntteennddeedd ttoo ggoo wwiitthh ootthheerr,, ssttrruuccttuurraall,, oobbjjeecctt ccllaasssseess.. TThheessee ccaann bbee aaddddeedd oorr rreemmoovveedd aatt aannyy ttiimmee iiff aattttrriibbuuttee ttyyppeess aarree aaddddeedd oorr rreemmoovveedd aatt tthhee ssaammee ttiimmee aass nneeeeddeedd bbyy tthhee sseett ooff oobbjjeecctt ccllaasssseess rreessuullttiinngg ffrroomm tthhee ooppeerraattiioonn.. </ddll>> < > RRoouuttiinneess <>llddaapp__xxxxxx22nnaammee(())</bb>> rreettuurrnn aa ccaannoonniiccaall nnaammee ffoorr tthhee ddeeffiinniittiioonn.. <
> RRoouuttiinneess <>llddaapp__xxxxxx22ssttrr(())</bb>> rreettuurrnn aa ssttrriinngg rreepprreesseennttaattiioonn iinn tthhee ffoorrmmaatt ddeessccrriibbeedd bbyy RRFFCC 44551122 ooff tthhee ssttrruucctt ppaasssseedd iinn tthhee aarrgguummeenntt.. TThhee ssttrriinngg iiss aa nneewwllyy aallllooccaatteedd ssttrriinngg tthhaatt mmuusstt bbee ffrreeeedd bbyy tthhee ccaalllleerr.. TThheessee rroouuttiinneess mmaayy rreettuurrnn NNUULLLL iiff nnoo mmeemmoorryy ccaann bbee aallllooccaatteedd ffoorr tthhee ssttrriinngg.. <
> <>llddaapp__sscchheerrrr22ssttrr(())</bb>> rreettuurrnnss aa NNUULL--tteerrmmiinnaatteedd ssttrriinngg wwiitthh aa tteexxtt ddeessccrriippttiioonn ooff tthhee eerrrroorr ffoouunndd.. TThhiiss iiss aa ppooiinntteerr ttoo aa ssttaattiicc aarreeaa,, ssoo iitt mmuusstt nnoott bbee ffrreeeedd bbyy tthhee ccaalllleerr.. TThhee aarrgguummeenntt ccooddee ccoommeess ffrroomm oonnee ooff tthhee ppaarrssiinngg rroouuttiinneess aanndd ccaann aaddoopptt tthhee ffoolllloowwiinngg vvaalluueess:: <
> < > <>LLDDAAPP__SSCCHHEERRRR__OOUUTTOOFFMMEEMM</bb>> < > OOuutt ooff mmeemmoorryy.. < > <>LLDDAAPP__SSCCHHEERRRR__UUNNEEXXPPTTOOKKEENN</bb>> < > UUnneexxppeecctteedd ttookkeenn.. < > <>LLDDAAPP__SSCCHHEERRRR__NNOOLLEEFFTTPPAARREENN</bb>> < > MMiissssiinngg ooppeenniinngg ppaarreenntthheessiiss.. < > <>LLDDAAPP__SSCCHHEERRRR__NNOORRIIGGHHTTPPAARREENN</bb>> < > MMiissssiinngg cclloossiinngg ppaarreenntthheessiiss.. < > <>LLDDAAPP__SSCCHHEERRRR__NNOODDIIGGIITT</bb>> < > EExxppeeccttiinngg ddiiggiitt.. < > <>LLDDAAPP__SSCCHHEERRRR__BBAADDNNAAMMEE</bb>> < > EExxppeeccttiinngg aa nnaammee.. < > <>LLDDAAPP__SSCCHHEERRRR__BBAADDDDEESSCC</bb>> < > BBaadd ddeessccrriippttiioonn.. < > <>LLDDAAPP__SSCCHHEERRRR__BBAADDSSUUPP</bb>> < > BBaadd ssuuppeerriioorrss.. < > <>LLDDAAPP__SSCCHHEERRRR__DDUUPPOOPPTT</bb>> < > DDuupplliiccaattee ooppttiioonn.. < > <>LLDDAAPP__SSCCHHEERRRR__EEMMPPTTYY</bb>> < > UUnneexxppeecctteedd eenndd ooff ddaattaa.. <