ʻO ka moʻolelo o kekahi papahana liʻiliʻi he ʻumikūmālua makahiki ka lōʻihi (e pili ana i BIRMA.NET no ka manawa mua a ʻoiaʻiʻo hoʻi i ka lima mua)

ʻO ka hānau ʻana o kēia papahana hiki ke noʻonoʻo ʻia he manaʻo liʻiliʻi i hiki mai iaʻu ma kahi o ka hopena o 2007, i manaʻo ʻia e loaʻa i kona ʻano hope wale nō 12 mau makahiki ma hope (i kēia manawa i ka manawa - ʻoiaʻiʻo, ʻoiai ʻo ka hoʻokō o kēia manawa, e like me i ka mea kākau, ua ʻoluʻolu loa).

Hoʻomaka ia i ka wā e hoʻokō ai i kaʻu mau hana kūhelu i ka hale waihona puke, ua huki wau i ka nānā ʻana i ke kaʻina o ke komo ʻana i ka ʻikepili mai ka scanned kikokikona o nā papa o nā puke (a me nā mele) i loko o ka waihona waihona. ʻike ʻia, hiki ke hoʻomaʻamaʻa nui ʻia a hoʻomaʻamaʻa, e lawe ana i ka waiwai o ka hoʻonohonoho ʻana a me ka repeatability o nā ʻikepili āpau i koi ʻia no ka hoʻokomo, e like me ka inoa o ka mea kākau o ka ʻatikala (inā mākou e kamaʻilio e pili ana i kahi hōʻiliʻili o nā ʻatikala), ke poʻo inoa ka ʻatikala (a i ʻole ka subtitle i hōʻike ʻia ma ka papa o nā ʻike) a me ka helu ʻaoʻao o ka papa helu o kēia manawa. I ka wā mua, ua maopopo iaʻu he ʻōnaehana kūpono no ka hoʻokō ʻana i kēia hana hiki ke loaʻa ma ka Pūnaewele. I ka wā i haʻohaʻo ʻia ai ma muli o ka hiki ʻole iaʻu ke ʻike i kahi papahana, ua hoʻoholo wau e hoʻāʻo e hoʻokō iaʻu iho.

Ma hope o ka manawa pōkole, ua hoʻomaka ka prototype mua e hana, a ua hoʻomaka koke wau e hoʻohana i kaʻu mau hana i kēlā me kēia lā, i ka manawa hoʻokahi e hoʻopau iā ia ma nā hiʻohiʻona āpau i hiki mai i koʻu lima. ʻO ka mea pōmaikaʻi, ma kaʻu wahi hana maʻamau, ʻaʻole wau he polokalamu polokalamu, a laila ua haʻalele wau me ka ʻike ʻia o ka "downtime" i kaʻu hana, i ka manawa aʻu i hoʻopaʻapaʻa nui ai i kaʻu noʻonoʻo - he mea hiki ʻole ke noʻonoʻo ʻia i nā ʻoiaʻiʻo o kēia manawa, e hōʻike ana. nā hōʻike i kēlā me kēia lā no ka hana i hana ʻia i ka lā. ʻO ke kaʻina hana o ka hoʻomaʻamaʻa ʻana i ka papahana ʻaʻole i emi iho ma mua o hoʻokahi makahiki, akā ʻoiai ma hope o ka hopena hiki ʻole ke kapa ʻia he kūleʻa loa - he nui nā manaʻo like ʻole i waiho mua ʻia ʻaʻole maopopo loa no ka hoʻokō: nā mea koho i hiki e hoolele; ka nānā ʻana i mua o nā mea (no ka hoʻololi ʻana i nā mea mua i nā hopena ʻimi); ʻo kā mākou hoʻāʻo ponoʻī e hoʻokō i kekahi mea e like me nā ʻōlelo maʻamau (he ʻano syntax kūikawā kona). Pono wau e ʻōlelo ma mua o kēia ua haʻalele wau i ka hoʻolālā ʻana (no kahi o 8 mau makahiki, inā ʻaʻole ʻoi aku), no laila ʻo ka manawa hou e hoʻopili ai i kaʻu mau mākau i kahi hana hoihoi a pono hoʻi i hopu i koʻu nānā. ʻAʻole ia he mea kupanaha no ka loaʻa ʻana o ke code kumu - i ka loaʻa ʻole o nā ala maopopo i kāna hoʻolālā ʻana ma kaʻu ʻaoʻao - ua lilo koke ia i mishmash hiki ʻole ke noʻonoʻo ʻia o nā ʻāpana ʻokoʻa ma ka ʻōlelo C me kekahi mau mea o C ++ a me nā ʻano o ka hoʻolālā ʻike (ma mua ʻo ia. ua hoʻoholo ʻia e hoʻohana i kahi ʻōnaehana hoʻolālā e like me Borland C++ Builder - "kokoke Delphi, akā ma C"). Eia naʻe, ua hoʻohua kēia mau mea a pau i ka hana ʻana i nā hana o kēlā me kēia lā o kā mākou waihona.

I ka manawa like, ua hoʻoholo wau, inā wale nō, e lawe i nā papa e hoʻomaʻamaʻa i nā mea hoʻomohala polokalamu ʻoihana. ʻAʻole maopopo iaʻu inā hiki ke aʻo ʻia "e lilo i mea polokalamu" mai ka wā kahiko, akā me ka noʻonoʻo ʻana i nā mākau i loaʻa iaʻu i kēlā manawa, ua hiki iaʻu ke aʻo i nā ʻenehana i kūpono i kēlā manawa, penei e like me C#, Visual Studio no ka hoʻomohala ʻana ma lalo o NET, a me kekahi mau ʻenehana pili i Java, HTML a me SQL. ʻO ka hoʻomaʻamaʻa holoʻokoʻa i lawe i ʻelua mau makahiki, a ua lilo ia i wahi hoʻomaka no kahi papahana ʻē aʻe aʻu, i hoʻolōʻihi ʻia i nā makahiki he nui - akā he kumuhana kēia no kahi paʻi ʻokoʻa. Maʻaneʻi he mea kūpono wale nō e hoʻomaopopo ua ho'āʻo wau e hoʻololi i nā hanana i loaʻa iaʻu ma ka papahana i ho'ākākaʻia e hana i kahi puka puka piha piha i C # a me WinForms e hoʻokō i ka pono kūpono, a hoʻohana ia mea i kumu no ka papahana diploma e hiki mai ana.
I ka hala ʻana o ka manawa, ua hoʻomaka kēia manaʻo i koʻu manaʻo pono e hoʻopuka ʻia ma ia mau ʻaha kūkā makahiki me ke komo ʻana o nā ʻelele o nā hale waihona puke like ʻole e like me "LIBKOM" a me "CRIMEA". ʻO ka manaʻo, ʻae, ʻaʻole naʻe koʻu hoʻokō ʻana i ia manawa. A laila, manaʻolana wau e kākau hou kekahi me ka hoʻohana ʻana i nā ala mākaukau. Hoʻokahi ʻaoʻao a i ʻole, ma ka makahiki 2013 ua hoʻoholo wau e kākau i kahi hōʻike no kaʻu hana mua a hoʻouna aku i ke Kōmike Hoʻonohonoho Kūkākūkā me kahi noi no kahi haʻawina e komo i ka ʻaha kūkā. ʻO koʻu manaʻo nui, ua ʻae ʻia kaʻu noi, a ua hoʻomaka wau e hoʻomaikaʻi i ka papahana e hoʻomākaukau ai no ka hōʻike ʻana ma ka ʻaha kūkā.

I kēlā manawa, ua loaʻa i ka papahana kahi inoa hou BIRMA, loaʻa i nā ʻano hana hou (ʻaʻole i hoʻokō piha ʻia, akā i manaʻo ʻia) - Hiki ke loaʻa nā kikoʻī āpau ma kaʻu hōʻike.

ʻO kaʻoiaʻiʻo, paʻakikī ke kāhea ʻana iā BIRMA 2013 i kahi mea piha; ʻO ka ʻōlelo ʻoiaʻiʻo, he hana hacky loa ia i hana wikiwiki ʻia. Ma nā ʻōlelo o ke code, ʻaʻohe mea hou kūikawā, koe wale nō ka hoʻāʻo ʻole e hana i kekahi ʻano syntax i hui pū ʻia no ka parser, me ka hoʻomanaʻo ʻana i ka ʻōlelo formatting IRBIS 64 (a ʻoiaʻiʻo hoʻi, ʻo ka ʻōnaehana ISIS - me nā pale ma ke ʻano he ʻano hana pōʻaiapili; no ke aha I kēlā manawa ua manaʻo wau he nani loa ia). Ua hina ʻole ka parser i kēia mau pōʻai o nā pale o ke ʻano kūpono (no ka mea, ua hana pū kekahi i nā hana ʻē aʻe, ʻo ia hoʻi, ua kaha lākou i nā hale koho i ka wā e paʻi ana i hiki ke hoʻokuʻu ʻia). Ke kuhikuhi hou nei au i ka poʻe a pau e makemake ana e kamaʻāina i ka ʻōlelo paʻakikī o ka BIRMA i ka wā e noʻonoʻo ai i ka ʻōlelo kikoʻī i kaʻu hōʻike o ia manawa.

Ma keʻano laulā, ma waho aʻe o ka hakakā ʻana me kaʻu parser ponoʻī, ʻaʻohe aʻu mea hou aʻe e ʻōlelo ai e pili ana i ke code o kēia mana - koe wale no ka hoʻohuli ʻana o nā kumu i kēia manawa i C ++ me ka mālama ʻana i kekahi mau hiʻohiʻona maʻamau o .NET code (e ʻoiaʻiʻo, ʻo ia. paʻakikī ke hoʻomaopopo , he aha ka mea i hoʻoneʻe mai iaʻu e hoʻihoʻi i nā mea āpau - malia paha he makaʻu naʻaupō no ka hūnā ʻana i kaʻu kumu kumu, me he mea lā he mea like ia me ka mea huna o Coca-Cola).

Malia paha ʻo kēia hoʻoholo naʻaupō ke kumu o ka paʻakikī i ka hoʻopili ʻana i ka waihona DLL i loaʻa me ka interface o kahi hale hana i hana ʻia no ka hoʻokomo ʻana i ka ʻikepili i loko o kahi papa inoa uila (ʻae, ʻaʻole wau i haʻi i kahi mea nui ʻē aʻe: mai kēia manawa, nā mea āpau. ʻO ke code o ka "engine" BIRMA e like me ka mea i manaʻo ʻia, ua hoʻokaʻawale ʻia mai ka ʻāpana interface a hoʻopili ʻia i ka DLL kūpono). No ke aha i pono ai e kākau i kahi hana kaʻawale no kēia mau kumu, ʻoiai, i kona ʻano a me ke ʻano o ka launa pū ʻana me ka mea hoʻohana, ua kope hilahila ʻole i ka workstation "Catalogizer" o ka ʻōnaehana IRBIS 64 - he nīnau kaʻawale kēia. I ka pōkole: hāʻawi ia i ka paʻa pono i kaʻu mau hoʻomohala ʻana no kaʻu papahana puka (a i ʻole, ʻaʻole lawa ka ʻenekini parser indigestible wale nō). Eia kekahi, ua loaʻa iaʻu kekahi mau pilikia i ka hoʻokō ʻana i ke kikowaena o ka workstation Cataloger me kaʻu mau modula ponoʻī, i hoʻokō ʻia ma C ++ a me C #, a komo pololei i kaʻu mīkini.

Ma keʻano laulā, he mea kupanaha, ʻo ia ka prototype o ka BIRMA.NET e hiki mai ana i lilo i "mea hana" noʻu no nā makahiki ʻehā e hiki mai ana. ʻAʻole hiki ke ʻōlelo ʻia i kēia manawa ʻaʻole wau i hoʻāʻo iki e ʻimi i nā ala no ka hoʻokō hou ʻana i kahi manaʻo lōʻihi. Ma waena o nā mea hou aʻe, pono i loaʻa i nā kaʻina cyclic nested i hiki ke hoʻokomo i nā mea koho - ʻo ia kaʻu e hoʻōla ai i ka manaʻo o nā kumu hoʻohālike āpau no nā wehewehe bibliographic o nā puke a me nā mea hoihoi ʻē aʻe. Eia nō naʻe, i kaʻu mau hana hana i kēlā manawa, ʻaʻole i koi nui ʻia kēia mau mea a pau, a ua lawa ka hoʻokō ʻana iaʻu i kēlā manawa no ke komo ʻana i nā papa ʻike. Eia kekahi, ua hoʻomaka ka vector o ka hoʻomohala ʻana i kā mākou hale waihona puke i ka helu ʻana i nā waihona hale waihona puke, ka hōʻike ʻana a me nā hana ʻē aʻe i makemake nui ʻia iaʻu, i ka hopena i koi ai iaʻu e haʻalele iā ia, e hāʻawi ana i ka poʻe e makemake. e hauʻoli i kēia mau mea a pau .

ʻO ka mea maʻamau, ma hope o kēia mau hanana koʻikoʻi i hoʻomaka ai ka papahana BIRMA, i kēlā manawa i loaʻa nā hiʻohiʻona āpau o kahi papahana kūkulu lōʻihi, e hoʻomaka ana e lawe i kāna ola hou i kali ʻia! Ua loaʻa iaʻu ka manawa kūʻokoʻa no ka noʻonoʻo ʻole, hoʻomaka hou wau e ʻimi i ka Pūnaewele puni honua e ʻimi i kahi mea like (ʻoi aku ka maikaʻi, i kēia manawa ua hiki iaʻu ke koho e ʻimi i kēia mau mea ʻaʻole wale ma nā wahi āpau, akā ma GitHub), a ma kahi o At the i ka hoʻomaka ʻana o kēia makahiki, ua loaʻa iaʻu kahi huahana kūpono mai ka hui Salesforce kaulana ma lalo o ka inoa liʻiliʻi. ʻO Gorp. ʻO ia iho, hiki iā ia ke hana kokoke i nā mea āpau aʻu e pono ai mai kēlā mīkini parser - ʻo ia hoʻi, hoʻokaʻawale naʻauao i nā ʻāpana kanaka mai ke ʻano like ʻole, akā i hoʻonohonoho pono ʻia i nā kikokikona, ʻoiai ke loaʻa nei kahi mea hoʻohana maikaʻi loa no ka mea hoʻohana hope, e komo pū ana me nā ʻano mea hoʻomaopopo. he kumu hoʻohālike, ka laʻana a me ka hanana, a i ka manawa like me ka hoʻohana ʻana i ka syntax kamaʻāina o nā ʻōlelo maʻamau, e lilo i mea hiki ke heluhelu ʻia ma muli o ka mahele ʻana i nā pūʻulu semantic i koho ʻia no ka hoʻopau ʻana.

Ma keʻano laulā, ua hoʻoholo wau ʻo ia ka mea ʻO Gorp (Ke noʻonoʻo nei au i ke ʻano o kēia inoa? Malia paha kekahi ʻano o ka "general oriented regular parser"?) - ʻo ia kaʻu e ʻimi nei no ka manawa lōʻihi. ʻOiaʻiʻo, ʻo kona hoʻokō koke ʻana no kaʻu mau pono ponoʻī he pilikia ia e pono ai kēia ʻenekini e pili pono i ke kaʻina hana o ka kikokikona kumu. No kekahi mau hōʻike e like me nā faila log (ʻo ia hoʻi, ua hoʻonoho ʻia lākou e nā mea hoʻomohala ma ke ʻano he mau hiʻohiʻona o ka hoʻohana ʻana i ka papahana), kūpono kēia, akā no nā kikokikona like o nā papa i nānā ʻia, ʻaʻole paha. Ma hope o nā mea a pau, hiki ke hoʻomaka ka ʻaoʻao like me ka papa o nā ʻike me nā huaʻōlelo "Table of Contents", "Contents" a me nā wehewehe mua ʻē aʻe ʻaʻole pono mākou e kau i nā hopena o ka loiloi i manaʻo ʻia (a ʻokiʻoki iā lākou me ka lima. ʻaʻole kūpono kēlā me kēia manawa). Eia kekahi, ma waena o kēlā me kēia mea hoʻihoʻi hou, e like me ka inoa o ka mea kākau, ke poʻo a me ka helu ʻaoʻao, hiki i ka ʻaoʻao ke loaʻa i kahi nui o ka ʻōpala (e laʻa, nā kiʻi, a me nā kiʻi ʻokoʻa wale nō), he mea maikaʻi hoʻi ke hiki ke hana. ʻoki. Eia naʻe, ʻaʻole i koʻikoʻi ka ʻaoʻao hope loa, akā ma muli o ka mea mua, ʻaʻole hiki i ka hoʻokō ʻana i kēia manawa ke hoʻomaka e ʻimi i nā hale e pono ai i ka kikokikona mai kahi wahi, akā ua hoʻoponopono wale ʻia mai ka hoʻomaka ʻana, ʻaʻole i loaʻa ka i kuhikuhi ʻia ma laila a... hoʻopau i kaʻu hana. ʻIke loa, pono kekahi tweaking e ʻae i kahi manawa ma waena o nā hale hana hou, a ua hoʻihoʻi iaʻu i ka hana.

ʻO kekahi pilikia, ua hoʻokō ʻia ka papahana ma Java, a inā wau i hoʻolālā i ka wā e hiki mai ana e hoʻokō i kekahi mau ala e hoʻopili ai i kēia ʻenehana me nā noi maʻamau no ka hoʻokomo ʻana i ka ʻikepili i loko o nā waihona i loaʻa (e like me "Cataloguer") o Irbis, a laila ma ka liʻiliʻi loa. e hana i kēia ma C# a me .NET. ʻAʻole ia he ʻōlelo maikaʻi ʻole ʻo Java - ua hoʻohana au iā ia e hoʻokō i kahi noi puka makani hoihoi i hoʻokō i ka hana o kahi calculator programmable home (ma ke ʻano he papahana papahana). A ma ke ʻano o ka syntax ua like loa ia me ka C-sharp like. ʻAe, he mea hoʻohui wale nō kēia: ʻoi aku ka maʻalahi o ka hoʻopau ʻana i kahi papahana e kū nei. Eia naʻe, ʻaʻole wau i makemake e komo hou i loko o kēia honua ʻokoʻa o ka puka aniani (a i ʻole, desktop) ʻenehana Java - ma hope o nā mea a pau, ʻaʻole i "kūpono" ʻia ka ʻōlelo no ia hoʻohana ʻana, ʻaʻole wau i makemake i ka hana hou ʻana. ka ʻike mua. Malia paha no ka mea kokoke loa ʻo C# me WinForms iā Delphi, kahi i hoʻomaka ai ka hapa nui o mākou. ʻO ka mea pōmaikaʻi, ua loaʻa koke ka hopena kūpono - ma ke ʻano o ka papahana IKVM.NET, he mea maʻalahi ka unuhi ʻana i nā polokalamu Java i loaʻa i loko o ke code .NET i mālama ʻia. ʻOiaʻiʻo, ua haʻalele ʻia ka papahana ponoʻī e nā mea kākau i kēlā manawa, akā ʻo kāna hoʻokō hou loa i hiki iaʻu ke hoʻokō pono i nā hana e pono ai no nā kikokikona kumu. ʻO Gorp.

No laila ua hana au i nā hoʻololi kūpono a hoʻohui i nā mea a pau i kahi DLL o ke ʻano kūpono, hiki ke "ʻohi" ʻia e nā papahana no ka .NET Framework i hana ʻia ma Visual Studio. I kēia manawa, ua hana au i kahi papa ʻē aʻe no ka hōʻike maʻalahi o nā hopena i hoʻihoʻi ʻia ʻO Gorp, ma ke ʻano o nā hoʻolālā ʻikepili kūpono e maʻalahi ke hana ʻia ma ka nānā papa (e lawe ana i kumu i nā lālani a me nā kolamu; nā kī kī a me nā helu helu). ʻAe, ua kākau wikiwiki ʻia nā pono pono no ka hoʻoponopono ʻana a me ka hōʻike ʻana i nā hopena.

Eia kekahi, ʻo ke kaʻina hana o ka hoʻololi ʻana i nā mamana no ka ʻenekini hou i mea e aʻo ai iā ia e hoʻokaʻawale i nā laʻana o nā kikokikona scanned o nā papa maʻiʻo ʻaʻole i hoʻopilikia kūikawā. ʻO kaʻoiaʻiʻo, ʻaʻole pono wau e kuhikuhi i kaʻu mau mamana mua: Ua hana wale wau i nā ʻōkuhi pono āpau mai ka wā ʻōpala. Eia kekahi, inā hoʻonohonoho nā ʻōkuhi i hana me ka mana mua o ka ʻōnaehana i kahi kikoʻī liʻiliʻi no nā kikokikona i hiki ke hoʻopaʻa pololei ʻia me kā lākou kōkua, ua hiki i ka mīkini hou ke hoʻomohala i nā hiʻohiʻona ākea ākea kūpono no nā ʻano o ka markup. pākahi. Ua ho'āʻo wau e kākau i kekahi ʻano hoʻohālike piha no kēlā me kēia papa ʻōlelo kikoʻī, ʻoiai, ʻoiaʻiʻo, ʻoiai me nā mea hou a pau e wehe ana iaʻu, e komo pū ana, ʻo ia hoʻi, ka palena palena ʻole e hoʻokō i nā kaʻina hana hoʻokahi. e like me ka laʻana, nā inoa inoa a me nā hua mua i kekahi mau mea kākau i ka lālani), ua lilo kēia i utopia.

Malia paha i ka wā e hiki mai ana e hiki ke hoʻokō i kekahi manaʻo o nā meta-templates, e hiki ke nānā i ka kikokikona kumu no ka hoʻokō ʻana i kekahi o nā templates i loaʻa i ka manawa hoʻokahi, a laila, e like me nā hopena i loaʻa, koho i ka ka mea kūpono loa, me ka hoʻohana ʻana i kekahi ʻano algorithm naʻauao. Akā i kēia manawa ua ʻoi aku koʻu hopohopo no kekahi nīnau ʻē aʻe. ʻO kahi parser like ʻO Gorp, ʻoiai kona ʻano maʻalahi a me nā hoʻololi aʻu i hana ai, ʻaʻole hiki ke hana i kahi mea maʻalahi i hiki i kaʻu parser kākau ponoʻī ke hana mai ka mana mua loa. ʻO ia hoʻi: hiki iā ia ke ʻimi a unuhi mai ka kikokikona kumu i nā ʻāpana āpau e pili ana i ka mask i kuhikuhi ʻia i loko o ka template i hoʻohana ʻia ma kahi kūpono, ʻoiai ʻaʻole makemake iki i ka mea i hāʻawi ʻia i loko o nā hakahaka ma waena o kēia mau ʻāpana. I kēia manawa, ua hoʻomaikaʻi iki wau i ka ʻenekini hou, e ʻae iā ia e ʻimi i nā hana hou a pau o kahi kaʻina i hāʻawi ʻia o ia mau masks mai ke kūlana o kēia manawa, e waiho ana i ka hiki ke hele i loko o ka kikokikona o nā pūʻulu o nā ʻano like ʻole. ʻAʻole i ʻike ʻia ma ka parsing, i hoʻopaʻa ʻia ma waena o nā hale hana hou i ʻike ʻia. Eia nō naʻe, ʻaʻole hiki i kēia ke hoʻonohonoho i ka mask aʻe me ka nānā ʻole i nā hopena o ka ʻimi ʻana i ka ʻāpana mua me ka hoʻohana ʻana i ka mask e pili ana: ʻaʻole i waiho ʻia ka paʻakikī o ka hoʻolālā kikokikona i haʻi ʻia no ka hoʻokomo ʻole ʻana o nā ʻano like ʻole.

A inā no nā hiʻohiʻona o nā papa o nā mea aʻu i ʻike ai i kēia pilikia, ʻaʻole i koʻikoʻi loa, a laila i ka wā e hoʻāʻo ai e hoʻopili i kahi ʻano hana parsing hou i kahi hana like o ka parsing i nā ʻike o kahi pūnaewele (ʻo ia hoʻi ka parsing like), ʻo ia. ua ʻike ʻia nā palena ma ʻaneʻi me ko lākou ʻike maopopo. Ma hope o nā mea a pau, maʻalahi ka hoʻonohonoho ʻana i nā masks e pono ai no nā ʻāpana o ka markup pūnaewele, ma waena o ka ʻikepili a mākou e ʻimi nei (pono e unuhi ʻia) pono e loaʻa, akā pehea e hiki ai iā mākou ke hoʻoikaika i ka parser e neʻe koke i ka aʻe. ʻāpana like, ʻoiai nā hōʻailona hiki a me nā ʻano HTML hiki ke kau ʻia ma nā hakahaka ma waena o lākou?

Ma hope o ka noʻonoʻo liʻiliʻi, ua hoʻoholo wau e hoʻolauna i ʻelua mau ʻano lawelawe (%all_before) и (%all_after), e lawelawe ana i ka manaʻo maopopo o ka hōʻoia ʻana e lele ʻia nā mea a pau i loko o ke kikokikona kumu ma mua o kekahi kumu (māka) e hahai ana iā lākou. Eia hou, ina (%all_before) ʻaʻole i mālama wale i kēia mau hoʻokomo ʻole ʻia, a laila (%all_after), ma kahi ʻē aʻe, ʻae iā lākou e hoʻohui ʻia i ka ʻāpana i makemake ʻia ma hope o ka neʻe ʻana mai ka ʻāpana mua. He mea maʻalahi loa ia, akā no ka hoʻokō ʻana i kēia manaʻo, pono iaʻu e hoʻopili hou i nā kumu gorp e hana i nā hoʻololi e pono ai i ʻole e uhaki i ka loiloi i hoʻokō ʻia. I ka hopena, ua hiki iā mākou ke hana i kēia (ʻoiai ʻo ka mea mua loa, ʻoiai ke kaʻa nui loa, ua kākau ʻia ka hoʻokō ʻana o kaʻu parser, a ʻoi aku ka wikiwiki - i loko o ʻelua mau pule). Mai kēia manawa, ua lawe ʻia ka ʻōnaehana i kahi ʻano honua maoli - ʻaʻole i emi iho ma mua o 12 mau makahiki ma hope o nā hoʻāʻo mua e hana.

ʻOiaʻiʻo, ʻaʻole kēia ka hopena o kā mākou moeʻuhane. Hiki iā ʻoe ke kākau hou i ka parser template gorp ma C#, me ka hoʻohana ʻana i kekahi o nā hale waihona puke i loaʻa no ka hoʻokō ʻana i ka grammar manuahi. Manaʻo wau e hoʻomaʻamaʻa nui ʻia ke code, a e ʻae kēia iā mākou e kāpae i ka hoʻoilina ma ke ʻano o nā kumu Java. Akā me ke ʻano o ka ʻenekini, hiki nō ke hana i nā mea hoihoi like ʻole, me ka hoʻāʻo ʻana e hoʻokō i nā meta-templates aʻu i haʻi mua ai, ʻaʻole e haʻi i ka hoʻopaʻa ʻana i nā ʻikepili like ʻole mai nā pūnaewele like ʻole (akā naʻe, ʻaʻole wau e kāpae i waho. ʻoi aku ka maikaʻi o nā lako polokalamu kūikawā i kēia manawa - ʻaʻole wau i loaʻa ka ʻike kūpono o ka hoʻohana ʻana iā lākou).

Ma ke ala, i kēia kauwela ua loaʻa iaʻu kahi kono ma ka leka uila mai kahi hui e hoʻohana ana i nā ʻenehana Salesforce (ka mea hoʻomohala o ka mea mua. ʻO Gorp), e hele i kahi ninaninau no ka hana ma Riga. ʻO ka mea pōʻino, i kēia manawa ʻaʻole wau i mākaukau no ka hoʻokuʻu hou ʻana.

Inā hoʻāla kēia mea i kekahi hoihoi, a laila ma ka ʻāpana ʻelua e hoʻāʻo wau e wehewehe i nā kikoʻī hou aku i ka ʻenehana no ka hōʻuluʻulu ʻana a ma hope o ka parsing templates me ka hoʻohana ʻana i ka laʻana o ka hoʻokō i hoʻohana ʻia ma Salesforce ʻO Gorp (ʻo kaʻu mau hoʻohui ponoʻī, koe naʻe nā huaʻōlelo ʻelua i wehewehe mua ʻia, ʻaʻohe hoʻololi i ka syntax template ponoʻī, no laila kokoke i nā palapala āpau no ka ʻōnaehana kumu. ʻO Gorp He kūpono no kaʻu mana).

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka