- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
"Everything should be made as simple as possible, but not simpler." - Albert Einstein.
Using regular expressions is usually less complicated than writing a parser. It is not that hard to learn them. It just takes a little time and practice.
Admin
Only because the tools for creating parsers in many languages are needlessly complicated, written by masochistic compiler authors who see no need to cater to plebs who aren't in the business of constructing industrial-grade optimizing compilers themselves.
Parser combinators make life so much simpler...
Admin
I actually like Regexes.
*flamesuit on
Admin
It was named after the book. This was the 1960s. Languages didn't need names (or rather, were named after papers/books/their authors).
Admin
Regexes are lovely if and only if you're parsing a regular language. Otherwise, they are the wrong tool for the job, and you need something stronger to come up with a robust solution.
Admin
Like HTML?
Filed under: Jeffed!
Admin
Bad ideas thread is :left_luggage: :up: :angry: :large_blue_diamond:.
On top of being unable to incompletely specify the grammar, abusing regexes in this way is hugely verbose and expensive, especially compared to a LALR parser.
Admin
What's a "regular language"?
My main use for Regexes has been the command parser in my MUD. Am I Doing It Wrong™?
Admin
As your MUD grows in complexity, you'll hit the limit very soon.
Admin
A regular language is a formal language that can be generated or parsed by a deterministic finite automaton (equivalently, it's grammar can be expressed as a regular expression).
So, about your MUD -- it depends. What is your grammar like? If it's left (or right) linear, regexes are fine. If it has nesting of commands, stop and use a LALR before it becomes expensive (in your time). Honestly, if your commands are more than one or two subcommands deep, I would switch to LALR anyway.
Admin
Ummm.. Discourse does (did?) that, that's why I said it?
Admin
What limit?
Idk, it's worked well for me so far and it's pretty easy to add new commands in, but everyone's knee-jerk reaction to Regexes is one of hatred. I can't imagine a better way to do what I'm doing so I'm trying to figure out if I'm wrong or if every other developer is wrong.
Admin
Two better ways have already been offered in this thread:
Admin
Well I guess you could design your commands so RegEx will mostly work, other than looking up dynamic keywords from the database. If you allow constructs like 1.plank to identify the first of many planks in the room, you'll outgrow RegEx very quickly. Or end up with a bubbling mess of a codebase. Either/or.
I mean a really complex MUD might allow a command like:
I'm guessing that would be a wide-awake nightmare to implement in RegEx. (Note the two bits of quoted text need to be broadcast to the room in the default and annotated languages, scrambled based on what languages the hearer can understand.)
The command parser in my old RP MUD was something like 300+ lines. Given, it was shitty C code. But still.
Admin
I don't have an easy count for mine, it's modular. There's a class for each command, and each command has a Regex to determine if the input applies and pull the interesting bits out when needed. Then the command parser has a list of commands and tries them one-by-one until one returns that it was successful.
Admin
Ok. RegEx still sucks.
Admin
Yeah, abusing SQL is totally Perl's fault.
Admin
The original regexp language was simple and clean. It's grown since, like a syntax cancer, and one of the biggest perpetrators of this… growth… has been Perl, which has been ground zero for Bad Ideas With Regexps for at least 20 years.
Admin
Which combinators were you thinking of?
Admin
You could say the same about SQL. Edgar Codd's baby grew into a beautiful, elegant woman and has now transformed into one of those medieval maps with Heere be Dragons on large sections.
Admin
I would suggest a port of Parsec to your language of choice (if it's been ported, of course).
Admin
Does that require me to make the Kessel Run?
Filed Under: Almost-A-Pun
Admin
I'm not even speaking to a specific implementation -- although one that is close to EBNF syntax is a good idea, IMO.
Admin
Interesting. The example has quite a lot of sleight of hand — a bit more than I'd normally expect, especially in the expression handling — but it still looks interesting. Is it taking advantage of Haskell's evaluation scheme to deal with lookahead? (Well, that particular example won't be, and most people try to avoid long lookaheads in their grammars, but in general.)
Admin
And then I got banned because I made the mistake of trying to work out what the class restrictions on an item were by wearing it with different characters. (Normally when you wear an item you get told that it's only wearable by a specific class but this item would just say "it is too much extra weight".)
Admin
Nothing to do with getting coins from other people's kills?
Admin
No, it doesn't handle backtracking in any "magical" way. You have to explicitly allow for it, using the
try
combinator.The really nice insight is that although parsers can be monadic, EBNF parsers can be expressed in terms of applicative functor combinators (and 'alternative' functors, which are monoids in the category of applicative functors). So you get to use nice notation like:
or
There are 'better' applicative parser combinator libraries now (i.e., more suited to specific domains), but Parsec was the first one to use the applicative functors approach. Attoparsec is another library to consider, and has been tuned for high performance on strict Text. But it doesn't have backtracking at all (iirc).
Admin
Admin
Just don't share that on snapchat.
Admin
Admin
I found an explanation of parser combinators which actually made sense to me.
http://theorangeduck.com/page/you-could-have-invented-parser-combinators
Admin
Your SQL metaphor has grown like an acorn into a magnificent Boeing 747.
Admin
Sorry for the very late response to this, just saw the message by accident (Discoursety). I am curious to know how a version using EXISTS would compare.
In DB2 at least, EXISTS is often much faster than IN, because the latter materializes the entire set while the former only looks for one row (set is not empty). In fact, in the DB2 environment, I rarely use this form of IN because of that. Mostly the savings only materializes if the IN set can be of significant size.
AIA for any typos.
Admin
Admin
IOW, meaningless performance differences…
Admin
In this instance, yup.
Admin
Missed one?
Admin
Prolly. I just copy-pasted the query he wanted to compare with mine...
Though given it's a literal, not sure how using
EXISTS
would help with that one, given how much use it was with the rest of the query.Admin
Hence my question mark. Just wanted to be sure that I had not misunderstood anything.
Admin
Аллюр https://ayurdara.ru/fotoal_bomy/ayurdara_na_vasil_evskom_ostrove/15/
МАКШИКА 1 (Макшика+Нетра) ПХАЛА – Фруктовый массаж https://ayurdara.ru/fotoal_bomy/ayurdara_-_ayurveda_v_sankt-peterburge/5/1/
Ещё раз о пользе насьям https://ayurdara.ru/vopros-otvet/rasprodazha_podarochnyh_sertifikatov_spa-programmy_-50_massazhi_i_procedury-_20/
Дхату – пауштик расаяны: Усиливают оджас, иммунитет и ткани тела https://ayurdara.ru/sredstva_firmy_nagarjuna/kumkumadi_kumkumadi/ Растения, имеющие такие свойства это, к примеру, амла (индийский крыжовник), шатавари (аспарагус рацемозус), шиладжит (индийское мумие), ашвагандха (витания снотворная), паста чаванпраш https://ayurdara.ru/fotoal_bomy/2021/21/ Вайя стхапани расаяны: Увеличивает продолжительность жизни, поддерживает молодость тела и кожи, замедляет старение тела https://ayurdara.ru/sredstva_firmy_kottakkal/indukantam_kvatham_indukantam_kwatham/ Этими качествами обладают семена и ягоды винограда, гранаты, куркума, трифала, дашамула, лотос арабский https://ayurdara.ru/fotoal_bomy/den_jogi_2022/ Медхъя расаяны: Увеличивают интеллектуальные способности и память, убирают стресс https://ayurdara.ru/fotoal_bomy/pattadakal_aihole/8/ В этом нам помогают брами (центелла азиатика, готу-кола), джатамамси (аралия), вача (аир болотный), брами расаяна, сарасвати расаяна https://ayurdara.ru/fotoal_bomy/indijskij_tradicionnyj_centr_zdorov_ya_ayurdara/?p=1 Ваджикарана – аюрведические афродизьяки, увеличивающие либидо и улучшающие качество репродуктивной ткани https://ayurdara.ru/vopros-otvet/_6/ При воздержании — увеличивают интеллект, память и жизненную силу https://ayurdara.ru/ayurvedicheskie_preparaty_himalaya_herbals_indiya/talekt_talekt_himalaya_herbals/ К этим растениям относятся: шатавари, шафран, ашвагандха, индийская роза (она же чайная, бенгальская или китайская), шиладжит, нарасимха расаяна (мужчины), фаласарпис (женщины) и другие https://ayurdara.ru/vopros-otvet/?p=17
Количество https://ayurdara.ru/fotoal_bomy/ayurdara_na_vasil_evs
Admin
Желание заказчика — для нас закон https://enli-msk.ru/tproduct/189137735-970766959525-kuhnya-gloss Сделаем столешницы и фасад с закруглениями https://enli-msk.ru/direct/tproduct/500921241-832485839051-kuhnya-modern Не только в горизонтальной плоскости, но и в вертикальной https://enli-msk.ru/tproduct/189137735-313148858291-kuhnya-vudlyuks
Материал фасада: ЛДСП, Массив Стиль: Дизайнерские, Лофт Цвет: Орех, Серый Столешница: ЛДСП Цена за погонный метр: 54 731 рублей https://enli-msk.ru/direct
Корпус из 3-х слойного ЛДСП https://enli-msk.ru/direct/tproduct/500921235-374157060731-kuhnya-ribbed
Цена до акции: 16625 р https://enli-msk.ru/target
Материал фасада: ЛДСП Стиль: Модерн, Современный Цвет: Орех Столешница: ЛДСП Цена за погонный метр: 59 940 рублей http://enli-msk.ru
Доработка дизайн-проекта в течение 2-3 суток https://enli-msk.ru/
Admin
Поскольку изделие симметричное, то достаточно сделать лекало 1?2 части https://materline.ru/catalog/mattress_toppers/ Выкройка подушки для беременной показана ниже https://materline.ru/catalog/mattresses/comfort/dolce_luna/ При желании вы можете корректировать размеры https://materline.ru/catalog/pillows/saponetta/
В сегодняшнем уроке предлагаем вам заняться https://materline.ru/catalog/mattresses/lux/dolce_luna_multipaket/ Это одно из самых приятных занятий для каждой женщины https://materline.ru/catalog/mattresses/duet/ Автор мастер класса Мария Старикова расскажет вам, как сшить традиционную подушку по всем ремесленным канонам https://materline.ru/catalog/mattresses_for_babys/ Она имеет круглую форму (наподобие каравая из печи) и сшита из ситца https://materline.ru/catalog/mattresses/lux/laura/ А еще дополнена красивой незатейливой аппликацией https://materline.ru/contacts/ Такую и под голову можно положить и на стул для большего комфорта https://materline.ru/catalog/mattresses/lux/
Считаю что подушка для кормления в наше время уже необходимость https://materline.ru/catalog/mattresses/lux/dolce_luna_multipaket/ Все мы щас подстраиваемся под современные технологии которые нам облегчают воспитание малыша https://materline.ru/contacts/ Я пользовалась подушкой для кормления от фирмы эргофид http://materline.ru Это было спасением для моих рук и спины, на нее положил малышку и она кушает https://materline.ru/catalog/mattresses/comfort/dolce_luna/
У меня все, надеюсь помог!? Спасибо за внимание, и за то, что осилили такой объем информации https://materline.ru/catalog/mattresses_for_babys/ До новых встреч на Вопрос Авто, берегите себя и свой автомобиль https://materline.ru/catalog/mattresses/ Пока https://materline.ru/catalog/pillows/saponetta/
Неисправные подушки — распространенное явление особенно в автомобилях с большим пробегом https://materline.ru/catalog/ Не работать они могут по нескольким причинам, например, в связи с истечением срока пригод
Admin
КПБ Мако-Сатин 3D артикул 1001 http://sklad46.ru
Простынь размеры см, (шт) Размерный ряд постельного белья из мако - сатина: Либо Вы можете воспользоваться нашим интернет-магазином https://sklad46.ru/uslugi/podushki/ Вся продукция компании, в том числе и новинки, представлены в Каталоге https://sklad46.ru/kompaniya/partnery/ Делайте заказ, и мы отправим его транспортной компанией в Москву в течении 3х рабочих дней https://sklad46.ru/uslugi/tumbochki-i-shkafy/ Подробности Вы можете узнать на страницах Условия работы и Доставка https://sklad46.ru/uslugi/matrasy/po-tipu/porolonovye/
Расширяя рынок сбыта, мы налаживаем партнерство с ведущими транспортными компаниями https://sklad46.ru/uslugi/odeyala/ Купить продукцию в Иваново может каждый независимо от того, где сосредоточен бизнес https://sklad46.ru/kontakty/politika-konfidentsialnosti/ Ориентируясь на европейский уровень обслуживания, мы стараемся, чтобы сотрудничество с ивановской фабрикой было для клиента не только выгодным, но и удобным https://sklad46.ru/uslugi/polotentsa/polotentsa-dlya-spa-salonov/
Лукас поплин https://sklad46.ru/uslugi/podushki/
Admin
К преимуществам магазина можно отнести: Исключительно все жаждут уверенности, что приобретают продукцию высочайшего качества https://акваторг24.рф/zapornaya-radiatornaya-kotelnaya-armatura/kollektor-iz-nerzhaveyuschey-stali-dlya-teplogo-pola-3-kontura-tim-art-kcs5003/ Наш интернет-магазин сантехники гарантирует это https://акваторг24.рф/product/diametr-truby-v-dyuymah/2-1-2/
…теперь это коснулось и сантехники https://акваторг24.рф/gruppy-bezopasnosti/kronshteyn-gruppy-bezopasnosti-du25/ Нашел интернет – магазин сантехника онлайн https://акваторг24.рф/polipropilenovye-truby-slt-aqua-polipropilenovye-truby-slt-aqua/polipropilenovye-truby-armirovannye-1/armirovannaya-steklovoloknom-truba-slt-aqua-pp-r-pp-r-gf-pp-r-d63x10-5-sdr6-4-m-sltpgf66325/ Вполне достойный магазин, есть все что надо и цены терпимые https://акваторг24.рф/truby-i-fitingi/hromirovannyy-troynik-latunnyy-tim-1-2-x1-2-x1-2-art-k-tfmf222/
Официальный сайт: santehmoll https://акваторг24.рф/product/tip-rezby/2f/ ru https://акваторг24.рф/truby-i-fitingi/svarochnyy-apparat-dlya-trub-i-fitingov-ppr-1800-vt-tim-wm-02/
Admin
Мы разделили протечки на два вида: Безвоздушная покраска от 50 руб https://alpinist-servis.ru/germetizaciya-mezhpanelnyx-shvov/ /м 2 Заказать Покраска фасадов от 70 руб https://alpinist-servis.ru/nashi-uslugi/ustanovka-krysh-balkonov/ /м 2 Заказать Покраска мостов от 150 руб https://alpinist-servis.ru/chistka-krovli-ot-naledi-i-sosulek/ /м 2 Заказать Покраска резервуаров от 100 руб https://alpinist-servis.ru/category/pokraska-metallokonstrukcij/ /м 2 Заказать Покраска дымовых труб от 100 руб https://alpinist-servis.ru/category/germetizaciya/ /м 2 Заказать Покраска металлоконструкций на высоте от 100 руб https://alpinist-servis.ru/nashi-uslugi/sbivanie-sosulek/ /м 2 Заказать Покраска водонапорных башен от 100 руб https://alpinist-servis.ru/privacy/ /м 2 Заказать https://alpinist-servis.ru/nashi-uslugi/remont-vodostokov/
Мы оказываем довольно обширный спектр услуг по ремонту и обслуживанию зданий https://alpinist-servis.ru/nashi-uslugi/ded-moroz-v-okno/ Одно из наиболее востребованных направлений нашей деятельности – высотный монтаж https://alpinist-servis.ru/nashi-uslugi/montazh-bannera/ К этой категории услуг относятся все технические операции, которые проводятся на уровне 1,7 м от земли и выше https://alpinist-servis.ru/nashi-uslugi/gidroizolyaciya-kryshi-balkona/ При подъеме более чем на 5 метров работам присваивается категория повышенной сложности https://alpinist-servis.ru/montag-obogr-kabela-moskva-isakovskogo39k1/
Ситимастер https://alpinist-servis.ru/prijemnoi_moskva__ulvorontovskie_prudy_d3/
Прайс лист мойка фасада 2022 https://alpinist-servis.ru
Подъем мебели, телевизоров, столешниц, стекол, джакузи в окно или на кровлю https://alpinist-servis.ru/nashi-foto/ Описания, видео и фотографии https://alpinist-servis.ru/nashi-uslugi/pokraska-fasadov/
Admin
Обзор по профессии косметик - эстетист (документы, услуги, где можно работать) https://cosmetologistcourse.com/web_new?utm_source=seo Что входит в курс https://cosmetologistcourse.com/ Как выбрать курсы косметолога https://cosmetologistcourse.com/documents Рассказывает преподаватель Москатова Наталья Павловна https://cosmetologistcourse.com/programmi
№ Тема Часов 1 https://cosmetologistcourse.com/ Введение в косметологию https://cosmetologistcourse.com/documents Оборудование косметологического кабинета https://cosmetologistcourse.com/ Санитарные нормативы https://cosmetologistcourse.com/documents Асептика, антисептика, методы дезинфекции https://cosmetologistcourse.com/web_new 4 2 https://cosmetologistcourse.com/programmi Гистология, анатомия,физиология,биохимия кожи, микрофлора кожи 4 3 https://cosmetologistcourse.com/documents Гистология, анатомия,физиология,биохимия кожи, микрофлора кожи 4 4 https://cosmetologistcourse.com/web_new?utm_source=seo Основы дерматологии 4 5 https://cosmetologistcourse.com/ Косметическая химия https://cosmetologistcourse.com/ Классификация готовых косметических средств, характеристика сырья https://cosmetologistcourse.com/job_openings Алгоритм чтения рецептуры косметических препаратов https://cosmetologistcourse.com/documents 4 6 https://cosmetologistcourse.com/ Косметическая химия https://cosmetologistcourse.com/documents Классификация готовых косметических средств, характеристика сырья https://cosmetologistcourse.com/documents Алгоритм чтения рецептуры косметических препаратов https://cosmetologistcourse.com/web_new?utm_source=seo 4 7 https://cosmetologistcourse.com/ Коррекция формы бровей https://cosmetologistcourse.com/web_new Отработка практических навыков https://cosmetologistcourse.com/web_new 4 8 https://cosmetologistcourse.com/web_new?utm_source=seo Окраска бровей и ресниц https://cosmetologistcourse.com/documents Отработка практических навыков https://cosmetologistcourse.com/web_new?utm_source=seo
Admin
· профилактическая дезинфекция – проводится независимо от наличия инфекционных заболеваний в целях их предупреждения и заключается в систематическом обеззараживании в лечебно-профилактических организациях предметов, контактирующих с пациенто Полиалкиленгуанидины эффективны против большинства патогенных микроорганизмов, вызывающих гнойные, респираторные, кишечные, венерические и других заболевания людей они также подавляют многих возбудителей болезней животных (сальмонеллеза, листериоза, бруцеллеза, туберкулеза и др https://crystal-tr.ru/product-category/medequip/pulsoksimetr/ ), обладают фунгицидными, пестицидными, алгицидными свойствами https://crystal-tr.ru/product/kombinezon-tipa-kasper/
Самаровка https://crystal-tr.ru/product/igla-babochka-sfm-18g-1-20h19mm-100-shtuk/
Так, например, допускается хранение растворов некоторых средств на основе четвертичных аммониевых соединений до 30 суток https://crystal-tr.ru/product/kateter-sfm-vnutrivennyj-26g-100-sht/ В этом случае целесообразно проводить контроль каждый раз перед использованием https://crystal-tr.ru/product/igla-babochka-sfm-24g-0-55h19mm-100-shtuk/
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой https://crystal-tr.ru/product/bespribornaja-jekspress-diagnostika-h-6/
Меди сульфат (медный купорос) и цинка сульфат применяются как антисептические и вяжущие средства в виде растворов при воспалительных нарушениях слизистых оболочек глаза (конъюнктивит), гортани (ларингит) и мочеиспускательного канала (уретрит) https://crystal-tr.ru/product/ergonom-x-plenka-rentgenovskaja-samoprojavljajushhajasja-50sht-up/
Admin
66 045 Руб https://www.ecolider.ru/categ/antigololednie_reagenti/1847.html Купить https://www.ecolider.ru/categ/antigololednie_reagenti/1796.html
Снегоуборщик – агрегат, который предназначен для очищения территорий от снега https://www.ecolider.ru/categ/snegouborochniy_inventar/1630.html В зависимости от типа двигателя, снегоуборщики разделяются на два типа – электрические и бензиновые https://www.ecolider.ru/categ/snegouborochniy_inventar/1595.html В зависимости от типа передвижения различают самоходный и несамоходный https://www.ecolider.ru/categ/snegouborochniy_inventar/1591.html
Есть Нет Показать значения https://www.ecolider.ru/categ/pellety_toplivnie/1767.html
53 990 руб https://www.ecolider.ru/articles.html
66 045 Руб https://www.ecolider.ru/categ/raspredeliteli_snowex/raspredeliteli_snowex_dlya_gidkostey/1755.html Купить https://www.ecolider.ru/categ/snegouborochniy_inventar/1605.html
Купить в 1 клик https://www.ecolider.ru/categ/telezhki_dozatori/telegka-dozator_zogel.html
Admin
используются проверенные вещества для создания раствора, который безвреден и отличается экологичностью; все профессиональные концентрированные моющие и дезинфицирующие средства имеют сертификаты, протестированы и отвечают современным европейским и российским стандартам качества; обеспечивается идеальная чистота в помещении: удаляются даже самые серьёзные загрязнения без разрушения обрабатываемой поверхности; высокая проникающая способность позволяет очистить самые труднодоступные места: создаются идеальные санитарные условия и полная дезинфекция; большинство средств может использоваться как на промышленных предприятиях, так и в быту; отдельные концентрированные моющие чистящие средства учитывают особенности рабочей поверхности и разработаны специально для неё: такое разделение помогает увеличить эффективность чистки; гораздо выгоднее покупать средства от производителя: нет накруток стоимости и устанавливается приемлемая цена на всю продукцию https://astrasept.ru/dispensery/bytovye-derzhateli-dlya-tualetnoy-bumagi-i-polotenec/derzhatel-tualetnoy-bumagi-iz-nerzhaveyuschey-stali-antivandalnyy-s-polochkoy-79905/
Средство для мытья вагонов подвижного состава, авто техники и от грязе- почвенных и атмосфер https://astrasept.ru/sushilki-dlya-ruk/sushilka-dlya-ruk-g-teq-8851-pw/ https://astrasept.ru/vedra-urny-korziny/vedra-i-urny-s-pedalyu/vedro-s-pedalyu-7-l-seryy-metallik/
Средство для мытья посуды Velly Neutral https://astrasept.ru/uborochnoe-oborudovanie/inventar-dlya-mytya-okon/shtangi-teleskopicheskie-dlya-steklomoek-ruchki/teleskopicheskaya-rukoyatka-1-2-m.-2h0-6-m.-alyuminievaya./
Синтетическая кислота, моющее средство с низким показателем ph https://astrasept.ru/vedra-urny-korziny/razdelnyy-sbor-musora/urna-dlya-rso-dvuhsekcionnaya-duet-80-l-h-2-metallicheskaya/
Качественная бытовая химия: чистящие и моющие средства https://astrasept.ru/rashodnye-materialy-ru/dezinficiruyuschie-sredstva/mylo-zhidkoe-pennnoe-kartridzhi/mylo-v-kartridzhah-tork-i-ego-analogi/neytralnoe-zhidkoe-mylo-v-kartridzhe-1
Admin
Beverly Hills https://ayurdara.ru/fotoal_bomy/den_jogi_2021/10/
Кайлаш Дживан — аюрведический многофункциональный крем-бальзам, созданный на основе целебных индийск https://ayurdara.ru/fotoal_bomy/izvara_2022/1/ https://ayurdara.ru/ayurvedicheskie_chajnye_napitki_serii_energiya_dosh/5/
Индийская лавка на Рубинштейна, 2/45 https://ayurdara.ru/fotoal_bomy/ayurdara_-_ayurveda_v_sankt-peterburge/11/5/
приём аюрведических препаратов; лечебную диету; режим дня; нагрузок; физические и дыхательные упражнения; массажи и процедуры; детоксикацию https://ayurdara.ru/vopros-otvet/seminar_doktora_subisha_25_iyunya_2022_goda/
ДИАГНОСТИКА https://ayurdara.ru/uslugi_i_ceny/vasthi/
Йога онлайн https://ayurdara.ru/fotoal_bomy/izvara_2022/_/