ਵਿਕੀਪੀਡੀਆ pawiki https://pa.wikipedia.org/wiki/%E0%A8%AE%E0%A9%81%E0%A9%B1%E0%A8%96_%E0%A8%B8%E0%A8%AB%E0%A8%BC%E0%A8%BE MediaWiki 1.47.0-wmf.24 first-letter ਮੀਡੀਆ ਖ਼ਾਸ ਗੱਲ-ਬਾਤ ਵਰਤੋਂਕਾਰ ਵਰਤੋਂਕਾਰ ਗੱਲ-ਬਾਤ ਵਿਕੀਪੀਡੀਆ ਵਿਕੀਪੀਡੀਆ ਗੱਲ-ਬਾਤ ਤਸਵੀਰ ਤਸਵੀਰ ਗੱਲ-ਬਾਤ ਮੀਡੀਆਵਿਕੀ ਮੀਡੀਆਵਿਕੀ ਗੱਲ-ਬਾਤ ਫਰਮਾ ਫਰਮਾ ਗੱਲ-ਬਾਤ ਮਦਦ ਮਦਦ ਗੱਲ-ਬਾਤ ਸ਼੍ਰੇਣੀ ਸ਼੍ਰੇਣੀ ਗੱਲ-ਬਾਤ ਫਾਟਕ ਫਾਟਕ ਗੱਲ-ਬਾਤ TimedText TimedText talk ਮੌਡਿਊਲ ਮੌਡਿਊਲ ਗੱਲ-ਬਾਤ Package Package talk Event Event talk Topic ਦੇਸੀ 0 1725 850705 612954 2026-10-28T00:00:35Z ~2026-57456-73 62735 850705 wikitext text/x-wiki ''' ਦੇਸੀ''' {{IPA-hns|d̪eːsi|}} [[ਭਾਰਤੀ ਉਪ-ਮਹਾਂਦੀਪ]] ਜਾਂ [[ਦੱਖਣ ਏਸ਼ੀਆ]] ਅਤੇ ਉਹਨਾਂ ਦੇ [[ਡਾਇਸਪੋਰਾ]], ਲੋਕਾਂ, ਸੱਭਿਆਚਾਰਾਂ ਅਤੇ ਉਤਪਾਦਾਂ ਲਈ ਇੱਕ ਖੁੱਲ੍ਹਾ ਜਿਹਾ ਸ਼ਬਦ ਹੈ, ਜੋ ਪ੍ਰਾਚੀਨ [[ਸੰਸਕ੍ਰਿਤ]] ਸ਼ਬਦ '' ਦੇਸ਼ (deśá) '', ਭਾਵ '' ਲੈਂਡ '' ਜਾਂ '' ਕੰਟਰੀ '' ਤੋਂ ਬਣਿਆ ਹੈ।<ref name="Shirley2010">{{cite book |first=Shirley R. |last=Steinberg |url= https://books.google.com/books?id=ZnSBRxsjn_4C&pg=PA87 |title=Boy Culture: An Encyclopedia |publisher=ABC-CLIO |date=17 June 2010 |access-date=12 March 2012 |first2=Michael |last2=Kehler |first3=Lindsay |last3=Cornish |pages=86–88 |isbn=978-0-313-35080-1}}</ref> "ਦੇਸ਼ੀ" ਇੱਕ ਢਿੱਲਮ ਢਿੱਲਾ ਸ਼ਬਦ ਹੈ, ਇਸ ਲਈ ਜਿਹਨਾਂ ਦੇਸ਼ਾਂ ਨੂੰ "ਦੇਸ਼ੀ" ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਉਹ ਅੰਤਰਮੁਖੀ ਹੁੰਦਾ ਹੈ, ਹਾਲਾਂਕਿ ਅਕਸਰ ਇਹ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਕਿ [[ਬੰਗਲਾਦੇਸ਼]] ਅਤੇ [[ਭਾਰਤ]] ਅਤੇ ਦੇਸ਼ ਦੇਸ਼ੀ ਹਨ।<ref>{{cite web |url=http://www.oxforddictionaries.com/definition/english/desi |title=desi |work=OxfordDictionaries.com |publisher=[[Oxford University Press]] |date=2016 |access-date=12 October 2016 |archive-date=18 ਅਗਸਤ 2016 |archive-url=https://web.archive.org/web/20160818144256/http://www.oxforddictionaries.com/definition/english/desi |dead-url=yes }}</ref><ref>{{cite web |last=Guha |first=Rohin |url= http://theaerogram.com/is-it-time-to-kill-off-the-word-desi/ |title=Is It Time to Kill Off the Word 'Desi'? |work=The Aerogram |date=12 October 2013 |access-date=12 October 2016}}</ref> [[ਭੂਟਾਨ]], [[ਮਾਲਦੀਵ]], ਅਤੇ [[ਸ਼੍ਰੀ ਲੰਕਾ]] ਨੂੰ ਵੀ ਸ਼ਬਦ ਦੇ ਕੁਝ ਉਪਯੋਗਾਂ ਵਿੱਚ "ਦੇਸੀ" ਦੇ ਤੌਰ 'ਤੇ ਲਿਆ ਜਾ ਸਕਦਾ ਹੈ। {{ਅਧਾਰ}} ==ਹਵਾਲੇ== {{ਹਵਾਲੇ}} [[ਸ਼੍ਰੇਣੀ:ਸਮਾਜ]] 3untvxuqr5hunp65lw5ywg6xjhym4p7 ਰਨੇ ਦੇਕਾਰਤ 0 23235 850709 616035 2026-10-28T08:36:35Z Tamanpreet Kaur 26648 850709 wikitext text/x-wiki {{Infobox philosopher | region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ | era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ | image = Frans Hals - Portret van René Descartes.jpg | image_size = 245px | caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref> | name = ਰਨੇ ਦੇਕਾਰਤ | birth_date = 31 ਮਾਰਚ 1596 | birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]] | death_date = 11 ਫਰਵਰੀ 1650 | death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]] | nationality = [[ਫਰਾਂਸੀਸੀ]] | school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ | religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref> | main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]] | influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref> | influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]] | notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]] | signature = Firma Descartes.svg }} '''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] ਦਾਰਸ਼ਨਿਕ, ਹਿਸਾਬਦਾਨ, ਅਤੇ ਲੇਖਕ ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਖਾਸਕਰ, ਉਸਦੀ ਰਚਨਾ ''[[ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ]]'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ। ==ਜ਼ਿੰਦਗੀ== ===ਮੁਢਲੀ ਜ਼ਿੰਦਗੀ=== [[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]] [[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]] ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref> ==ਹਵਾਲੇ== {{ਹਵਾਲੇ}} [[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]] [[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]] [[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]] oe8fbrqs02pw5dcuk7x7kersdt425nv 850710 850709 2026-10-28T08:39:14Z Tamanpreet Kaur 26648 850710 wikitext text/x-wiki {{Infobox philosopher | region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ | era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ | image = Frans Hals - Portret van René Descartes.jpg | image_size = 245px | caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref> | name = ਰਨੇ ਦੇਕਾਰਤ | birth_date = 31 ਮਾਰਚ 1596 | birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]] | death_date = 11 ਫਰਵਰੀ 1650 | death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]] | nationality = [[ਫਰਾਂਸੀਸੀ]] | school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ | religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref> | main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]] | influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref> | influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]] | notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]] | signature = Firma Descartes.svg }} '''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] [[ਦਾਰਸ਼ਨਿਕ]], [[ਹਿਸਾਬਦਾਨ]], ਅਤੇ [[ਲੇਖਕ]] ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਉਸਦੀ ਰਚਨਾ ''ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ। ==ਜ਼ਿੰਦਗੀ== ===ਮੁੱਢਲੀ ਜ਼ਿੰਦਗੀ=== [[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]] [[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]] ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref> ==ਹਵਾਲੇ== {{ਹਵਾਲੇ}} [[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]] [[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]] [[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]] schn1olj6fc3etmwd1orro0re4m0zzy 850711 850710 2026-10-28T09:36:27Z Tamanpreet Kaur 26648 Created by translating the section "Philosophy" from the page "[[:en:Special:Redirect/revision/1381471270|René Descartes]]" 850711 wikitext text/x-wiki {{Infobox philosopher | region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ | era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ | image = Frans Hals - Portret van René Descartes.jpg | image_size = 245px | caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref> | name = ਰਨੇ ਦੇਕਾਰਤ | birth_date = 31 ਮਾਰਚ 1596 | birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]] | death_date = 11 ਫਰਵਰੀ 1650 | death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]] | nationality = [[ਫਰਾਂਸੀਸੀ]] | school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ | religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref> | main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]] | influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref> | influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]] | notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]] | signature = Firma Descartes.svg }} '''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] [[ਦਾਰਸ਼ਨਿਕ]], [[ਹਿਸਾਬਦਾਨ]], ਅਤੇ [[ਲੇਖਕ]] ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਉਸਦੀ ਰਚਨਾ ''ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ। ==ਜ਼ਿੰਦਗੀ== ===ਮੁੱਢਲੀ ਜ਼ਿੰਦਗੀ=== [[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]] [[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]] ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref> == ਫ਼ਲਸਫ਼ਾ == [[File:Pieter_Nason_-_Portrait_of_René_Descartes,_1647.jpg|thumb| ਪੀਟਰ ਨੈਸਨ ਦੁਆਰਾ ਰਨੇ ਦੇਕਾਰਤਦਾ ਚਿੱਤਰ (1647)]] ''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਉਹ ਸਿਧਾਂਤਾਂ ਦੇ ਇੱਕ ਬੁਨਿਆਦੀ ਸਮੂਹ 'ਤੇ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਸ਼ੱਕ ਦੇ ਸੱਚ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਸਨੇ ਹਾਈਪਰਬੋਲਿਕ ਜਾਂ ਅਧਿਆਤਮਿਕ ਸ਼ੱਕ ਨਾਮਕ ਇੱਕ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ, ਜਿਸਨੂੰ ਕਈ ਵਾਰ ਵਿਧੀਗਤ ਸ਼ੱਕਵਾਦ ਜਾਂ [[ਕਾਰਟੇਸੀਅਨ ਸ਼ੱਕ]] ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ ਨੇ ਅਜਿਹੇ ਵਿਚਾਰਾਂ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਿਸ 'ਤੇ ਸ਼ੱਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਸੱਚੇ ਗਿਆਨ ਲਈ ਇੱਕ ਮਜ਼ਬੂਤ ਨੀਂਹ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਹਨਾਂ ਨੂੰ ਦੁਬਾਰਾ ਸਥਾਪਿਤ ਕੀਤਾ।<ref>{{Cite web |last=Copenhaver |first=Rebecca |title=Forms of skepticism |url=http://www.lclark.edu/~rebeccac/forms.html |archive-url=https://web.archive.org/web/20050108095032/http://www.lclark.edu/~rebeccac/forms.html |archive-date=8 January 2005 |access-date=15 August 2007}}</ref> ਉਹ ਇਸ ਗੱਲ ਨੂੰ ਉਸਾਰੀ ਕਲਾ ਨਾਲ ਜੋੜਦਾ ਹੈ ਜਿਵੇਂ ਇੱਕ ਨਵੀਂ ਇਮਾਰਤ ਜਾਂ ਢਾਂਚਾ ਬਣਾਉਣ ਲਈ ਉੱਪਰਲੀ ਮਿੱਟੀ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਉਸੇ ਤਰ੍ਹਾਂ ਉਹ ਆਪਣੇ ਸ਼ੱਕ ਨੂੰ ਮਿੱਟੀ ਅਤੇ ਨਵੇਂ ਗਿਆਨ ਨੂੰ ਇਮਾਰਤਾਂ ਕਹਿੰਦਾ ਹੈ। ਦੇਕਾਰਟਸ ਲਈ [[ਅਰਸਤੂ]] ਦਾ ਬੁਨਿਆਦਵਾਦ ਅਧੂਰਾ ਸੀ ਅਤੇ ਉਸਦਾ ਸ਼ੱਕ ਦਾ ਤਰੀਕਾ ਬੁਨਿਆਦਵਾਦ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ। ਸ਼ੁਰੂ ਵਿੱਚ, ਦੇਕਾਰਤ ਸਿਰਫ਼ ਇੱਕ ਸਿਧਾਂਤ 'ਤੇ ਪਹੁੰਚਦਾ ਹੈ ਕਿ ਉਹ ਸੋਚਦਾ ਹੈ। ਇਹ ਉਸਦੇ ''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਲਾਤੀਨੀ ਵਾਕੰਸ਼, "Cogito, ergo sum{{Space+double}} ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ, ਜੋ ਮੂਲ ਰੂਪ ਵਿੱਚ ਫਰਾਂਸੀਸੀ ਵਿੱਚ " {{Lang|fr|Je pense, donc je suis}} ਵਜੋਂ ਲਿਖਿਆ ਗਿਆ ਸੀ। ਇਸਦਾ ਭਾਵ ਹੈ ਕਿ {{Space+double}}ਮੈਂ ਸੋਚਦਾ ਹਾਂ, ਇਸ ਲਈ ਮੈਂ ਹਾਂ"।<ref>{{Cite web |title=Cogito, ergo sum {{!}} philosophy |url=https://www.britannica.com/topic/cogito-ergo-sum |url-status=live |archive-url=https://web.archive.org/web/20150616100526/https://www.britannica.com/topic/cogito-ergo-sum |archive-date=16 June 2015 |access-date=28 July 2021 |website=Encyclopedia Britannica |language=en}}</ref> ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ, ਜੇਕਰ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਤਾਂ ਕੋਈ ਚੀਜ਼ ਜਾਂ ਕੋਈ ਵਿਅਕਤੀ ਜ਼ਰੂਰ ਸ਼ੱਕ ਕਰ ਰਿਹਾ ਹੋਵੇਗਾ; ਇਸ ਲਈ, ਇਹੀ ਤੱਥ ਕਿ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਉਸਦੀ ਹੋਂਦ ਨੂੰ ਸਾਬਤ ਕਰਦਾ ਹੈ। ਇਸ ਵਾਕੰਸ਼ ਦਾ ਸਰਲ ਅਰਥ ਇਹ ਹੈ ਕਿ ਜੇਕਰ ਕੋਈ ਵਿਅਕਤੀ ਆਪਣੀ ਹੋਂਦ ਬਾਰੇ ਸ਼ੱਕੀ ਹੈ, ਤਾਂ ਇਹ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਹੈ ਕਿ ਉਹ ਮੌਜੂਦ ਹੈ।"<ref>{{Cite web |title=Ten books: Chosen by Raj Persuade |url=http://bjp.rcpsych.org/cgi/content/full/181/3/258 |url-status=live |archive-url=https://web.archive.org/web/20031110060925/http://bjp.rcpsych.org/cgi/content/full/181/3/258 |archive-date=10 November 2003 |access-date=13 November 2007 |publisher=The [[British Journal of Psychiatry]]}}</ref> ਇਹ ਦੋ ਪਹਿਲੇ ਸਿਧਾਂਤ - ਮੈਂ ਸੋਚਦਾ ਹਾਂ ਅਤੇ ਮੈਂ ਮੌਜੂਦ ਹਾਂ - ਬਾਅਦ ਵਿੱਚ ਦੇਕਾਰਤਦੀ ਸਪਸ਼ਟ ਅਤੇ ਵੱਖਰੀ ਧਾਰਨਾ ''ਦਿ ਮੈਡੀਟੇਸ਼ਨਜ਼'' ਤੋਂ ਉਸਦੀ ਤੀਜੀ ਮੈਡੀਟੇਸ਼ਨ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। <ref>{{Cite web |last=Ron Bombardi |title=How the Rationalists Construe "Clear and Distinct Ideas" |url=https://capone.mtsu.edu/rbombard/RB/Spinoza/cnd.html}}</ref> ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ ਕਿ ਉਹ ਨਿਸ਼ਚਤ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਉਹ ਇਸ ਲਈ ਮੌਜੂਦ ਹੈ ਕਿਉਂਕਿ ਉਹ ਸੋਚਦਾ ਹੈ, ਪਰ ਇੰਦਰੀਆਂ ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ ਆਪਣੇ ਸਰੀਰ ਨੂੰ ਸਮਝਣਾ ਇੱਕ ਅਵਿਸ਼ਵਾਸ਼ਯੋਗ ਸਬੂਤ ਹੈ। ਇਸ ਲਈ ਦੇਕਾਰਤ ਨੇ ਇਹ ਨਿਰਧਾਰਤ ਕੀਤਾ ਕਿ ਇੱਕੋ ਇੱਕ ਨਿਰਵਿਵਾਦ ਗਿਆਨ ਇਹ ਹੈ ਕਿ ਉਹ ਇੱਕ ''ਸੋਚਣ ਵਾਲੀ ਚੀਜ਼'' ਹੈ। ਇਸ ਤਰ੍ਹਾਂ ਸੋਚਣਾ ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਹਰ ਗਤੀਵਿਧੀ ਹੈ ਜਿਸ ਬਾਰੇ ਵਿਅਕਤੀ ਤੁਰੰਤ [[ਚੇਤਨਾ|ਸੁਚੇਤ ਹੁੰਦਾ]] ਹੈ। ਉਸਨੇ ਇਹ ਸੋਚਣ ਦੇ ਕਾਰਨ ਦਿੱਤੇ ਕਿ ਜਾਗਦੇ ਵਿਚਾਰ ਸੁਪਨਿਆਂ ਤੋਂ ਵੱਖਰੇ ਹਨ, ਅਤੇ ਕਿਸੇ ਦੇ ਮਨ ਨੂੰ ਕਿਸੇ ਦੁਸ਼ਟ ਭੂਤ ਦੁਆਰਾ ਭਰਮ ਵਿੱਚ ਨਹੀਂ ਪਾਇਆ ਜਾ ਸਕਦਾ। ਇਸ ਤਰੀਕੇ ਨਾਲ, ਦੇਕਾਰਟਸ ਗਿਆਨ ਦੀ ਇੱਕ ਪ੍ਰਣਾਲੀ ਦਾ ਨਿਰਮਾਣ ਕਰਨ ਲਈ ਅੱਗੇ ਵਧਦਾ ਹੈ, [[ਬੋਧ|ਧਾਰਨਾ]] ਨੂੰ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਮੰਨਦਾ ਅਤੇ ਇੱਕ ਵਿਧੀ ਦੇ ਤੌਰ 'ਤੇ ਸਿਰਫ਼ ਕਟੌਤੀ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।<ref name="Preface">{{Cite web |last=Descartes |first=René |title=Letter of the Author to the French Translator of the Principles of Philosophy serving for a preface |url=http://www.classicallibrary.org/descartes/principles/preface.htm |url-status=live |archive-url=https://web.archive.org/web/20180117122219/http://www.classicallibrary.org/descartes/principles/preface.htm |archive-date=17 January 2018 |access-date=6 December 2011}}</ref> ==ਹਵਾਲੇ== {{ਹਵਾਲੇ}} [[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]] [[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]] [[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]] s3cqeyfxxxsqkm2o5ubvmkorn0q9848 850712 850711 2026-10-28T09:37:05Z Tamanpreet Kaur 26648 850712 wikitext text/x-wiki {{Infobox philosopher | region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ | era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ | image = Frans Hals - Portret van René Descartes.jpg | image_size = 245px | caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref> | name = ਰਨੇ ਦੇਕਾਰਤ | birth_date = 31 ਮਾਰਚ 1596 | birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]] | death_date = 11 ਫਰਵਰੀ 1650 | death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]] | nationality = [[ਫਰਾਂਸੀਸੀ]] | school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ | religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref> | main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]] | influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref> | influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]] | notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]] | signature = Firma Descartes.svg }} '''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] [[ਦਾਰਸ਼ਨਿਕ]], [[ਹਿਸਾਬਦਾਨ]], ਅਤੇ [[ਲੇਖਕ]] ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਉਸਦੀ ਰਚਨਾ ''ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ। ==ਜ਼ਿੰਦਗੀ== ===ਮੁੱਢਲੀ ਜ਼ਿੰਦਗੀ=== [[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]] [[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]] ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref> == ਫ਼ਲਸਫ਼ਾ == [[File:Pieter_Nason_-_Portrait_of_René_Descartes,_1647.jpg|thumb| ਪੀਟਰ ਨੈਸਨ ਦੁਆਰਾ ਰਨੇ ਦੇਕਾਰਤਦਾ ਚਿੱਤਰ (1647)]] ''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਉਹ ਸਿਧਾਂਤਾਂ ਦੇ ਇੱਕ ਬੁਨਿਆਦੀ ਸਮੂਹ 'ਤੇ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਸ਼ੱਕ ਦੇ ਸੱਚ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਸਨੇ ਹਾਈਪਰਬੋਲਿਕ ਜਾਂ ਅਧਿਆਤਮਿਕ ਸ਼ੱਕ ਨਾਮਕ ਇੱਕ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ, ਜਿਸਨੂੰ ਕਈ ਵਾਰ ਵਿਧੀਗਤ ਸ਼ੱਕਵਾਦ ਜਾਂ [[ਕਾਰਟੇਸੀਅਨ ਸ਼ੱਕ]] ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ ਨੇ ਅਜਿਹੇ ਵਿਚਾਰਾਂ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਿਸ 'ਤੇ ਸ਼ੱਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਸੱਚੇ ਗਿਆਨ ਲਈ ਇੱਕ ਮਜ਼ਬੂਤ ਨੀਂਹ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਹਨਾਂ ਨੂੰ ਦੁਬਾਰਾ ਸਥਾਪਿਤ ਕੀਤਾ।<ref>{{Cite web |last=Copenhaver |first=Rebecca |title=Forms of skepticism |url=http://www.lclark.edu/~rebeccac/forms.html |archive-url=https://web.archive.org/web/20050108095032/http://www.lclark.edu/~rebeccac/forms.html |archive-date=8 January 2005 |access-date=15 August 2007}}</ref> ਉਹ ਇਸ ਗੱਲ ਨੂੰ ਉਸਾਰੀ ਕਲਾ ਨਾਲ ਜੋੜਦਾ ਹੈ ਜਿਵੇਂ ਇੱਕ ਨਵੀਂ ਇਮਾਰਤ ਜਾਂ ਢਾਂਚਾ ਬਣਾਉਣ ਲਈ ਉੱਪਰਲੀ ਮਿੱਟੀ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਉਸੇ ਤਰ੍ਹਾਂ ਉਹ ਆਪਣੇ ਸ਼ੱਕ ਨੂੰ ਮਿੱਟੀ ਅਤੇ ਨਵੇਂ ਗਿਆਨ ਨੂੰ ਇਮਾਰਤਾਂ ਕਹਿੰਦਾ ਹੈ। ਦੇਕਾਰਟਸ ਲਈ [[ਅਰਸਤੂ]] ਦਾ ਬੁਨਿਆਦਵਾਦ ਅਧੂਰਾ ਸੀ ਅਤੇ ਉਸਦਾ ਸ਼ੱਕ ਦਾ ਤਰੀਕਾ ਬੁਨਿਆਦਵਾਦ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ। ਸ਼ੁਰੂ ਵਿੱਚ, ਦੇਕਾਰਤ ਸਿਰਫ਼ ਇੱਕ ਸਿਧਾਂਤ 'ਤੇ ਪਹੁੰਚਦਾ ਹੈ ਕਿ ਉਹ ਸੋਚਦਾ ਹੈ। ਇਹ ਉਸਦੇ ''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਲਾਤੀਨੀ ਵਾਕੰਸ਼, "Cogito, ergo sum{{Space+double}} ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ, ਜੋ ਮੂਲ ਰੂਪ ਵਿੱਚ ਫਰਾਂਸੀਸੀ ਵਿੱਚ " {{Lang|fr|Je pense, donc je suis}} ਵਜੋਂ ਲਿਖਿਆ ਗਿਆ ਸੀ। ਇਸਦਾ ਭਾਵ ਹੈ ਕਿ {{Space+double}}ਮੈਂ ਸੋਚਦਾ ਹਾਂ, ਇਸ ਲਈ ਮੈਂ ਹਾਂ"।<ref>{{Cite web |title=Cogito, ergo sum {{!}} philosophy |url=https://www.britannica.com/topic/cogito-ergo-sum |url-status=live |archive-url=https://web.archive.org/web/20150616100526/https://www.britannica.com/topic/cogito-ergo-sum |archive-date=16 June 2015 |access-date=28 July 2021 |website=Encyclopedia Britannica |language=en}}</ref> ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ, ਜੇਕਰ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਤਾਂ ਕੋਈ ਚੀਜ਼ ਜਾਂ ਕੋਈ ਵਿਅਕਤੀ ਜ਼ਰੂਰ ਸ਼ੱਕ ਕਰ ਰਿਹਾ ਹੋਵੇਗਾ; ਇਸ ਲਈ, ਇਹੀ ਤੱਥ ਕਿ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਉਸਦੀ ਹੋਂਦ ਨੂੰ ਸਾਬਤ ਕਰਦਾ ਹੈ। ਇਸ ਵਾਕੰਸ਼ ਦਾ ਸਰਲ ਅਰਥ ਇਹ ਹੈ ਕਿ ਜੇਕਰ ਕੋਈ ਵਿਅਕਤੀ ਆਪਣੀ ਹੋਂਦ ਬਾਰੇ ਸ਼ੱਕੀ ਹੈ, ਤਾਂ ਇਹ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਹੈ ਕਿ ਉਹ ਮੌਜੂਦ ਹੈ।"<ref>{{Cite web |title=Ten books: Chosen by Raj Persuade |url=http://bjp.rcpsych.org/cgi/content/full/181/3/258 |url-status=live |archive-url=https://web.archive.org/web/20031110060925/http://bjp.rcpsych.org/cgi/content/full/181/3/258 |archive-date=10 November 2003 |access-date=13 November 2007 |publisher=The [[British Journal of Psychiatry]]}}</ref> ਇਹ ਦੋ ਪਹਿਲੇ ਸਿਧਾਂਤ - ਮੈਂ ਸੋਚਦਾ ਹਾਂ ਅਤੇ ਮੈਂ ਮੌਜੂਦ ਹਾਂ - ਬਾਅਦ ਵਿੱਚ ਦੇਕਾਰਤਦੀ ਸਪਸ਼ਟ ਅਤੇ ਵੱਖਰੀ ਧਾਰਨਾ ''ਦਿ ਮੈਡੀਟੇਸ਼ਨਜ਼'' ਤੋਂ ਉਸਦੀ ਤੀਜੀ ਮੈਡੀਟੇਸ਼ਨ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। <ref>{{Cite web |last=Ron Bombardi |title=How the Rationalists Construe "Clear and Distinct Ideas" |url=https://capone.mtsu.edu/rbombard/RB/Spinoza/cnd.html}}</ref> ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ ਕਿ ਉਹ ਨਿਸ਼ਚਤ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਉਹ ਇਸ ਲਈ ਮੌਜੂਦ ਹੈ ਕਿਉਂਕਿ ਉਹ ਸੋਚਦਾ ਹੈ, ਪਰ ਇੰਦਰੀਆਂ ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ ਆਪਣੇ ਸਰੀਰ ਨੂੰ ਸਮਝਣਾ ਇੱਕ ਅਵਿਸ਼ਵਾਸ਼ਯੋਗ ਸਬੂਤ ਹੈ। ਇਸ ਲਈ ਦੇਕਾਰਤ ਨੇ ਇਹ ਨਿਰਧਾਰਤ ਕੀਤਾ ਕਿ ਇੱਕੋ ਇੱਕ ਨਿਰਵਿਵਾਦ ਗਿਆਨ ਇਹ ਹੈ ਕਿ ਉਹ ਇੱਕ ''ਸੋਚਣ ਵਾਲੀ ਚੀਜ਼'' ਹੈ। ਇਸ ਤਰ੍ਹਾਂ ਸੋਚਣਾ ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਹਰ ਗਤੀਵਿਧੀ ਹੈ ਜਿਸ ਬਾਰੇ ਵਿਅਕਤੀ ਤੁਰੰਤ [[ਚੇਤਨਾ|ਸੁਚੇਤ ਹੁੰਦਾ]] ਹੈ। ਉਸਨੇ ਇਹ ਸੋਚਣ ਦੇ ਕਾਰਨ ਦਿੱਤੇ ਕਿ ਜਾਗਦੇ ਵਿਚਾਰ ਸੁਪਨਿਆਂ ਤੋਂ ਵੱਖਰੇ ਹਨ, ਅਤੇ ਕਿਸੇ ਦੇ ਮਨ ਨੂੰ ਕਿਸੇ ਦੁਸ਼ਟ ਭੂਤ ਦੁਆਰਾ ਭਰਮ ਵਿੱਚ ਨਹੀਂ ਪਾਇਆ ਜਾ ਸਕਦਾ। ਇਸ ਤਰੀਕੇ ਨਾਲ, ਦੇਕਾਰਟਸ ਗਿਆਨ ਦੀ ਇੱਕ ਪ੍ਰਣਾਲੀ ਦਾ ਨਿਰਮਾਣ ਕਰਨ ਲਈ ਅੱਗੇ ਵਧਦਾ ਹੈ, [[ਬੋਧ|ਧਾਰਨਾ]] ਨੂੰ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਮੰਨਦਾ ਅਤੇ ਇੱਕ ਵਿਧੀ ਦੇ ਤੌਰ 'ਤੇ ਸਿਰਫ਼ ਕਟੌਤੀ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।<ref name="Preface">{{Cite web |last=Descartes |first=René |title=Letter of the Author to the French Translator of the Principles of Philosophy serving for a preface |url=http://www.classicallibrary.org/descartes/principles/preface.htm |url-status=live |archive-url=https://web.archive.org/web/20180117122219/http://www.classicallibrary.org/descartes/principles/preface.htm |archive-date=17 January 2018 |access-date=6 December 2011}}</ref> == ਹਵਾਲੇ == {{ਹਵਾਲੇ}} [[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]] [[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]] [[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]] fbm5lrjnw87f9n6c1ihri7ivy42y98m ਜਨਕ 0 27604 850702 601791 2026-10-27T20:40:57Z Rotondus 19898 850702 wikitext text/x-wiki {{ਬੇ-ਹਵਾਲਾ|}} [[ਤਸਵੀਰ:Janaka, king of Mithila and father of Sita (cropped).jpg|thumb]] '''ਜਨਕ''' [[ਵਿਧੇਹਾ]] ਦੇ ਰਾਜੇ ਸਨ। [[ਸੀਰਾਧਵਜ]] ਸਭ ਤੌਂ ਪਰਸਿਧ ਜਨਕ ਸਨ। ਉਹ [[ਰਾਮਾਇਣ]] ਵਿੱਚ [[ਸੀਤਾ]] ਦੇ ਪਿਤਾ ਹਨ। {{ਰਾਮਾਇਣ}} {{ਅਧਾਰ}} [[ਸ਼੍ਰੇਣੀ:ਰਾਮਾਇਣ ਦੇ ਪਾਤਰ]] jw4dl7r9vqtflv0eog5huccc6qqkqxj ਇੰਸਪੈਕਟਰ ਜਨਰਲ (ਨਾਟਕ) 0 38559 850713 615598 2026-10-28T09:49:39Z Ziv 53128 ([[c:GR|GR]]) [[File:Nikolai Gogol - Revizor cover (1836).jpg]] → [[File:Nikolai Gogol, Revizor, 1836, title page.jpg]] [[c:COM:FR#FR2|Criterion 2]] · More precise 850713 wikitext text/x-wiki {{ਗਿਆਨਸੰਦੂਕ ਨਾਟਕ | name = ਇੰਸਪੈਕਟਰ ਜਨਰਲ | image = The Government Inspector by Nikolai Gogol.jpg | caption = ਨਿਕੋਲਾਈ ਗੋਗੋਲ ਦੀ 200ਵੀਂ ਜਨਮ ਵਰ੍ਹੇਗੰਢ ਨੂੰ ਸਮਰਪਿਤ ਇੱਕ ਰੂਸੀ ਟਿਕਟ, 2009 | writer ='''[[ਨਿਕੋਲਾਈ ਗੋਗੋਲ]]''' | genre = | setting = | subject = |written =1836 | premiere = | place = | orig_lang = '''[[ਰੂਸੀ ਭਾਸ਼ਾ|ਰੂਸੀ]]''' | ibdb_id = }} [[File:ਇਵਾਨ ਮਿਸਕਵਿਨ.jpg|thumb|ਬਾਬਚਿੰਸਕੀ ਦੀ ਭੂਮਿਕਾ ਵਿੱਚ ਅਦਾਕਾਰ ਇਵਾਨ ਮਿਸਕਵਿਨ]] [[File:Nikolai Gogol, Revizor, 1836, title page.jpg|thumb|Cover of the first edition]] '''''ਇੰਸਪੈਕਟਰ ਜਨਰਲ''''' (ਮੂਲ ਟਾਈਟਲ: {{lang-ru|Ревизор}}, ''ਰੇਵਿਜ਼ੋਰ'', ਸ਼ਬਦੀ ਅਰਥ: "ਇੰਸਪੈਕਟਰ"), ਯੂਕਰੇਨ ਵਿੱਚ ਜਨਮੇ ਰੂਸੀ ਨਾਟਕਕਾਰ ਅਤੇ ਨਾਵਲਕਾਰ [[ਨਿਕੋਲਾਈ ਗੋਗੋਲ]] ਦਾ ਕਿਖਿਆ ਇੱਕ [[ਵਿਅੰਗ]] [[ਨਾਟਕ]] ਹੈ।<ref name="brittanica">{{cite web|title=Nikolay Gogol|url=http://www.britannica.com/EBchecked/topic/237143/Nikolay-Vasilyevich-Gogol|accessdate=31 December 2010|work=[[Encyclopædia Britannica]]}}</ref> ਇਹਦਾ ਮੂਲ ਰੂਪ 1836 ਵਿੱਚ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋਇਆ ਸੀ, ਅਤੇ ਪਲੇ ਨੂੰ 1842 ਦੇ ਐਡੀਸ਼ਨ ਲਈ ਸੋਧਿਆ ਗਿਆ ਸੀ। ਕਥਿਤ ਤੌਰ 'ਤੇ [[ਅਲੈਗਜ਼ੈਂਡਰ ਪੁਸ਼ਕਿਨ|ਪੁਸ਼ਕਿਨ]] ਦੇ [[ਨਿਕੋਲਾਈ ਗੋਗੋਲ|ਗੋਗੋਲ]] ਨੂੰ ਸੁਣਾਏ ਇੱਕ ਸੱਚੇ ਵਾਕੇ ਤੇ ਆਧਾਰਿਤ,<ref name="Ehre">{{cite book|title= Notes for the Theater of Nikolay Gogol|url= https://archive.org/details/theaterofnikolay00gogo|last= Ehre|first= Milton|year= 1980|publisher= University of Chicago Press|isbn= 0-226-30066-8}}</ref> ਇਹ ਨਾਟਕ ਸਮਾਜਕ ਵੰਨਗੀਆਂ ਤੇ ਸਮਾਜਕ ਬੁਰਾਈਆਂ ਅਤੇ ਲੋਕਾਂ ਦੀ ਆਮ ਸੋਚ ਤੇ ਤਿੱਖਾ ਵਿਅੰਗ ਕਰਦਾ ਇਹ ਕਾਮੇਡੀ ਨਾਟਕ ਹੈ। ==ਰਚਨਾ ਦਾ ਇਤਿਹਾਸ== ਗੋਗੋਲ ਨੇ 1835 ਦੀ ਪਤਝੜ ਵਿੱਚ ਇਸ ਖੇਲ ਤੇ ਕੰਮ ਸ਼ੁਰੂ ਕੀਤਾ ਸੀ। ਪਲਾਟ ਦਾ ਸੁਝਾਅ [[ਅਲੈਗਜ਼ੈਂਡਰ ਪੁਸ਼ਕਿਨ]] ਨੇ ਵਲੋਂ ਦਿੱਤਾ ਗਿਆ ਸੀ। ਰੂਸੀ ਲੇਖਕ ਵਲਾਦੀਮੀਰ ਸੋਲੋਗੁਬ ਨੇ ਆਪਣੀਆਂ ਯਾਦਾਂ ਵਿੱਚ ਇਸ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਹੈ। [[ਸ਼੍ਰੇਣੀ:ਰੂਸੀ ਨਾਟਕ]] j81i1epzvl78s8gz12nsso89p0vuqq8 ਗੁਲਬਦੀਨ ਨਾਇਬ 0 118114 850704 850107 2026-10-27T22:30:30Z TshrinivasanBOT 62713 ਤਸਵੀਰ ਜੋੜੀ (via WikiPhotoFinder) 850704 wikitext text/x-wiki [[ਤਸਵੀਰ:Gulbadin Naib.jpg|thumb|ਗੁਲਬਦੀਨ ਨਾਇਬ]] {{Infobox cricketer|name=ਗੁਲਬਦੀਨ ਨਾਇਬ<br />{{Nastaliq|ګلبدين نایب}}|country=ਅਫ਼ਗਾਨਿਸਤਾਨ|fullname=|nickname=|birth_date={{Birth date and age|1991|3|16|df=yes}}|birth_place=[[ਪੁਲੀ ਆਲਮ]], [[ਲੋਗਰ ਰਿਆਸਤ|ਲੋਗਰ]], ਅਫ਼ਗਾਨਿਸਤਾਨ|heightft=|heightinch=|heightm=|batting=ਸੱਜਾ ਹੱਥ|bowling=ਸੱਜਾ ਹੱਥ [[ਤੇਜ਼ ਗੇਂਦਬਾਜ਼ੀ|ਮੱਧਮ-ਤੇਜ਼]]|role=[[ਆਲ-ਰਾਊਂਡਰ]]|international=ਹਾਂ|odidebutdate=9 ਅਗਸਤ|odidebutyear=2011|odidebutagainst=ਕੈਨੇਡਾ|odicap=24|lastodidate=29 ਜੂਨ|lastodiyear=2019|lastodiagainst=ਪਾਕਿਸਤਾਨ|odishirt=11|T20Idebutdate=14 ਮਾਰਚ|T20Idebutyear=2012|T20Idebutagainst=ਨੀਦਰਲੈਂਡਸ|T20Icap=15|lastT20Idate=6 ਫ਼ਰਵਰੀ|lastT20Iyear=2018|lastT20Iagainst=ਜ਼ਿੰਬਾਬਵੇ|T20Ishirt=|club1=[[ਅਫ਼ਗਾਨ ਚੀਤਾਸ]]|year1=2011/12|clubnumber1=|club2=[[ਬੂਸਟ ਡਿਫ਼ੈਂਡਰਜ਼]]|year2=2017|clubnumber2=|club3=[[ਬਲਖ ਲੈਜੰਡਸ]]|year3=2018–ਚਲਦਾ|clubnumber3=|club4=[[ਸਿਲਹਟ ਸਿਕਸਰਜ਼]]|year4=2019|clubnumber4=|columns=4|column1=[[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ|ਓਡੀਆਈ]]|matches1=58|runs1=888|bat avg1=21.65|100s/50s1=0/5|top score1=82[[ਨਾਬਾਦ|*]]|deliveries1=1,878|wickets1=51|bowl avg1=32.25|fivefor1=1|tenfor1=ਨਹੀਂ|best bowling1=6/43|catches/stumpings1=11/–|column2=[[ਟਵੰਟੀ20 ਅੰਤਰਰਾਸ਼ਟਰੀ|ਟੀ20ਆਈ]]|matches2=38|runs2=432|bat avg2=19.63|100s/50s2=0/1|top score2=56[[ਨਾਬਾਦ|*]]|deliveries2=264|wickets2=9|bowl avg2=43.77|fivefor2=0|tenfor2=ਨਹੀਂ|best bowling2=2/24|catches/stumpings2=17/–|column3=[[ਪਹਿਲਾ ਦਰਜਾ ਕ੍ਰਿਕਟ|ਪਹਿ.ਦ.]]|matches3=5|runs3=313|bat avg3=52.16|100s/50s3=0/3|top score3=88[[ਨਾਬਾਦ|*]]|deliveries3=460|wickets3=14|bowl avg3=23.28|fivefor3=1|tenfor3=0|best bowling3=5/29|catches/stumpings3=6/–|column4=[[ਲਿਸਟ ਏ ਕ੍ਰਿਕਟ|ਲਿ.ਏ.]]|matches4=91|runs4=1,645|bat avg4=24.92|100s/50s4=1/8|top score4=100|deliveries4=2,831|wickets4=79|bowl avg4=32.21|fivefor4=1|tenfor4=ਨਗੀਂ|best bowling4=6/43|catches/stumpings4=20/–|date=29 ਜੂਨ 2019|source=http://www.espncricinfo.com/ci/content/player/352048.html ESPNcricinfo}} {| class="infobox" |+ class="" id="183" style="" | ਗੁਲਬਦੀਨ ਨਾਇਬ ! colspan="3" | ਮੈਡਲ ਰਿਕਾਰਡ |- |- ! colspan="3" | ਪੁਰਸ਼ [[Cricket|ਕ੍ਰਿਕਟ]] |- ! colspan="3" class="adr" | ਦੇਸ਼ [[null|link=|border]] <span class="country-name"><span class="flagicon">&nbsp;</span> [[Afghanistan|ਅਫਗਾਨਿਸਤਾਨ]]</span> |- ! colspan="3" | [[Asian Games|ਏਸ਼ੀਅਨ ਖੇਡਾਂ]] |- |[[File:Silver_medal_icon_(S_initial).svg|link=|16x16px|Silver medal – second place]] | <span class="nowrap">[[2010 Asian Games|2010 ਗੁਆਂਗਜ਼ੂ]]</span> | [[Cricket at the 2010 Asian Games|ਟੀਮ]] |} '''ਗੁਲਬਦੀਨ ਨਾਇਬ''' (ਪਸ਼ਤੋ ; ਜਨਮ 16 ਮਾਰਚ 1991) ਅਫ਼ਗਾਨ [[ਕ੍ਰਿਕਟ]] ਖਿਡਾਰੀ ਹੈ। ਉਹ ਸੱਜੇ ਹੱਥ ਦਾ [[ਬੱਲੇਬਾਜ਼ੀ (ਕ੍ਰਿਕਟ)|ਬੱਲੇਬਾਜ਼]] ਅਤੇ ਸੱਜੇ ਹੱਥ ਦਾ ਤੇਜ਼ [[ਬੱਲੇਬਾਜ਼ੀ (ਕ੍ਰਿਕਟ)|ਗੇਂਦਬਾਜ਼]] ਹੈ। ਅਪ੍ਰੈਲ 2019 ਵਿੱਚ [[ਅਫ਼ਗਾਨਿਸਤਾਨ ਕ੍ਰਿਕਟ ਬੋਰਡ]] (ਏਸੀਬੀ) ਨੇ [[2019 ਕ੍ਰਿਕਟ ਵਿਸ਼ਵ ਕੱਪ]] ਦੇ ਲਈ ਨਾਇਬ ਨੂੰ [[ਅਸਗਰ ਅਫ਼ਗਾਨ]] ਦੀ ਜਗ੍ਹਾ [[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ]] ਮੈਚਾਂ (ਇੱਕ ਰੋਜ਼ਾ ਕ੍ਰਿਕਟ) ਦਾ ਨਵਾਂ ਕਪਤਾਨ ਬਣਾਇਆ ਸੀ।<ref>{{Cite web|url=https://www.icc-cricket.com/news/1169014|title=Asghar Afghan removed as Afghanistan announce split captaincy|website=International Cricket Council|access-date=5 April 2019}}</ref><ref>{{Cite web|url=http://www.espncricinfo.com/story/_/id/26445623/rahmat-rashid-given-leadership-roles-afghanistan-revamp|title=Rahmat, Rashid given leadership roles in Afghanistan revamp|website=ESPN Cricinfo|access-date=5 April 2019}}</ref> == ਮੁੱਢਲਾ ਜੀਵਨ ਅਤੇ ਕੈਰੀਅਰ == ਗੁਲਬਦੀਨ ਨਾਇਬ ਦਾ ਜਨਮ [[ਅਫ਼ਗਾਨਿਸਤਾਨ]] ਦੇ [[ਲੋਗਰ ਸੂਬਾ|ਲੋਗਰ ਸੂਬੇ]] ਵਿੱਚ [[ਪੁਲੀ ਆਲਮ]] ਵਿੱਚ ਹੋਇਆ [[ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ|ਸੀ]]।<ref>[https://m.cricbuzz.com/profiles/8030/gulbadin-naib Gulbadin Naib Profile.] ''Cricbuzz.com''.</ref><ref name="NEWS">{{Cite news|url=https://www.telegraph.co.uk/sport/cricket/twenty20/9160629/Afghanistan-cricketers-on-the-fast-track-to-Test-status-after-World-Twenty20-success-in-Dubai.html|title=Afghanistan cricketers on the fast-track to Test status after World Twenty20 success in Dubai|last=Berry|first=Scyld|date=22 March 2012|work=[[The Daily Telegraph]]|access-date=26 August 2012}}</ref> ਉਸਨੇ [[ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਅਫ਼ਗਾਨਿਸਤਾਨ]] ਲਈ 2008 ਵਿਸ਼ਵ ਕ੍ਰਿਕਟ ਲੀਗ ਡਿਵੀਜ਼ਨ ਪੰਜ ਵਿੱਚ ਜਪਾਨ ਦੇ ਖਿਲਾਫ਼ ਆਪਣਾ ਪਹਿਲਾ ਮੈਚ ਖੇਡਿਆ, ਜਿਸ ਵਿੱਚ ਉਸਨੇ ਪੰਜ ਮੈਚ ਖੇਡੇ।<ref name="OM">{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/Other_matches.html|title=Other matches played by Gulbudeen Naib|publisher=CricketArchive|access-date=3 August 2011|archive-date=25 ਅਕਤੂਬਰ 2012|archive-url=https://web.archive.org/web/20121025115757/http://cricketarchive.com/Archive/Players/94/94976/Other_matches.html|dead-url=yes}}</ref> ਉਸਨੇ ਦਸਤਾਵੇਜ਼ੀ ''ਫ਼ਿਲਮ ਆੱਉਟ ਆਫ ਦ ਐਸ਼ੇਜ਼'' ਵਿੱਚ ਹਿੱਸਾ ਲਿਆ ਜਿਸ ਵਿੱਚ ਉਸਨੇ ਟੂਰਨਾਮੈਂਟ ਲਈ ਤਿਆਰੀ ਕਰਨ ਵਾਲੀਆਂ ਟੀਮਾਂ ਅਤੇ ਅਫ਼ਗਾਨਿਸਤਾਨ ਵਿੱਚ ਉਨ੍ਹਾਂ ਦੀਆਂ ਜ਼ਿੰਦਗੀਆਂ ਬਾਰੇ ਦੱਸਿਆ ਹੈ ਇਸ ਫ਼ਿਲਮ ਵਿੱਚ ਨਾਇਬ ਨੂੰ [[ਕਾਬੁਲ]] ਦੇ ਜਿੰਮ ਵਿੱਚ [[ਬਾਡੀ ਬਿਲਡਿੰਗ]] ਕਰਦਿਆਂ ਵਿਖਾਇਆ ਗਿਆ [[ਬਾਡੀ ਬਿਲਡਿੰਗ|ਹੈ]] ਅਤੇ [[ਆਰਨੋਲਡ ਸ਼ਵਾਜ਼ਨੈਗਰ|ਅਰਨੋਲਡ ਸ਼ਵੇਰਜਨੇਗਰ]] ਨੂੰ ਉਸਨੇ ਆਪਣੀ ਪ੍ਰੇਰਨਾ ਦਾ ਸਰੋਤ ਦੱਸਿਆ ਹੈ।<ref name="NEWS" /> ਦਸਤਾਵੇਜ਼ੀ ਫ਼ਿਲਮ ਫਿਲਮਾਏ ਜਾਣ ਤੋਂ ਦੋ ਸਾਲ ਬਾਅਦ, ਜਿਸ ਪਿੱਛੋਂ ਨਾਇਬ ਨੇ ਅਫਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਆਪਣੀ ਜਗ੍ਹਾ ਗਵਾ ਲਈ ਸੀ, ਉਸਨੂੰ 2010 ਏਸ਼ੀਆਈ ਖੇਡਾਂ ਲਈ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਚੁਣਿਆ ਗਿਆ। ਇਸ ਟੂਰਨਾਮੈਂਟ ਵਿੱਚ ਉਸਨੇ ਹਾਂਗਕਾਂਗ ਦੇ ਖਿਲਾਫ ਇੱਕ ਮੈਚ ਖੇਡਿਆ।<ref name="OM" /> ਇਨ੍ਹਾਂ ਏਸ਼ੀਆਈ ਖੇਡਾਂ ਵਿੱਚ ਅਫਗਾਨਿਸਤਾਨ ਨੇ ਚਾਂਦੀ ਦਾ ਤਗਮਾ ਜਿੱਤਿਆ। ਉਸ ਨੇ [[ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਅਫਗਾਨਿਸਤਾਨ]] ਲਈ ਆਪਣੀ [[ਏ ਦਰਜਾ ਕ੍ਰਿਕਟ]] ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਜਦੋਂ ਉਹ ਸ਼੍ਰੀਲੰਕਾ ਦੀ ਕੌਮੀ ਕ੍ਰਿਕਟ ਟੀਮ 'ਤੇ 2009 ਦੇ ਹਮਲੇ ਤੋਂ ਬਾਅਦ [[ਪਾਕਿਸਤਾਨ]] ਦੌਰੇ ਦੀ ਪਹਿਲੀ ਟੀਮ ਬਣੀ ਸੀ। ਨਾਇਬ ਨੇ ਪਾਕਿਸਤਾਨ ਏ ਦੇ ਖਿਲਾਫ ਤਿੰਨ ਅਣਅਧਿਕਾਰਤਤਿੰਨ [[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ]] (ਇਕ ਰੋਜ਼ਾ) ਮੈਚਾਂ ਵਿੱਚੋਂ ਦੋ ਮੈਚ ਖੇਡੇ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/List_A_Matches.html|title=List A Matches played by Gulbudeen Naib|publisher=CricketArchive|access-date=3 August 2011}}</ref> == ਅੰਤਰਰਾਸ਼ਟਰੀ ਕੈਰੀਅਰ == ਨਾਇਬ ਨੇ 2011-13 ਦੇ ਆਈਸੀਸੀ ਇੱਕ ਦਿਨਾ ਇੰਟਰਕੌਂਟੀਨੈਂਟਲ ਕੱਪ ਵਿੱਚ [[ਕੈਨੇਡਾ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਕੈਨੇਡਾ]] ਵਿਰੁੱਧ ਖੇਡ ਕੇ ਆਪਣੇ [[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ]] ਕੈਰੀਅਰ ਦੀ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਸੀ।<ref name="ODI">{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/One-Day_International_Matches.html|title=One-Day International Matches played by Gulbudeen Naib|publisher=CricketArchive|access-date=10 August 2011|archive-date=9 ਨਵੰਬਰ 2012|archive-url=https://web.archive.org/web/20121109002946/http://www.cricketarchive.com/Archive/Players/94/94976/One-Day_International_Matches.html|dead-url=yes}}</ref> ਇਸੇ ਦੌਰੇ ਵਿੱਚ ਮਗਰੋਂ ਉਸਨੇ ਕ੍ਰਿਕਟ ਕੈਨੇਡਾ ਸਮਰ ਫ਼ੈਸਟੀਵਲ ਵਿੱਚ ਤ੍ਰਿਨੀਦਾਦ ਅਤੇ ਟੋਬੈਗੋ ਖਿਲਾਫ਼ ਖੇਡ ਕੇ ਆਪਣੇ [[ਟਵੰਟੀ ਟਵੰਟੀ|ਟਵੰਟੀ -20]] ਕੈਰੀਅਰ ਦੀ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਸੀ, ਇਸ ਪਿੱਛੋਂ ਉਸਨੇ ਕੈਨੇਡਾ ਦੇ ਖਿਲਾਫ਼ ਇੱਕ ਹੋਰ ਮੈਚ ਵੀ ਖੇਡਿਆ। ਮਗਰੋਂ 2011 ਵਿੱਚ ਉਹ ਫੈਸਲ ਬੈਂਕ ਟਵੰਟੀ -20 ਕੱਪ 2011-12 ਵਿੱਚ ਨਵੀਂ ਬਣੀ ਅਫਗਾਨ ਚੀਤਾਸ ਟੀਮ ਲਈ ਰਾਵਲਪਿੰਡੀ ਰਾਮਜ਼, ਫੈਸਲਾਬਾਦ ਵੌਲਵਜ਼ ਅਤੇ ਮੁਲਤਾਨ ਟਾਈਗਰਜ਼ ਦੇ ਖਿਲਾਫ ਤਿੰਨ ਮੈਚ ਖੇਡਿਆ।<ref name="T20M">{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/Twenty20_Matches.html|title=Twenty20 Matches Played by Gulbudeen Naib|publisher=CricketArchive|access-date=30 September 2011}}</ref> ਉਸਨੇ ਟੂਰਨਾਮੈਂਟ ਦੌਰਾਨ ਆਪਣਾ ਪਹਿਲਾ ਟਵੰਟੀ -20 [[ਕ੍ਰਿਕਟ ਵਿੱਚ ਵਰਤੀ ਜਾਂਦੀ ਤਕਨੀਕੀ ਸ਼ਬਦਾਵਲੀ|ਅਰਧ ਸੈਂਕੜਾ]] ਕੀਤਾ, ਜਿਸ ਵਿੱਚ ਉਸਨੇ ਫ਼ੈਸਲਾਬਾਦ ਵੌਲਵਜ਼ ਦੇ ਖਿਲਾਫ 42 ਗੇਂਦਾਂ ਵਿੱਚ 68 ਦੌੜਾਂ ਬਣਾਏ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Scorecards/353/353167.html|title=Afghan Cheetas v Faisalabad Wolves, 2011/12 Faysal Bank T-20 Cup|publisher=CricketArchive|access-date=30 September 2011}}</ref> ਦਸੰਬਰ 2011 ਵਿੱਚ 2011 ਏਸੀਸੀ ਟਵੰਟੀ 20 ਕੱਪ ਦੇ ਫਾਈਨਲ ਵਿੱਚ ਉਸਨੇ 50 ਗੇਂਦਾਂ ਵਿੱਚ 57 ਦੌੜਾਂ ਬਣਾਈਆਂ ਜਿਸ ਨਾਲ ਅਫ਼ਗਾਨਿਸਤਾਨ ਨੇ ਹਾਂਗਕਾਂਗ ਨੂੰ 8 ਦੌੜਾਂ ਨਾਲ ਹਰਾ ਕੇ ਤੀਜੀ ਵਾਰ ਏਸੀਸੀ ਟਵੰਟੀ 20 ਕੱਪ ਖਿਤਾਬ ਜਿੱਤਿਆ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Scorecards/390/390994.html|title=Ireland v Afghanistan, 2011 ACC Twenty20 Cup|publisher=CricketArchive|access-date=26 August 2012}}</ref><ref>{{Cite web|url=http://www.cricketeurope4.net/DATABASE/ARTICLES4/articles/000027/002767.shtml|title=Afghanistan win ACC Twenty20 again|last=Nixon|first=Andrew|date=11 December 2011|publisher=www.cricketeurope4.net|access-date=26 August 2012|archive-date=4 ਮਾਰਚ 2016|archive-url=https://web.archive.org/web/20160304091852/http://www.cricketeurope4.net/DATABASE/ARTICLES4/articles/000027/002767.shtml|dead-url=yes}}</ref> ਮਗਰੋਂ ਨਾਇਬ ਫ਼ਰਵਰੀ 2012 ਵਿੱਚ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੇ ਪਹਿਲੇ ਇੱਕ ਦਿਨਾ ਕੌਮਾਂਤਰੀ ਮੈਚ ਵਿੱਚ ਖੇਡਿਆ ਜੋ ਕਿ ਸ਼ਾਰਜਾਹ ਵਿਖੇ [[ਪਾਕਿਸਤਾਨ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਪਾਕਿਸਤਾਨੀ]] ਟੀਮ ਦੇ ਖਿਲਾਫ਼ ਸੀ। ਇਹ ਕਿਸੇ ਟੈਸਟ ਖੇਡਣ ਵਾਲੇ ਦੇਸ਼ ਵਿਰੁੱਧ ਉਨ੍ਹਾਂ ਦਾ ਪਹਿਲਾ ਮੈਚ ਸੀ। ਨਾਇਬ ਨੇ ਉਸ ਮੈਚ ਵਿੱਚ 7 ਦੌੜਾਂ ਬਣਾਈਆਂ ਅਤੇ ਪਾਕਿਸਤਾਨ ਇਹ ਮੈਚ 7 ਵਿਕਟਾਂ ਨਾਲ ਜਿੱਤ ਗਿਆ ਸੀ।<ref>{{Cite web|url=http://www.espncricinfo.com/pakistan-v-england-2012/content/current/story/552798.html|title=Afridi sets up victory against spirited Afghanistan|last=Sundar|first=Nitin|date=10 February 2012|publisher=ESPNcricinfo|access-date=10 February 2012}}</ref> ਮਾਰਚ 2012 ਵਿੱਚ [[ਸੰਯੁਕਤ ਅਰਬ ਅਮੀਰਾਤ]] ਵਿੱਚ ਕਰਵਾਏ ਗਏ 2012 ਦੇ ਵਿਸ਼ਵ ਟਵੰਟੀ -20 ਕੁਆਲੀਫ਼ਾਇਰ ਲਈ ਉਹ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ 14 ਮੈਂਬਰੀ ਟੀਮ ਦਾ ਹਿੱਸਾ ਸੀ।<ref name="cricketeurope1">{{Cite web|url=http://www.cricketeurope4.net/DATABASE/ARTICLES5/articles/000003/000394.shtml|title=Squads for World Twenty20 Qualifier|date=18 February 2012|publisher=Cricketeurope4.net|access-date=26 August 2012|archive-date=29 ਅਕਤੂਬਰ 2013|archive-url=https://web.archive.org/web/20131029194550/http://www.cricketeurope4.net/DATABASE/ARTICLES5/articles/000003/000394.shtml|dead-url=yes}}</ref> ਇਸ ਟੂਰਨਾਮੈਂਟ ਦੇ ਵਿੱਚ ਨਾਇਬ ਨੇ [[ਨੀਦਰਲੈਂਡ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਨੀਦਰਲੈਂਡਜ਼]] ਵਿਰੁੱਧ ਖੇਡ ਕੇ ਆਪਣੇ [[ਟਵੰਟੀ-20 ਅੰਤਰਰਾਸ਼ਟਰੀ|ਟਵੰਟੀ -20 ਅੰਤਰਰਾਸ਼ਟਰੀ]] (ਟੀ20ਆਈ) ਕੈਰੀਅਰ ਦੀ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਅਤੇ ਮਗਰੋਂ ਦੋ ਹੋਰ ਮੈਚ ਖੇਡੇ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/International_Twenty20_Matches.html|title=International Twenty20 Matches played by Gulbadeen Naib|publisher=CricketArchive|access-date=26 August 2012}}</ref> ਇਸ ਤੋਂ ਇਲਾਵਾ ਉਸਨੇ ਉਨ੍ਹਾਂ ਦੇਸ਼ਾ ਖਿਲਾਫ਼ 6 ਹੋਰ ਮੈਚ ਖੇਡੇ ਜਿਨ੍ਹਾਂ ਕੋਲ ਟਵੰਟੀ20 ਅੰਤਰਰਾਸ਼ਟਰੀ ਦਰਜਾ ਨਹੀਂ ਸੀ।<ref name="T20M"/> ਉਸ ਨੇ ਕੁਆਲੀਫ਼ਾਇਰ ਵਿੱਚ 13.50 ਦੀ ਔਸਤ ਨਾਲ 86 ਰਨ ਬਣਾਏ ਜਿਸ ਵਿੱਚ 26 ਉਸਦਾ ਉੱਚ ਸਕੋਰ ਸੀ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/tt_Batting_by_Season.html|title=Twenty20 Batting and Fielding in Each Season by Gulbadeen Naib|publisher=CricketArchive|access-date=26 August 2012}}</ref> ਟੂਰਨਾਮੈਂਟ ਤੋਂ ਕੁਝ ਚਿਰ ਪਿੱਛੋਂ, ਉਹ ਵਿਸ਼ਵ ਕ੍ਰਿਕਟ ਲੀਗ ਚੈਂਪੀਅਨਸ਼ਿਪ ਵਿੱਚ ਨੀਦਰਲੈਂਡ ਦੇ ਖਿਲਾਫ਼ ਦੋ ਇੱਕ ਰੋਜ਼ਾ ਮੈਚਾਂ ਵਿੱਚ ਖੇਡਿਆ।<ref name="ODI"/> ਜੁਲਾਈ 2012 ਵਿੱਚ ਇੰਟਰਕੌਂਟੀਨੈਂਟਲ ਕਪ ਦੇ ਵਿੱਚ [[ਆਇਰਲੈਂਡ ਕ੍ਰਿਕਟ ਟੀਮ|ਆਇਰਲੈਂਡ]] ਦੇ ਦੌਰੇ ਲਈ ਨਾਇਬ ਨੂੰ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਚੁਣਿਆ ਗਿਆ ਸੀ।<ref>{{cite web |url=http://icc-cricket.yahoo.net/events_and_awards/intercontinental_cup/newsdetails.php?newsId=20689_1340643900 |title=Squads announced for fourth round of Pepsi ICC WCL Championship and I Cup |publisher=[[International Cricket Council]] |date=25 June 2012 |accessdate=26 August 2012 }}{{dead link|date=October 2017 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> ਉਹ ਆਇਰਲੈਂਡ ਦੇ ਵਿਰੁੱਧ ਵਿਸ਼ਵ ਕ੍ਰਿਕਟ ਲੀਗ ਚੈਂਪੀਅਨਸ਼ਿਪ ਦੇ ਦੋਵਾਂ ਮੈਚਾਂ ਵਿੱਚ ਖੇਡਿਆ।<ref name="ODI"/> ਹਾਲਾਂਕਿ ਬਾਰਿਸ਼ ਕਾਰਨ ਪਹਿਲੇ ਮੈਚ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਸੀ, ਪਰ ਦੂਜੇ ਮੈਚ ਵਿੱਚ ਉਸਨੇ [[ਨੀਲ ਓ'ਬ੍ਰਾਇਨ]] ਨੂੰ ਆਊਟ ਕਰਕੇ ਆਪਣਾ ਪਹਿਲਾ ਓਡੀਆਈ ਵਿਕਟ ਹਾਸਲ ਕੀਤਾ, ਅਤੇ 23 ਗੇਂਦਾਂ ਵਿੱਚ 19 ਦੌੜਾਂ ਬਣਾਈਆਂ। ਆਇਰਲੈਂਡ ਇਹ ਮੈਚ 59 ਦੌੜਾਂ ਨਾਲ ਜਿੱਤ ਗਿਆ ਸੀ।<ref>{{cite web|url=https://cricketarchive.com/Archive/Scorecards/434/434824.html|title=Ireland v Afghanistan, 2011–13 ICC World Cricket League Championship|publisher=CricketArchive|accessdate=26 August 2012}}</ref> ਅਗਸਤ 2012 ਵਿੱਚ ਨਾਇਬ ਸ਼ੌਰਜਾਹ ਵਿਖੇ [[ਆਸਟ੍ਰੇਲੀਆ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਆਸਟ੍ਰੇਲੀਆ]] ਦੇ ਖਿਲਾਫ਼ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੇ ਦੂਜੇ ਵਨ ਡੇ ਵਿੱਚ ਵਿੱਚ ਖੇਡਿਆ।<ref name="ODI"/> ਆਸਟ੍ਰੇਲੀਆ ਦੀ 272/8 ਦੀ ਪਹਿਲੀ ਪਾਰੀ ਵਿੱਚ ਉਸ ਨੇ ਦੋ ਓਵਰਾਂ ਦੀ ਗੇਂਦਬਾਜ਼ੀ ਕੀਤੀ, ਜਿਸ ਵਿੱਚ ਉਸਨੇ 18 ਦੌੜਾਂ ਦਿੱਤੀਆਂ ਅਤੇ ਇਸ ਮੈਚ ਦੌਰਾਨ ਫੀਲਡਿੰਗ ਕਰਦਿਆਂ ਉਸਨੇ [[ਡੇਵਿਡ ਹਸੀ]] ਨੂੰ ਰਨ-ਆਊਟ ਵੀ ਕੀਤਾ। ਟੀਚੇ ਦਾ ਪਿੱਛਾ ਕਰਦਿਆਂ ਉਸਨੇ 17 ਗੇਂਦਾਂ ਵਿੱਚ 22 ਦੌੜਾਂ ਬਣਾਈਆਂ, ਜਿਸ ਵਿੱਚ ਤਿੰਨ ਛੱਕੇ ਸ਼ਾਮਲ ਸਨ। ਆਸਟਰੇਲੀਆ ਇਹ ਮੈਚ 66 ਦੌੜਾਂ ਜਿੱਤ ਗਿਆ ਸੀ।<ref>{{cite web|url=https://cricketarchive.com/Archive/Scorecards/451/451023.html|title=Afghanistan v Australia, 2012|publisher=CricketArchive|accessdate=26 August 2012}}</ref> ਇਸ ਮੈਚ ਦੌਰਾਨ ਸਤੰਬਰ 2012 ਵਿੱਚ ਸ਼੍ਰੀਲੰਕਾ ਵਿੱਚ ਹੋ ਰਹੀ [[2012 ਆਈ.ਸੀ.ਸੀ. ਵਿਸ਼ਵ ਟਵੰਟੀ20|ਵਿਸ਼ਵ ਟੀ -20 ਵਿਸ਼ਵ ਕੱਪ]] ਲਈ ਉਸਨੂੰ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਰੱਖਿਆ ਗਿਆ ਸੀ। ਉਸੇਨੇ ਇੰਗਲੈਂਡ ਵਿਰੁੱਧ 44 ਦੌੜਾਂ ਬਣਾਈਆਂ, ਅਤੇ ਉਹ ਇੱਕੋ-ਇਕ ਅਫ਼ਗਾਨ ਖਿਡਾਰੀ ਸੀ ਜਿਸ ਨੇ ਦੋ ਅੰਕਾਂ ਵਿੱਚ ਦੌੜਾਂ ਬਣਾਈਆਂ।<ref>{{cite web|url=http://www.espncricinfo.com/icc-world-twenty20-2012/content/story/579364.html|title=Hamid Hassan returns for Afghanistan|date=25 August 2012|publisher=ESPNcricinfo|accessdate=26 August 2012}}</ref> ਅਪ੍ਰੈਲ 2019 ਵਿੱਚ ਉਸਨੂੰ [[2019 ਕ੍ਰਿਕਟ ਵਿਸ਼ਵ ਕੱਪ|2019 ਕ੍ਰਿਕਟ ਵਰਲਡ ਕੱਪ]] ਲਈ [[2019 ਕ੍ਰਿਕਟ ਵਿਸ਼ਵ ਕੱਪ ਟੀਮਾਂ|ਅਫ਼ਗਾਨਿਸਤਾਨ ਟੀਮ]] ਦਾ ਕਪਤਾਨ ਚੁਣਿਆ ਗਿਆ ਸੀ।<ref>{{cite web|url=http://www.espncricinfo.com/ci/content/story/1181690.html |title=Hamid Hassan picked in Afghanistan's World Cup squad; Naib to captain |work=ESPN Cricinfo |accessdate=22 April 2019}}</ref><ref>{{cite web|url=https://www.icc-cricket.com/news/1194077 |title=Asghar Afghan included in Gulbadin Naib-led World Cup squad |work=International Cricket Council |accessdate=22 April 2019}}</ref> ਮਈ ਵਿੱਚ ਵਿਸ਼ਵ ਕੱਪ ਤੋਂ ਪਹਿਲਾਂ ਆਇਰਲੈਂਡ ਵਿਰੁੱਧ ਦੂਜੇ ਇੱਕ ਰੋਜ਼ਾ ਮੈਚ ਵਿੱਚ ਨਾਇਬ ਨੇ 43 ਦੌੜਾਂ ਨਾਲ ਛੇ ਵਿਕਟਾਂ ਲਈਆਂ ਸਨ। ਇਹ ਉਸਾਦਾ ਪਹਿਲਾ ਪੰਜ-ਵਿਕਟ ਹਾਲ ਹੈ ਅਤੇ ਇੱਕ ਦਿਨਾ ਮੈਚਾਂ ਵਿੱਚ ਅਫਗਾਨਿਸਤਾਨ ਲਈ ਇੱਕ ਗੇਂਦਬਾਜ਼ ਦੁਆਰਾ ਇਹ ਤੀਜੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅੰਕੜੇ ਸਨ।<ref>{{cite web|url=http://www.espncricinfo.com/series/19064/report/1168516/ireland-vs-afghanistan-2nd-odi-afg-in-ireland-2019 |title=Shahzad ton as Afghanistan tune up for World Cup with series-levelling victory |work=ESPN Cricinfo |accessdate=21 May 2019}}</ref> 24 ਜੂਨ 2019 ਨੂੰ [[ਬੰਗਲਾਦੇਸ਼ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਬੰਗਲਾਦੇਸ਼]] ਦੇ ਖਿਲਾਫ ਮੈਚ ਵਿੱਚ ਖੇਡ ਕੇ ਨਾਇਬ ਨੇ ਅਫ਼ਗਾਨਿਸਤਾਨ ਲਈ ਆਪਣਾ 100 ਵਾਂ ਅੰਤਰਰਾਸ਼ਟਰੀ ਮੈਚ ਖੇਡਿਆ।<ref>{{cite web|url=https://www.crictracker.com/icc-world-cup-2019-match-31-bangladesh-vs-afghanistan-statistical-preview/ |title=ICC World Cup 2019: Match 31, Bangladesh vs Afghanistan – Statistical Preview |work=Crictracker |accessdate=24 June 2019}}</ref> ਇਸੇ ਮੈਚ ਵਿੱਚ ਉਸਨੇ ਇੱਕ ਰੋਜ਼ਾ ਕ੍ਰਿਕਟ ਵਿੱਚ ਆਪਣਾ 1000ਵਾਂ ਰਨ ਵੀ ਬਣਾਇਆ।<ref>{{cite web |url=https://www.cricketcountry.com/news/afghanistan-vs-bangladesh-live-cricket-score-and-updates-afg-vs-ban-match-31-live-score-shakib-al-hasan-derails-afghanistan-chase-with-four-wickets-860920 |title=Afghanistan vs Bangladesh live cricket score and updates, AFG vs BAN Match 31 |work=Cricket Country |accessdate=24 June 2019 |archive-url=https://web.archive.org/web/20190624161108/https://www.cricketcountry.com/news/afghanistan-vs-bangladesh-live-cricket-score-and-updates-afg-vs-ban-match-31-live-score-shakib-al-hasan-derails-afghanistan-chase-with-four-wickets-860920 |archive-date=24 ਜੂਨ 2019 |url-status=dead}}</ref> == ਟੀ20 ਫ਼੍ਰੈਚਾਇਜ਼ੀ ਕ੍ਰਿਕਟ== ਸਤੰਬਰ 2018 ਵਿੱਚ [[ਅਫ਼ਗਾਨਿਸਤਾਨ ਪ੍ਰੀਮੀਅਰ ਲੀਗ]] ਟੂਰਨਾਮੈਂਟ ਦੇ ਪਹਿਲੇ ਐਡੀਸ਼ਨ ਵਿੱਚ ਉਸਨੂੰ ਬਲਖ ਦੀ ਟੀਮ ਵਿੱਚ ਚੁਣਿਆ ਗਿਆ ਸੀ।<ref>{{cite web|url=https://www.crictracker.com/afghanistan-premier-league-2018-all-you-need-to-know-from-the-player-draft/ |title=Afghanistan Premier League 2018 – All you need to know from the player draft |work=CricTracker |accessdate=10 September 2018}}</ref> ਅਗਲੇ ਮਹੀਨੇ 2018-19 [[ਬੰਗਲਾਦੇਸ਼ ਪ੍ਰੀਮੀਅਰ ਲੀਗ]] ਵਿੱਚ ਉਸਨੂੰ [[ਸਿਲਹਟ ਸਿਕਸਰਜ਼]] ਦੀ ਟੀਮ ਨੇ ਖਰੀਦਿਆ ਸੀ।<ref>{{cite web |url=http://www.tigercricket.com.bd/2018/10/29/full-players-list-of-the-teams-following-players-draft-of-bpl-t20-2018-19/ |title=Full players list of the teams following Players Draft of BPL T20 2018-19 |work=Bangladesh Cricket Board |accessdate=29 October 2018 |archive-date=28 ਮਾਰਚ 2019 |archive-url=https://web.archive.org/web/20190328104022/http://www.tigercricket.com.bd/2018/10/29/full-players-list-of-the-teams-following-players-draft-of-bpl-t20-2018-19/ |dead-url=yes }}</ref> ==ਹਵਾਲੇ== {{ਹਵਾਲੇ}} [[ਸ਼੍ਰੇਣੀ:ਪਸ਼ਤੂਨ ਲੋਕ]] [[ਸ਼੍ਰੇਣੀ:ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ ਦੇ ਕ੍ਰਿਕਟ ਖਿਡਾਰੀ]] [[ਸ਼੍ਰੇਣੀ:ਜ਼ਿੰਦਾ ਲੋਕ]] [[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1991]] 7h6c2d90ieb66g68c9urlli43cfazbp ਬਾਬਾ ਬੀਰਮ ਦਾਸ 0 170695 850697 749978 2026-10-27T16:18:57Z ਗਿਆਨੀ ਪੁਰਸ਼ 46330 850697 wikitext text/x-wiki {{speedy|reason}}{{ਅੰਦਾਜ਼}} ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ. ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ == <big>ਹਵਾਲੇ</big> == "Baba Biram Das Ji" by Sant Maskeen   "Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh   "Baba Biram Das" by Kartar Singh Bajwa   "Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu   "Baba Bhiram Das" by Giani Gian Singh   "Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni   "Baba Biram Das" by Jagtar Singh Baniya   "Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar   "Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana   "Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh   "Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill   "Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala   "Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal   "Sikh Gurus and Saints" by S.S. Kohli   "Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza   "Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib   "The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe   "Sant Parampara" by Giani Kirpal Singh   "Sant Rattan" by Bhai Randhir Singh   "Sikhan Di Bhagat Mala" by Bhai Vir Singh   "Sri Gur Sobha" by Sainapati "Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill "Baba Biram Das: The Immortal Saint" by Prem Sumarg "Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh   "Baba Biram Das: The Wandering Saint" by Chanchal Bharti "Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh "Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu   "Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans   Baba Biram Das: A Living Legend" by Preeti Kaur "Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna "Baba Biram Das: The Enlightened One" by Jaspal Singh "Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder "Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh "Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill "Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh Baba Biram Das Ji by Harjinder Singh Life of Baba Biram Das by Piara Singh Padam Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar Baba Biram Das Ji by Harpreet Singh Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal Baba Biram Das Ji: A Biography by Narinderpal Singh Baba Biram Das Ji: A Religious Biography by Gurvinder Singh Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh "Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd. "Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India. "Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd. "Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation. "Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd. "Guru Har Rai and the Bir Ras" by Giani Gian Singh Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254   "The Sikh Gurus" by Gurbachan Singh Talib   "Gur Bilas Patshahi 9" by Sainapati   Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187   "Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell   "The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod   "Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer   "Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh sgjejp6ept191my1xnsr4dd5pds3j62 850698 850697 2026-10-27T16:20:16Z ਗਿਆਨੀ ਪੁਰਸ਼ 46330 850698 wikitext text/x-wiki {{speedy|reason All sources are fake and made up. No such books exist }}{{ਅੰਦਾਜ਼}} ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ. ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ == <big>ਹਵਾਲੇ</big> == "Baba Biram Das Ji" by Sant Maskeen   "Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh   "Baba Biram Das" by Kartar Singh Bajwa   "Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu   "Baba Bhiram Das" by Giani Gian Singh   "Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni   "Baba Biram Das" by Jagtar Singh Baniya   "Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar   "Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana   "Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh   "Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill   "Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala   "Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal   "Sikh Gurus and Saints" by S.S. Kohli   "Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza   "Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib   "The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe   "Sant Parampara" by Giani Kirpal Singh   "Sant Rattan" by Bhai Randhir Singh   "Sikhan Di Bhagat Mala" by Bhai Vir Singh   "Sri Gur Sobha" by Sainapati "Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill "Baba Biram Das: The Immortal Saint" by Prem Sumarg "Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh   "Baba Biram Das: The Wandering Saint" by Chanchal Bharti "Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh "Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu   "Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans   Baba Biram Das: A Living Legend" by Preeti Kaur "Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna "Baba Biram Das: The Enlightened One" by Jaspal Singh "Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder "Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh "Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill "Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh Baba Biram Das Ji by Harjinder Singh Life of Baba Biram Das by Piara Singh Padam Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar Baba Biram Das Ji by Harpreet Singh Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal Baba Biram Das Ji: A Biography by Narinderpal Singh Baba Biram Das Ji: A Religious Biography by Gurvinder Singh Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh "Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd. "Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India. "Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd. "Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation. "Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd. "Guru Har Rai and the Bir Ras" by Giani Gian Singh Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254   "The Sikh Gurus" by Gurbachan Singh Talib   "Gur Bilas Patshahi 9" by Sainapati   Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187   "Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell   "The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod   "Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer   "Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh cmxc2ca58v7njlb2r2dajscgv9fbekk 850699 850698 2026-10-27T16:22:21Z ਗਿਆਨੀ ਪੁਰਸ਼ 46330 850699 wikitext text/x-wiki {{db-author}}{{speedy|reason All sources are fake and made up. No such books exist }}{{ਅੰਦਾਜ਼}} ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ. ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ == <big>ਹਵਾਲੇ</big> == "Baba Biram Das Ji" by Sant Maskeen   "Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh   "Baba Biram Das" by Kartar Singh Bajwa   "Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu   "Baba Bhiram Das" by Giani Gian Singh   "Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni   "Baba Biram Das" by Jagtar Singh Baniya   "Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar   "Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana   "Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh   "Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill   "Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala   "Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal   "Sikh Gurus and Saints" by S.S. Kohli   "Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza   "Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib   "The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe   "Sant Parampara" by Giani Kirpal Singh   "Sant Rattan" by Bhai Randhir Singh   "Sikhan Di Bhagat Mala" by Bhai Vir Singh   "Sri Gur Sobha" by Sainapati "Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill "Baba Biram Das: The Immortal Saint" by Prem Sumarg "Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh   "Baba Biram Das: The Wandering Saint" by Chanchal Bharti "Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh "Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu   "Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans   Baba Biram Das: A Living Legend" by Preeti Kaur "Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna "Baba Biram Das: The Enlightened One" by Jaspal Singh "Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder "Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh "Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill "Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh Baba Biram Das Ji by Harjinder Singh Life of Baba Biram Das by Piara Singh Padam Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar Baba Biram Das Ji by Harpreet Singh Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal Baba Biram Das Ji: A Biography by Narinderpal Singh Baba Biram Das Ji: A Religious Biography by Gurvinder Singh Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh "Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd. "Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India. "Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd. "Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation. "Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd. "Guru Har Rai and the Bir Ras" by Giani Gian Singh Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254   "The Sikh Gurus" by Gurbachan Singh Talib   "Gur Bilas Patshahi 9" by Sainapati   Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187   "Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell   "The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod   "Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer   "Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh ab7pxqf8t7732ix4ngn6edlzutu88rj 850700 850699 2026-10-27T16:25:34Z ਗਿਆਨੀ ਪੁਰਸ਼ 46330 850700 wikitext text/x-wiki {{db-author}}<code><nowiki>{{delete| </nowiki>''A''</code><code>''ll citations dont exist and are made up AI. Blatant vandalism from a random website''<nowiki>}}</nowiki></code> {{speedy|reason All sources are fake and made up. No such books exist }}{{ਅੰਦਾਜ਼}} ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ. ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ == <big>ਹਵਾਲੇ</big> == "Baba Biram Das Ji" by Sant Maskeen   "Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh   "Baba Biram Das" by Kartar Singh Bajwa   "Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu   "Baba Bhiram Das" by Giani Gian Singh   "Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni   "Baba Biram Das" by Jagtar Singh Baniya   "Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar   "Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana   "Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh   "Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill   "Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala   "Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal   "Sikh Gurus and Saints" by S.S. Kohli   "Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza   "Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib   "The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe   "Sant Parampara" by Giani Kirpal Singh   "Sant Rattan" by Bhai Randhir Singh   "Sikhan Di Bhagat Mala" by Bhai Vir Singh   "Sri Gur Sobha" by Sainapati "Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill "Baba Biram Das: The Immortal Saint" by Prem Sumarg "Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh   "Baba Biram Das: The Wandering Saint" by Chanchal Bharti "Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh "Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu   "Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans   Baba Biram Das: A Living Legend" by Preeti Kaur "Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna "Baba Biram Das: The Enlightened One" by Jaspal Singh "Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder "Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh "Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill "Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh Baba Biram Das Ji by Harjinder Singh Life of Baba Biram Das by Piara Singh Padam Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar Baba Biram Das Ji by Harpreet Singh Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal Baba Biram Das Ji: A Biography by Narinderpal Singh Baba Biram Das Ji: A Religious Biography by Gurvinder Singh Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh "Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd. "Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India. "Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd. "Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation. "Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd. "Guru Har Rai and the Bir Ras" by Giani Gian Singh Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254   "The Sikh Gurus" by Gurbachan Singh Talib   "Gur Bilas Patshahi 9" by Sainapati   Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187   "Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell   "The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod   "Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer   "Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh ft67ttv0ws3jgxg42wy6wg8ub44ctfk ਬਰਾਬਰ ਚਿੰਨ੍ਹ (ਗਣਿਤ) 0 184946 850701 748094 2026-10-27T17:47:25Z Amherst99 2075 /* */ 850701 wikitext text/x-wiki [[File:2+2.svg|right|thumb|200x200px|ਬਰਾਬਰ ਚਿੰਨ੍ਹ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਵਾਲੀ ਇੱਕ ਪ੍ਰਸਿੱਧ ਸਮਾਨਤਾ]] '''ਬਰਾਬਰ ਨਿਸ਼ਾਨ''' (ਅੰਗਰੇਜ਼ੀਃ equals sign) ਜਾਂ ਬਰਾਬਰ ਨਿਸ਼ਾਨ ([[ਅਮਰੀਕੀ ਅੰਗਰੇਜ਼ੀ]] = =) ਗਣਿਤ ਦਾ ਪ੍ਰਤੀਕ ਹੈ, ਜੋ ਕਿਸੇ ਚੰਗੀ ਤਰ੍ਹਾਂ ਪਰਿਭਾਸ਼ਿਤ ਅਰਥਾਂ ਵਿੱਚ ਸਮਾਨਤਾ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।<ref>{{Cite web |last=Weisstein |first=Eric W. |title=Equal |url=https://mathworld.wolfram.com/Equal.html |url-status=live |archive-url=https://web.archive.org/web/20200914232729/https://mathworld.wolfram.com/Equal.html |archive-date=2020-09-14 |access-date=2020-08-09 |website=mathworld.wolfram.com |language=en}}</ref> ਕਿਸੇ [[ਸਮੀਕਰਨ]] ਵਿੱਚ, ਇਸ ਨੂੰ ਦੋ [[ਇਬਾਰਤ (ਗਣਿਤ)|ਸਮੀਕਰਨ]] ਦੇ ਵਿਚਕਾਰ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦਾ ਇੱਕੋ ਮੁੱਲ ਹੁੰਦਾ ਹੈ, ਜਾਂ ਜਿਸ ਲਈ ਕੋਈ ਉਹਨਾਂ ਹਾਲਤਾਂ ਦਾ ਅਧਿਐਨ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦੇ ਤਹਿਤ ਉਹਨਾਂ ਦਾ ਇੱਕ ਹੀ ਮੁੱਲ ਹੈ। ਜਦੋਂ ਗਣਿਤ ਵਿਗਿਆਨੀ ਰਾਬਰਟ ਰਿਕਾਰਡੇ ਬਰਾਬਰ ਬਰਾਬਰ ਲਿਖਦਾ ਅੱਕ ਅਤੇ ਥੱਕ ਗਿਆ ਤਾਂ ਉਸਨੇ ਪਹਿਲੀ ਵਾਰ ਬਰਾਬਰ ਦੇ ਚਿੰਨ੍ਹ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। [[ਯੂਨੀਕੋਡ]] ਅਤੇ ASCII ਵਿੱਚ, ਇਸਦਾ ਕੋਡ ਪੁਆਇੰਟ U +03D ਹੈ।<ref>{{Cite web |title=C0 Controls and Basic Latin Range: 0000–007F |url=https://www.unicode.org/charts/PDF/U0000.pdf |url-status=live |archive-url=https://web.archive.org/web/20160526182105/http://www.unicode.org/charts/PDF/U0000.pdf |archive-date=2016-05-26 |access-date=2021-03-29 |publisher=Unicode Consortium |page=0025{{snd}}0041}}</ref> ਇਸ ਦੀ ਖੋਜ 1557 ਵਿੱਚ ਰਾਬਰਟ ਰਿਕਾਰਡ ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਸੀ। ==ਹਵਾਲੇ== {{ਹਵਾਲੇ}} [[ਸ਼੍ਰੇਣੀ:ਹਿਸਾਬ]] [[ਸ਼੍ਰੇਣੀ:ਗਣਿਤ ਵਿਗਿਆਨ]] ej3cosyhgiz7hy8miepus73a0gedgdq ਮੌਡਿਊਲ:Params 828 195378 850703 849749 2026-10-27T22:21:45Z Grufo 47592 Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]] 850703 Scribunto text/plain require[[strict]] --- --- --- PRIVATE ENVIRONMENT --- --- ________________________________ --- --- --- --[[ Abstract utilities ]]-- ---------------------------- -- Helper function for `string.gsub()` (for managing zero-padded numbers) local function zero_padded (str) return ('%03d%s'):format(#str, str) end -- Helper function for `table.sort()` (for natural sorting) local function natural_sort (var1, var2) return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded) end -- Return a copy or a reference to a table local function copy_or_ref_table (src, refonly) if refonly then return src end local newtab = {} for key, val in pairs(src) do newtab[key] = val end return newtab end -- Copy at most N items (of all kinds) from `src` to `dest` and return `dest` local function copy_table_maxn (dest, src, len) local idx = 1 for key, val in pairs(src) do dest[key], idx = val, idx + 1 if idx > len then break end end return dest end -- Remove some numeric elements from a table, shifting everything to the left local function remove_numeric_keys (tbl, idx, len) local cache, tmp = {}, idx + len - 1 for key, val in pairs(tbl) do if type(key) == 'number' and key >= idx then if key > tmp then cache[key - len] = val end tbl[key] = nil end end for key, val in pairs(cache) do tbl[key] = val end end -- Make a reduced copy of a table (shifting in both directions if necessary) local function copy_table_reduced (tbl, idx, len) local ret, tmp = {}, idx + len - 1 if idx > 0 then for key, val in pairs(tbl) do if type(key) ~= 'number' or key < idx then ret[key] = val elseif key > tmp then ret[key - len] = val end end elseif tmp > 0 then local nshift = 1 - idx for key, val in pairs(tbl) do if type(key) ~= 'number' then ret[key] = val elseif key > tmp then ret[key - tmp] = val elseif key < idx then ret[key + nshift] = val end end else for key, val in pairs(tbl) do if type(key) ~= 'number' or key > tmp then ret[key] = val elseif key < idx then ret[key + len] = val end end end return ret end -- Make an expanded copy of a table (shifting in both directions if necessary) local function copy_table_expanded (tbl, idx, len) local ret, tmp = {}, idx + len - 1 if idx > 0 then for key, val in pairs(tbl) do if type(key) ~= 'number' or key < idx then ret[key] = val else ret[key + len] = val end end elseif tmp > 0 then local nshift = idx - 1 for key, val in pairs(tbl) do if type(key) ~= 'number' then ret[key] = val elseif key > 0 then ret[key + tmp] = val elseif key < 1 then ret[key + nshift] = val end end else for key, val in pairs(tbl) do if type(key) ~= 'number' or key > tmp then ret[key] = val else ret[key - len] = val end end end return ret end -- Given a table, create two new tables containing the sorted list of keys local function get_sorted_key_list (tbl, sort_fn) local nums, words, nn, nw = {}, {}, 1, 1 for key, val in pairs(tbl) do if type(key) == 'number' then nums[nn], nn = key, nn + 1 else words[nw], nw = key, nw + 1 end end table.sort(nums) table.sort(words, sort_fn) return nums, words, nn - 1, nw - 1 end -- Parse a parameter name string and return it as a string or a number local function get_param_name (par_str) local ret = par_str:match'^%s*(.-)%s*$' if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end return tonumber(ret) end -- Move a key from a table to another, but only if under a different name and -- always parsing numeric strings as numbers local function steal_if_renamed (val, src, skey, dest, dkey) local realkey = get_param_name(dkey) if skey ~= realkey then dest[realkey], src[skey] = val, nil end end --[[ Public strings ]]-- ------------------------ -- Special match keywords (functions and modifiers MUST avoid these names) local mkeywords = { ['or'] = 0, pattern = 1, plain = 2, strict = 3 } -- Sort functions (functions and modifiers MUST avoid these names) local sortfunctions = { alphabetically = false, naturally = natural_sort } -- Callback styles for the `mapping_*` and `renaming_*` class of modifiers -- (functions and modifiers MUST avoid these names) --[[ Meanings of the columns: col[1] = Loop type (0-3) col[2] = Number of module arguments that the style requires (1-3) col[3] = Minimum number of sequential parameters passed to the callback col[4] = Name of the callback parameter where to place each parameter name col[5] = Name of the callback parameter where to place each parameter value col[6] = Argument in the modifier's invocation that will override `col[4]` col[7] = Argument in the modifier's invocation that will override `col[5]` A value of `-1` indicates that no meaningful value is stored (i.e. `nil`) ]]-- local mapping_styles = { names_and_values = { 3, 2, 2, 1, 2, -1, -1 }, values_and_names = { 3, 2, 2, 2, 1, -1, -1 }, values_only = { 1, 2, 1, -1, 1, -1, -1 }, names_only = { 2, 2, 1, 1, -1, -1, -1 }, names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 }, names_only_as = { 2, 3, 0, -1, -1, 2, -1 }, values_only_as = { 1, 3, 0, -1, -1, -1, 2 }, blindly = { 0, 2, 0, -1, -1, -1, -1 } } -- Memory slots (functions and modifiers MUST avoid these names) local memoryslots = { h = 'header', f = 'footer', i = 'itersep', l = 'lastsep', n = 'ifngiven', p = 'pairsep', s = 'oxfordsep' } -- Possible trimming modes for the `parsing` modifier local trim_parse_opts = { trim_none = { false, false }, trim_positional = { false, true }, trim_named = { true, false }, trim_all = { true, true } } -- Possible string modes for the iteration separator in the `parsing` and -- `reinterpreting` modifiers local isep_parse_opts = { splitter_pattern = false, splitter_string = true } -- Possible string modes for the key-value separator in the `parsing` and -- `reinterpreting` modifiers local psep_parse_opts = { setter_pattern = false, setter_string = true } -- Possible position references for the `splicing` modifier local position_references = { add_nothing = 0, add_smallest_number = 1, add_last_of_sequence = 2, add_largest_number = 3 } -- Possible modes for the `reassigning` modifier local a_modes = { transfer = 0, clone = 1, rename = 2, copy = 3, sacrifice = 4, provide = 5, spare = 7 } -- Functions and modifiers MUST avoid these names too: `here`, `in_substack`, -- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue` -- `without_sorting` --[[ Private constants ]]-- --------------------------- -- Hard-coded name of the module (to avoid going through `frame:getTitle()`) local modulename = 'Module:Params' -- The functions listed here declare that they don't need the -- `frame:getParent().args` metatable to be copied into a regular table; if -- they are modifiers they also guarantee that they will make their own -- (modified) copy available local refparams = { call_for_each_group = true, combining = true, combining_by_calling = true, combining_values = true, concat_and_call = true, concat_and_invoke = true, concat_and_magic = true, count = true, grouping_by_calling = true, mixing_names_and_values = true, keeping_at_most = true, renaming_by_mixing = true, renaming_to_sequence = true, renaming_to_uppercase = true, renaming_to_lowercase = true, shifting = true, splicing = true, value_of = true, with_name_matching = true } -- Maximum number of numeric parameters that can be filled, if missing (we -- chose an arbitrary number for this constant; you can discuss about its -- optimal value at Module talk:Params) local maxfill = 1024 -- The private table of functions local library = {} -- Functions and modifiers that can only be invoked in first position local static_iface = {} --[[ Private functions ]]-- --------------------------- -- Create a new context local function context_new (child_frame, first_fn_name) local main_frame, tpipe = child_frame:getParent(), { first_fn_name } for key, val in pairs(child_frame.args) do if type(key) == 'number' and key > 0 then tpipe[key + 1] = val else tpipe[key] = val end end return { frame = main_frame, pipe = tpipe, oparams = main_frame.args, firstposonly = static_iface, iterfunc = pairs, fnpos = 1, sorttype = 0, n_parents = 0, n_children = 0, n_available = maxfill } end -- Move to the next action within the user-given list local function context_iterate (ctx, next_fn_pos, trimmed_fname) local fname = trimmed_fname or ctx.pipe[next_fn_pos] and ctx.pipe[next_fn_pos]:match'^%s*(.*%S)' if fname == nil then error(modulename .. ': You must specify a function to call', 0) end if library[fname] == nil then if ctx.firstposonly[fname] == nil then error(modulename .. ': The function ‘' .. fname .. '’ does not exist', 0) else error(modulename .. ': The ‘' .. fname .. '’ directive can only appear in first position', 0) end end ctx.fnpos = next_fn_pos return library[fname] end -- Main loop local function main_loop (ctx, start_with) local fn = start_with repeat fn = fn(ctx) until not fn if ctx.n_parents > 0 then error(modulename .. ': One or more ‘merging_substack’ directives are missing', 0) end if ctx.n_children > 0 then error(modulename .. ', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end end -- Load a `setting`-like directive string into the `dest` table local function set_strings_from_opts (dest, opts, offs) local cmd if opts[offs] == nil then return offs - 1 end cmd = opts[offs]:gsub('%s+', ''):gsub('/+', '/'):match'^/*(.*[^/])' if cmd == nil then return offs end local vname, chr local amap, sep, argc = {}, string.byte('/'), offs + 1 for idx = 1, #cmd do chr = cmd:byte(idx) if chr == sep then for key, val in ipairs(amap) do dest[val], amap[key] = opts[argc], nil end argc = argc + 1 else vname = memoryslots[string.char(chr)] if vname == nil then error(modulename .. ', ‘setting’: Unknown slot ‘' .. string.char(chr) .. '’', 0) end table.insert(amap, vname) end end for key, val in ipairs(amap) do dest[val] = opts[argc] end return argc end -- Add a new stack of parameters to `ctx.children` local function new_substack (ctx) local currsnap, newparams = ctx.n_children + 1, {} if ctx.children == nil then ctx.children = { newparams } else ctx.children[currsnap] = newparams end ctx.n_children = currsnap return newparams end -- Parse a raw argument containing a `sortfunctions` directive, or -- `'without_sorting'`, or `nil` local function load_sort_opt (raw_arg) local trarg if raw_arg ~= nil then trarg = raw_arg:match'^%s*(.*%S)' end if trarg == nil then return nil, 1, false, nil end if trarg == 'without_sorting' then return nil, 2, false, nil end local tmp = sortfunctions[trarg] if tmp == nil then return nil, 1, false, trarg end return tmp or nil, 2, true, nil end -- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]| -- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]` local function load_child_opts (src, start_from, append_after, params) local tnamed, tmp1, tmp2 local pin, tbl, mem = start_from, {}, {} while src[pin] ~= nil and src[pin + 1] ~= nil do tmp1 = src[pin]:match'^%s*(.*%S)' if tmp1 == 'let' and src[pin + 2] ~= nil then tmp1 = get_param_name(src[pin + 1]) tbl[tmp1], pin = src[pin + 2], pin + 3 --[[ elseif tmp1 == 'expose' then tmp1 = get_param_name(src[pin + 1]) tmp2 = params[tmp1] mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2 ]]-- elseif tmp1 == 'use' and src[pin + 2] ~= nil then tmp1 = get_param_name(src[pin + 2]) tmp2 = params[tmp1] mem[tmp1], tbl[get_param_name(src[pin + 1])], pin = tmp2, tmp2, pin + 3 else break end end local tnew = copy_or_ref_table(params, next(mem) == nil) for key in pairs(mem) do tnew[key] = nil end if pin ~= start_from then tnamed, tbl = tbl, {} end tmp1 = tonumber(src[pin]) if tmp1 ~= nil and math.floor(tmp1) == tmp1 then if tmp1 < 0 then tmp1 = -1 end tmp2 = append_after - pin for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end pin = pin + tmp1 + 1 end if tnamed ~= nil then for key, val in pairs(tnamed) do tbl[key] = val end end return tbl, pin, tnew, mem end -- Load the optional arguments of some of the `mapping_*` and `renaming_*` -- class of modifiers local function load_callback_opts (src, start_from, default_style, params) local style, shf local tmp = src[start_from + 1] if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end if style == nil then style, shf = default_style, start_from - 1 else shf = start_from end local n_exist, karg, varg = style[3], style[4], style[5] tmp = style[6] if tmp > -1 then karg = src[tmp + shf]:match'^%s*(.-)%s*$' if karg == '0' or karg:find'^%-?[1-9]%d*$' ~= nil then karg = tonumber(karg) n_exist = math.max(n_exist, karg) end end tmp = style[7] if tmp > -1 then varg = src[tmp + shf]:match'^%s*(.-)%s*$' if varg == '0' or varg:find'^%-?[1-9]%d*$' ~= nil then varg = tonumber(varg) n_exist = math.max(n_exist, varg) end end tmp = style[1] local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf, n_exist, params) if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then tmp = tmp - 2 end if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then tmp = tmp - 1 end return dest, argc, tmp, karg, varg, tnew, mem end -- Parse the arguments of some of the `mapping_*` and `renaming_*` class of -- modifiers local function load_replace_args (opts, offs, whoami) if opts[offs + 1] == nil then error(modulename .. ', ‘' .. whoami .. '’: No pattern string was given', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘' .. whoami .. '’: No replacement string was given', 0) end local tn, flg local ptn, repl, nmax, argc = opts[offs + 1], opts[offs + 2], tonumber(opts[offs + 3]), 3 if nmax ~= nil then argc = 4 elseif opts[offs + 3] ~= nil then tn = opts[offs + 3]:match'^%s*(.*%S)' if tn == nil then argc = 4 end end if tn == nil and opts[offs + argc] ~= nil then tn = opts[offs + argc]:match'^%s*(.*%S)' end if tn ~= nil then flg = mkeywords[tn] if flg ~= nil then tn = nil end end if flg == 0 then flg = nil elseif flg ~= nil then argc = argc + 1 end return ptn, repl, nmax, flg, offs + argc, (nmax ~= nil and nmax < 1) or (flg == 3 and ptn == repl), tn end -- Parse the arguments of the `with_*_matching` class of modifiers local function load_pattern_args (opts, offs, whoami) local tn, kwid local ptns, arg, state, nptns, idx = {}, opts[offs + 1], 0, 0, offs + 2 while arg ~= nil do if state == 0 then nptns, state = nptns + 1, -1 ptns[nptns] = { arg, false, false } else tn = arg:match'^%s*(.*%S)' kwid = tn and mkeywords[tn] if kwid == nil or (state > 0 and kwid > 0) then break else state = kwid if state > 1 then ptns[nptns][2] = true end if state == 3 then ptns[nptns][3] = true end end end arg, idx = opts[idx], idx + 1 end if state == 0 then error(modulename .. ', ‘' .. whoami .. '’: No pattern was given', 0) end return ptns, nptns, idx - 1, kwid == nil and tn or nil end -- Load the optional arguments of the `parsing`, `reinterpreting` and -- `evaluating` modifiers local function load_parse_opts (opts, offs, isp, psp) local tn, tmp local optslots, noptslots, argc, trimn, trimu, iplain, pplain = { true, true, true }, 3, offs, true, false, true, true repeat noptslots, tmp = noptslots - 1, opts[argc] tn = tmp and tmp:match'^%s*(.*%S)' if tn == nil then break end if optslots[1] ~= nil and trim_parse_opts[tn] ~= nil then tmp = trim_parse_opts[tn] trimn, trimu, optslots[1] = tmp[1], tmp[2], nil elseif optslots[2] ~= nil and isep_parse_opts[tn] ~= nil then argc = argc + 1 iplain, isp, optslots[2] = isep_parse_opts[tn], opts[argc], nil elseif optslots[3] ~= nil and psep_parse_opts[tn] ~= nil then argc = argc + 1 pplain, psp, optslots[3] = psep_parse_opts[tn], opts[argc], nil else break end argc, tn = argc + 1, nil until noptslots < 1 return isp, iplain, psp, pplain, trimn, trimu, argc, tn end -- Map parameters' values using a custom callback and a referenced table local value_maps = { [0] = function (tbl, margs, karg, varg, fn) for key in pairs(tbl) do tbl[key] = fn() end end, [1] = function (tbl, margs, karg, varg, fn) for key, val in pairs(tbl) do margs[varg] = val tbl[key] = fn() end end, [2] = function (tbl, margs, karg, varg, fn) for key in pairs(tbl) do margs[karg] = key tbl[key] = fn() end end, [3] = function (tbl, margs, karg, varg, fn) for key, val in pairs(tbl) do margs[karg], margs[varg] = key, val tbl[key] = fn() end end } -- Private table for `map_names()` local name_thieves = { [0] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do steal_if_renamed(val, tbl, key, cache, fn()) end end, [1] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do rargs[varg] = val steal_if_renamed(val, tbl, key, cache, fn()) end end, [2] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do rargs[karg] = key steal_if_renamed(val, tbl, key, cache, fn()) end end, [3] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do rargs[karg], rargs[varg] = key, val steal_if_renamed(val, tbl, key, cache, fn()) end end } -- Map parameters' names using a custom callback and a referenced table local function map_names (tbl, rargs, karg, varg, looptype, fn) local cache = {} name_thieves[looptype](cache, tbl, rargs, karg, varg, fn) for key, val in pairs(cache) do tbl[key] = val end end -- Return a new table that contains `src` regrouped according to the numeric -- suffixes in its keys local function make_groups (src) -- NOTE: `src` might be the original metatable! local prefix, gid local groups = {} for key, val in pairs(src) do -- `key` must only be a string or a number... if type(key) == 'string' then prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$' gid = tonumber(gid) or '' else prefix, gid = '', key end if groups[gid] == nil then groups[gid] = {} end if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then prefix = tonumber(prefix) if prefix < 1 then prefix = prefix - 1 end end groups[gid][prefix] = val end return groups end -- Split into parts a string containing the `$#` and `$@` placeholders and -- return the information as a skeleton table, a canvas table and a length local function parse_placeholder_string (target) local skel, canvas, idx, s_pos, e_pos = {}, {}, 1, 1, string.find(target, '%$[@#]', 1, false) while e_pos ~= nil do canvas[idx], skel[idx + 1] = target:sub(s_pos, e_pos - 1), target:sub(e_pos, e_pos + 1) == '$@' idx, s_pos = idx + 2, e_pos + 2 e_pos = string.find(target, '%$[@#]', s_pos, false) end if (s_pos > target:len()) then idx = idx - 1 else canvas[idx] = target:sub(s_pos) end return skel, canvas, idx end -- Populate a table by parsing a parameter string (heavy lifting for `parsing`, -- `reinterpreting` and `evaluating`) local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru) local key, val, spos1, spos2, pos1, pos2 local pos3, idx, lenplone = 0, 1, #str + 1 if isp == nil or isp == '' then if psp == nil or psp == '' then if tru then tbl[idx] = str:match'^%s*(.-)%s*$' else tbl[idx] = str end return end spos1, spos2 = str:find(psp, 1, ppl) if spos1 == nil then key = idx if tru then val = str:match'^%s*(.-)%s*$' else val = str end else key = get_param_name(str:sub(1, spos1 - 1)) val = str:sub(spos2 + 1) if trn then val = val:match'^%s*(.-)%s*$' end end tbl[key] = val return end if psp == nil or psp == '' then repeat pos1 = pos3 + 1 pos2, pos3 = str:find(isp, pos1, ipl) val = str:sub(pos1, (pos2 or lenplone) - 1) if tru then val = val:match'^%s*(.-)%s*$' end tbl[idx], idx = val, idx + 1 until pos2 == nil return end repeat pos1 = pos3 + 1 pos2, pos3 = str:find(isp, pos1, ipl) val = str:sub(pos1, (pos2 or lenplone) - 1) spos1, spos2 = val:find(psp, 1, ppl) if spos1 == nil then key = idx if tru then val = val:match'^%s*(.-)%s*$' end idx = idx + 1 else key = get_param_name(val:sub(1, spos1 - 1)) val = val:sub(spos2 + 1) if trn then val = val:match'^%s*(.-)%s*$' end end tbl[key] = val until pos2 == nil return end -- Heavy lifting for `snapshotting` and `remembering` local function make_child (ctx, src, whoami) local len = tonumber(ctx.pipe[ctx.fnpos + 1]) if len == nil or len == 0 then local stack = new_substack(ctx) for key, val in pairs(src) do stack[key] = val end return len == nil and 1 or 2 end if len < 0 or math.floor(len) ~= len then error(modulename .. ', ‘' .. whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end copy_table_maxn(new_substack(ctx), src, len) return 2 end -- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values` local function set_strings_from_substack (ctx, dest, whoami) if ctx.n_children < 1 then error(modulename .. ', ‘' .. whoami .. '’: There are no substacks to flush', 0) end local currsnap = ctx.n_children local stack = ctx.children[currsnap] for key, val in pairs(memoryslots) do if stack[key] ~= nil then dest[val] = stack[key] end end ctx.children[currsnap], ctx.n_children = nil, currsnap - 1 end -- Heavy lifting for `combining` and `combining_values` local function combine_parameters (ctx, keyval_fn, whoami) -- NOTE: `ctx.params` might be the original metatable! This function -- MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘' .. whoami .. '’: No parameter name was provided', 0) end local argc local tbl, vars = ctx.params, {} local sortfn, ivar0, dosort, tmp = load_sort_opt(opts[offs + 2]) if ivar0 == 2 then tmp = opts[offs + 3] ~= nil and opts[offs + 3]:match'^%s*(.*%S)' end ivar0 = ivar0 + offs if tmp == 'with_flushed_glue' then ivar0 = ivar0 + 1 argc = set_strings_from_opts(vars, opts, ivar0 + 1) set_strings_from_substack(ctx, vars, whoami) else if tmp == 'without_flushed_glue' then ivar0 = ivar0 + 1 end argc = set_strings_from_opts(vars, opts, ivar0 + 1) end if argc < ivar0 then error(modulename .. ', ‘' .. whoami .. '’: No setting directive was given', 0) end if next(tbl) == nil then if vars.ifngiven ~= nil then ctx.params = { [get_param_name(opts[offs + 1])] = vars.ifngiven } elseif tbl == ctx.oparams then ctx.params = {} end return argc + 1 end local cache, len if dosort then local words cache, words, len, tmp = get_sorted_key_list(tbl, sortfn) for idx = 1, tmp do cache[len + idx] = words[idx] end len = len + tmp else cache, len = {}, 1 for key in pairs(tbl) do cache[len], len = key, len + 1 end len = len - 1 end local pmap, nss, kvs, pps = {}, 0, vars.pairsep or '', vars.itersep or '' for idx = 1, len do tmp, pmap[nss + 1] = cache[idx], pps pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs) nss = nss + 2 end tmp = vars.oxfordsep or vars.lastsep if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp elseif nss > 2 and vars.lastsep ~= nil then pmap[nss - 1] = vars.lastsep end pmap[1] = vars.header or '' if vars.footer ~= nil then pmap[nss + 1] = vars.footer end ctx.params = { [get_param_name(opts[offs + 1])] = table.concat(pmap) } return argc + 1 end -- Concatenate the numeric keys from the table of parameters to the numeric -- keys from the table of options; non-numeric keys from the table of options -- will prevail over colliding non-numeric keys from the table of parameters local function concat_params (ctx, offs) local tbl, retval, cache, nmax = ctx.params, {}, {}, 0 for key, val in pairs(ctx.pipe) do if type(key) == 'number' then if key < 1 then cache[key] = val elseif key > offs then cache[key - offs] = val end if key > nmax then nmax = key end else cache[key] = val end end nmax = nmax - offs if ctx.subset == 1 then -- We need only the sequence for key, val in ipairs(tbl) do retval[key + nmax] = val end else if ctx.subset == -1 then for key in ipairs(tbl) do tbl[key] = nil end end for key, val in pairs(tbl) do if type(key) == 'number' and key > 0 then retval[key + nmax] = val else retval[key] = val end end end for key, val in pairs(cache) do retval[key] = val end return retval end -- Flush the parameters by calling a custom function for each value (after this -- function has been invoked `ctx.params` will be no longer usable) local function flush_params (ctx, fn) local tmp local tbl = ctx.params if ctx.subset == -1 then for key, val in ipairs(tbl) do tbl[key] = nil end elseif ctx.subset == 1 then if ctx.pins == nil then for key, val in ipairs(tbl) do fn(key, val) end return end tmp = {} for key, val in ipairs(tbl) do tmp[key] = val end tbl = tmp end if ctx.pins ~= nil then local marker = ctx.sorttype < 1 and ctx.subset ~= -1 or nil for idx = 1, #ctx.pins do tmp = ctx.pins[idx] if tbl[tmp] ~= nil then fn(tmp, tbl[tmp]) tbl[tmp] = marker end end if ctx.subset == 1 then for key, val in ipairs(tbl) do if val ~= true then fn(key, val) end end return end end if ctx.sorttype > 0 then local nums, words, nn, nw = get_sorted_key_list(tbl, natural_sort) if ctx.sorttype == 2 then for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end return end for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end return end if ctx.subset == -1 or ctx.pins == nil then for key, val in ipairs(tbl) do fn(key, val) tbl[key] = nil end for key, val in pairs(tbl) do fn(key, val) end return end for key, val in ipairs(tbl) do if val ~= true then fn(key, val) end tbl[key] = nil end for key, val in pairs(tbl) do if val ~= true then fn(key, val) end end end -- Flush the parameters by calling one of two custom functions for each value -- (after this function has been invoked `ctx.params` will be no longer usable) local function mixed_flush_params (ctx, fn_seq, fn_oth) if ctx.subset == 1 then flush_params(ctx, fn_seq) return end if ctx.subset == -1 then flush_params(ctx, fn_oth) return end local tbl = ctx.params if ctx.pins == nil and ctx.sorttype < 1 then for key, val in ipairs(tbl) do fn_seq(key, val) tbl[key] = nil end for key, val in pairs(tbl) do fn_oth(key, val) end return end local tseq = {} for key, val in ipairs(tbl) do tseq[key] = val end if ctx.pins ~= nil then local tmp local marker = ctx.sorttype < 1 or nil for idx = 1, #ctx.pins do tmp = ctx.pins[idx] if tseq[tmp] ~= nil then fn_seq(tmp, tbl[tmp]) tbl[tmp], tseq[tmp] = nil, marker elseif tbl[tmp] ~= nil then fn_oth(tmp, tbl[tmp]) tbl[tmp] = nil end end end if ctx.sorttype > 0 then local nums, words, nn, nw = get_sorted_key_list(tbl, natural_sort) if ctx.sorttype == 2 then for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end end for idx = 1, nn do if tseq[nums[idx]] ~= nil then fn_seq(nums[idx], tseq[nums[idx]]) else fn_oth(nums[idx], tbl[nums[idx]]) end end if ctx.sorttype ~= 2 then for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end end return end for key, val in ipairs(tseq) do if val ~= true then fn_seq(key, val) tbl[key] = nil end end for key, val in pairs(tbl) do fn_oth(key, val) end end -- Finalize and return a concatenated list local function finalize_and_return_concatenated_list (ctx, lst, len, modsize) if len > 0 then local tmp = ctx.oxfordsep or ctx.lastsep if tmp ~= nil and len > modsize * 2 then lst[len - modsize + 1] = tmp elseif len > modsize and ctx.lastsep ~= nil then lst[len - modsize + 1] = ctx.lastsep end lst[1] = ctx.header or '' if ctx.footer ~= nil then lst[len + 1] = ctx.footer end ctx.text = table.concat(lst) else ctx.text = ctx.ifngiven or '' end end --- --- --- PUBLIC ENVIRONMENT --- --- ________________________________ --- --- --- --[[ Modifiers ]]-- ------------------- -- Syntax: #invoke:params|sequential|pipe to library.sequential = function (ctx) if ctx.subset == 1 then error(modulename .. ': The ‘sequential’ directive has been provided more than once', 0) end if ctx.subset == -1 then error(modulename .. ': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end if ctx.sorttype > 0 then error(modulename .. ': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end ctx.iterfunc, ctx.subset = ipairs, 1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|non-sequential|pipe to library['non-sequential'] = function (ctx) if ctx.subset == -1 then error(modulename .. ': The ‘non-sequential’ directive has been provided more than once', 0) end if ctx.subset == 1 then error(modulename .. ': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end ctx.iterfunc, ctx.subset = pairs, -1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|all_sorted|pipe to library.all_sorted = function (ctx) if ctx.sorttype == 1 then error(modulename .. ': The ‘all_sorted’ directive has been provided more than once', 0) end if ctx.subset == 1 then error(modulename .. ': The ‘all_sorted’ directive is redundant after ‘sequential’', 0) end if ctx.sorttype == 2 then error(modulename .. ': The two directives ‘reassorted’ and ‘sequential’ are in contradiction with each other', 0) end ctx.sorttype = 1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|reassorted|pipe to library.reassorted = function (ctx) if ctx.sorttype == 2 then error(modulename .. ': The ‘reassorted’ directive has been provided more than once', 0) end if ctx.subset == 1 then error(modulename .. ': The ‘reassorted’ directive is redundant after ‘sequential’', 0) end if ctx.sorttype == 1 then error(modulename .. ': The two directives ‘sequential’ and ‘reassorted’ are in contradiction with each other', 0) end ctx.sorttype = 2 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|pinned_until|sentinel|[parameter name 1]|[parameter -- name 2]|...|parameter name N|sentinel|pipe to library.pinned_until = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘pinned_until’: No sentinel was provided', 0) end local tmp, bucket, curr, ncurr local sntl, idx = opts[offs + 1]:match'^%s*(.-)%s*$', 2 if ctx.pin_bucket == nil then bucket, curr, ncurr = {}, {}, 0 ctx.pin_bucket, ctx.pins = bucket, curr else bucket, curr, ncurr = ctx.pin_bucket, ctx.pins, ctx.npins end while opts[offs + idx] ~= nil do tmp = opts[offs + idx]:match'^%s*(.-)%s*$' if tmp == sntl then if idx == 2 then error(modulename .. ', ‘pinned_until’: No parameters to pin were provided', 0) end ctx.npins = ncurr + idx - 2 return context_iterate(ctx, offs + idx + 1) end if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then tmp = tonumber(tmp) end if bucket[tmp] then error(modulename .. ', ‘pinned_until’: Duplicate pinned parameter ‘' .. tostring(tmp) .. '’', 0) end curr[ncurr + idx - 1], bucket[tmp], idx = tmp, true, idx + 1 end error(modulename .. ', ‘pinned_until’: Missing sentinel in position #' .. tostring(idx), 0) end -- Syntax: #invoke:params|setting|directives|...|pipe to library.setting = function (ctx) local new_offs = set_strings_from_opts(ctx, ctx.pipe, ctx.fnpos + 1) if new_offs - ctx.fnpos < 2 then error(modulename .. ', ‘setting’: No directive was given', 0) end return context_iterate(ctx, new_offs + 1) end -- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to library.scoring = function (ctx) local opts, offs, retval = ctx.pipe, ctx.fnpos, 0 if opts[offs + 1] == nil then error(modulename .. ', ‘scoring’: No parameter name was provided', 0) end for _ in pairs(ctx.params) do retval = retval + 1 end local tn = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)' if tn == 'in_substack' then new_substack(ctx)[get_param_name(opts[offs + 1])] = tostring(retval) return context_iterate(ctx, offs + 3) end ctx.params[get_param_name(opts[offs + 1])] = tostring(retval) return tn == 'here' and context_iterate(ctx, offs + 3) or context_iterate(ctx, offs + 2, tn) end -- Syntax: #invoke:params|squeezing|pipe to library.squeezing = function (ctx) local store, indices, tbl, newlen = {}, {}, ctx.params, 0 for key, val in pairs(tbl) do if type(key) == 'number' then newlen = newlen + 1 indices[newlen], store[key], tbl[key] = key, val, nil end end table.sort(indices) for idx = 1, newlen do tbl[idx] = store[indices[idx]] end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|filling_the_gaps|pipe to library.filling_the_gaps = function (ctx) local newval, tbl, tmp, nmin, nmax, nnums = ctx.pipe[ctx.fnpos + 1], ctx.params, {}, 1, nil, -1 if newval == nil then error(modulename .. ', ‘filling_the_gaps’: No value was provided', 0) end for key, val in pairs(tbl) do if type(key) == 'number' then if nmax == nil then if key < nmin then nmin = key end nmax = key elseif key > nmax then nmax = key elseif key < nmin then nmin = key end tmp[key], nnums = val, nnums + 1 end end if nmax ~= nil and nmax - nmin > nnums then ctx.n_available = ctx.n_available + nmin + nnums - nmax if ctx.n_available < 0 then error(modulename .. ', ‘filling_the_gaps’: It is possible to fill at most ' .. tostring(maxfill) .. ' parameters', 0) end for idx = nmin, nmax do tbl[idx] = newval end for key, val in pairs(tmp) do tbl[key] = val end end return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|clearing|pipe to library.clearing = function (ctx) local tbl, numerics = ctx.params, {} for key, val in pairs(tbl) do if type(key) == 'number' then numerics[key], tbl[key] = val, nil end end for key, val in ipairs(numerics) do tbl[key] = val end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|cutting|left cut|right cut|pipe to library.cutting = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local lcut = tonumber(opts[offs + 1]) if lcut == nil or math.floor(lcut) ~= lcut then error(modulename .. ', ‘cutting’: Left cut must be an integer number', 0) end local rcut = tonumber(opts[offs + 2]) if rcut == nil or math.floor(rcut) ~= rcut then error(modulename .. ', ‘cutting’: Right cut must be an integer number', 0) end local tbl = ctx.params local len = #tbl if lcut < 0 then lcut = len + lcut end if rcut < 0 then rcut = len + rcut end local tot = lcut + rcut if tot > 0 then local cache = {} if tot >= len then for key in ipairs(tbl) do tbl[key] = nil end tot = len else for idx = len - rcut + 1, len do tbl[idx] = nil end for idx = 1, lcut do tbl[idx] = nil end end for key, val in pairs(tbl) do if type(key) == 'number' and key > 0 then if key > len then cache[key - tot] = val else cache[key - lcut] = val end tbl[key] = nil end end for key, val in pairs(cache) do tbl[key] = val end end return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|cropping|left crop|right crop|pipe to library.cropping = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local lcut = tonumber(opts[offs + 1]) if lcut == nil or math.floor(lcut) ~= lcut then error(modulename .. ', ‘cropping’: Left crop must be an integer number', 0) end local rcut = tonumber(opts[offs + 2]) if rcut == nil or math.floor(rcut) ~= rcut then error(modulename .. ', ‘cropping’: Right crop must be an integer number', 0) end local tbl = ctx.params local nmin, nmax for key in pairs(tbl) do if type(key) == 'number' then if nmin == nil then nmin, nmax = key, key elseif key > nmax then nmax = key elseif key < nmin then nmin = key end end end if nmin ~= nil then local len = nmax - nmin + 1 if lcut < 0 then lcut = len + lcut end if rcut < 0 then rcut = len + rcut end if lcut + rcut - len > -1 then for key in pairs(tbl) do if type(key) == 'number' then tbl[key] = nil end end elseif lcut + rcut > 0 then for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end local lshift = nmin + lcut - 1 if lshift > 0 then for idx = lshift + 1, nmax do tbl[idx - lshift], tbl[idx] = tbl[idx], nil end end end end return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|purging|start offset|length|pipe to library.purging = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local idx = tonumber(opts[offs + 1]) if idx == nil or math.floor(idx) ~= idx then error(modulename .. ', ‘purging’: Start offset must be an integer number', 0) end local len = tonumber(opts[offs + 2]) if len == nil or math.floor(len) ~= len then error(modulename .. ', ‘purging’: Length must be an integer number', 0) end local tbl = ctx.params if len < 1 then len = len + table.maxn(tbl) if idx > len then return context_iterate(ctx, offs + 3) end len = len - idx + 1 end ctx.params = copy_table_reduced(tbl, idx, len) return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|backpurging|start offset|length|pipe to library.backpurging = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local last = tonumber(opts[offs + 1]) if last == nil or math.floor(last) ~= last then error(modulename .. ', ‘backpurging’: Start offset must be an integer number', 0) end local len = tonumber(opts[offs + 2]) if len == nil or math.floor(len) ~= len then error(modulename .. ', ‘backpurging’: Length must be an integer number', 0) end local idx local tbl = ctx.params if len > 0 then idx = last - len + 1 else for key in pairs(tbl) do if type(key) == 'number' and (idx == nil or key < idx) then idx = key end end if idx == nil then return context_iterate(ctx, offs + 3) end idx = idx - len if last < idx then return context_iterate(ctx, offs + 3) end len = last - idx + 1 end ctx.params = copy_table_reduced(ctx.params, idx, len) return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|shifting|addend|pipe to library.shifting = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local nshift = tonumber(ctx.pipe[ctx.fnpos + 1]) if nshift == nil or nshift == 0 or math.floor(nshift) ~= nshift then error(modulename .. ', ‘shifting’: A non-zero integer number must be provided', 0) end local tbl = {} for key, val in pairs(ctx.params) do if type(key) == 'number' then tbl[key + nshift] = val else tbl[key] = val end end ctx.params = tbl return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|reversing_numeric_names|pipe to library.reversing_numeric_names = function (ctx) local tbl, numerics, nmax = ctx.params, {}, 0 for key, val in pairs(tbl) do if type(key) == 'number' then numerics[key], tbl[key] = val, nil if key > nmax then nmax = key end end end for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|pivoting_numeric_names|pipe to --[[ library.pivoting_numeric_names = function (ctx) local tbl = ctx.params local shift = #tbl + 1 if shift < 2 then return library.reversing_numeric_names(ctx) end local tmp = {} for key, val in pairs(tbl) do if type(key) == 'number' then tmp[key], tbl[key] = val, nil end end for key, val in pairs(tmp) do tbl[shift - key] = val end return context_iterate(ctx, ctx.fnpos + 1) end ]]-- -- Syntax: #invoke:params|mirroring_numeric_names|pipe to --[[ library.mirroring_numeric_names = function (ctx) local nmax, nmin local tbl, tmp = ctx.params, {} for key, val in pairs(tbl) do if type(key) == 'number' then tmp[key], tbl[key] = val, nil if nmax == nil then nmin, nmax = key, key elseif key > nmax then nmax = key elseif key < nmin then nmin = key end end end for key, val in pairs(tmp) do tbl[nmax + nmin - key] = val end return context_iterate(ctx, ctx.fnpos + 1) end ]]-- -- Syntax: #invoke:params|swapping_numeric_names|pipe to --[[ library.swapping_numeric_names = function (ctx) local tmp local tbl, cache, nsize = ctx.params, {}, 1 for key in pairs(tbl) do if type(key) == 'number' then cache[nsize], nsize = key, nsize + 1 end end table.sort(cache) for idx = math.floor((nsize - 1) / 2), 1, -1 do tmp = tbl[cache[idx] ] tbl[cache[idx] ] = tbl[cache[nsize - idx] ] tbl[cache[nsize - idx] ] = tmp end return context_iterate(ctx, ctx.fnpos + 1) end ]]-- -- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to library.sorting_sequential_values = function (ctx) local sortfn local opts, offs = ctx.pipe, ctx.fnpos local tn = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tn ~= nil then sortfn = sortfunctions[tn] end if sortfn then table.sort(ctx.params, sortfn) else table.sort(ctx.params) end -- i.e. either `false` or `nil` if sortfn == nil then return context_iterate(ctx, offs + 1, tn) end return context_iterate(ctx, offs + 2) end -- Syntax: #invoke:params|splicing|[add to position]|position|increment| -- [number of elements to write]|...|pipe to library.splicing = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local tmp2, argc, pos, refp local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local tmp1 = opts[offs + 1] if tmp1 ~= nil then tmp2 = tonumber(tmp1) if tmp2 == nil or math.floor(tmp2) ~= tmp2 then pos, argc, tmp2 = tonumber(opts[offs + 2]), offs + 4, tmp1:match'^%s*(.*%S)' if tmp2 ~= nil then refp = position_references[tmp2] if refp == nil then error(modulename .. ', ‘splicing’: ‘' .. tostring(tmp2) .. '’ is not a valid first argument', 0) end else refp = 0 end else pos, argc, refp = tmp2, offs + 3, 0 end else pos, argc, refp = tonumber(opts[offs + 2]), offs + 4, 0 end if pos == nil or math.floor(pos) ~= pos then error(modulename .. ', ‘splicing’: The position must be an integer number', 0) end local len = tonumber(opts[argc - 1]) if len == nil or math.floor(len) ~= len then error(modulename .. ', ‘splicing’: The increment must be an integer number', 0) end local insn = tonumber(opts[argc]) if len == 0 and (insn == nil or insn < 1) then error(modulename .. ', ‘splicing’: When the increment is zero the number of elements to write cannot be zero', 0) end if refp == 2 then for _ in ipairs(tbl) do pos = pos + 1 end refp = 0 end tmp1, tmp2 = nil, nil if refp ~= 0 or len ~= 0 then for key, val in pairs(tbl) do if type(key) == 'number' then if tmp1 == nil then tmp1, tmp2 = key, key elseif key < tmp1 then tmp1 = key elseif key > tmp2 then tmp2 = key end end end end if tmp2 == nil then len = 0 elseif refp == 3 then pos = pos + tmp2 elseif refp == 1 then pos = pos + tmp1 end if len > 0 and pos + len > tmp1 and pos <= tmp2 then tbl = copy_table_expanded(tbl, pos, len) elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then tbl = copy_table_reduced(tbl, pos, -len) else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end ctx.params = tbl if insn == nil or insn < 0 or math.floor(insn) ~= insn then return context_iterate(ctx, argc) end tmp1 = argc - offs - pos + 1 for key = pos, pos + insn - 1 do tbl[key] = opts[offs + key + tmp1] end return context_iterate(ctx, argc + insn + 1) end -- Syntax: #invoke:params|imposing|name|value|pipe to library.imposing = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘imposing’: Missing parameter name to impose', 0) end ctx.params[get_param_name(opts[offs + 1])] = opts[offs + 2] return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|providing|name|value|pipe to library.providing = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘providing’: Missing parameter name to provide', 0) end local key = get_param_name(opts[offs + 1]) if ctx.params[key] == nil then ctx.params[key] = opts[offs + 2] end return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to library.reassigning = function (ctx) local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘reassigning’: Missing source parameter', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘reassigning’: Missing destination parameter', 0) end local mode, argc local src, tn = get_param_name(opts[offs + 1]), opts[offs + 3] ~= nil and opts[offs + 3]:match'^%s*(.*%S)' local val = tbl[src] if tn ~= nil then mode = a_modes[tn] end if mode == nil then mode, argc = 0, offs + 3 else argc, tn = offs + 4, nil end if val == nil and mode > 1 then return context_iterate(ctx, argc, tn) end local dest = get_param_name(opts[offs + 2]) local tmp = tbl[dest] == nil if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end if tmp or mode < 4 then tbl[dest] = val end return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|discarding|name|[how many]|pipe to library.discarding = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘discarding’: Missing parameter name to discard', 0) end local len = tonumber(opts[offs + 2]) if len == nil then ctx.params[get_param_name(opts[offs + 1])] = nil return context_iterate(ctx, offs + 2) end local key = tonumber(opts[offs + 1]) if key == nil or math.floor(key) ~= key then error(modulename .. ', ‘discarding’: A range was provided, but the initial parameter name is not an integer number', 0) end if len < 1 or math.floor(len) ~= len then error(modulename .. ', ‘discarding’: A range can only be an integer number greater than zero', 0) end for idx = key, key + len - 1 do ctx.params[idx] = nil end return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|excluding_non-numeric_names|pipe to library['excluding_non-numeric_names'] = function (ctx) local tmp = ctx.params for key, val in pairs(tmp) do if type(key) ~= 'number' then tmp[key] = nil end end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|excluding_numeric_names|pipe to library.excluding_numeric_names = function (ctx) local tmp = ctx.params for key, val in pairs(tmp) do if type(key) == 'number' then tmp[key] = nil end end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]| -- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag -- N]|pipe to library.with_name_matching = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local tmp, ptn local tbl, newparams, opts, offs = ctx.params, {}, ctx.pipe, ctx.fnpos local targets, nptns, argc, tn = load_pattern_args(opts, offs, 'with_name_matching') for idx = 1, nptns do ptn = targets[idx] if ptn[3] then tmp = ptn[1] if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then tmp = tonumber(tmp) end newparams[tmp] = tbl[tmp] else for key, val in pairs(tbl) do if tostring(key):find(ptn[1], 1, ptn[2]) then newparams[key] = val end end end end ctx.params = newparams return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|with_name_not_matching|target 1|[plain flag 1]| -- [and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain -- flag N]|pipe to library.with_name_not_matching = function (ctx) local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local targets, nptns, argc, tn = load_pattern_args(opts, offs, 'with_name_not_matching') if nptns == 1 and targets[1][3] then local tmp = targets[1][1] if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then tbl[tonumber(tmp)] = nil else tbl[tmp] = nil end return context_iterate(ctx, argc, tn) end local yesmatch, ptn for key in pairs(tbl) do yesmatch = true for idx = 1, nptns do ptn = targets[idx] if ptn[3] then if tostring(key) ~= ptn[1] then yesmatch = false break end elseif not tostring(key):find(ptn[1], 1, ptn[2]) then yesmatch = false break end end if yesmatch then tbl[key] = nil end end return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]| -- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag -- N]|pipe to library.with_value_matching = function (ctx) local nomatch, ptn local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local targets, nptns, argc, tn = load_pattern_args(opts, offs, 'with_value_matching') for key, val in pairs(tbl) do nomatch = true for idx = 1, nptns do ptn = targets[idx] if ptn[3] then if val == ptn[1] then nomatch = false break end elseif val:find(ptn[1], 1, ptn[2]) then nomatch = false break end end if nomatch then tbl[key] = nil end end return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]| -- [and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain -- flag N]|pipe to library.with_value_not_matching = function (ctx) local yesmatch, ptn local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local targets, nptns, argc, tn = load_pattern_args(opts, offs, 'with_value_not_matching') for key, val in pairs(tbl) do yesmatch = true for idx = 1, nptns do ptn = targets[idx] if ptn[3] then if val ~= ptn[1] then yesmatch = false break end elseif not val:find(ptn[1], 1, ptn[2]) then yesmatch = false break end end if yesmatch then tbl[key] = nil end end return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to library.keeping_at_most = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local len = tonumber(ctx.pipe[ctx.fnpos + 1]) if len == nil or len < 1 or math.floor(len) ~= len then error(modulename .. ', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end ctx.params = copy_table_maxn({}, ctx.params, len) return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|trimming_values|pipe to library.trimming_values = function (ctx) local tbl = ctx.params for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|mapping_to_lowercase|pipe to library.mapping_to_lowercase = function (ctx) local tbl = ctx.params for key, val in pairs(tbl) do tbl[key] = val:lower() end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|mapping_to_uppercase|pipe to library.mapping_to_uppercase = function (ctx) local tbl = ctx.params for key, val in pairs(tbl) do tbl[key] = val:upper() end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|mapping_by_calling|template name|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to library.mapping_by_calling = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tname == nil then error(modulename .. ', ‘mapping_by_calling’: No template name was provided', 0) end local margs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.values_only, ctx.params) local model = { title = tname, args = margs } value_maps[looptype](tbl, margs, karg, varg, function () return ctx.frame:expandTemplate(model) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.mapping_by_invoking = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if mname == nil then error(modulename .. ', ‘mapping_by_invoking’: No module name was provided', 0) end local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)' if fname == nil then error(modulename .. ', ‘mapping_by_invoking’: No function name was provided', 0) end local margs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 2, mapping_styles.values_only, ctx.params) local model = { title = 'Module:' .. mname, args = margs } local mfunc = require(model.title)[fname] if mfunc == nil then error(modulename .. ', ‘mapping_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end value_maps[looptype](tbl, margs, karg, varg, function () return tostring(mfunc(ctx.frame:newChild(model))) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_magic|parser function|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.mapping_by_magic = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if magic == nil then error(modulename .. ', ‘mapping_by_magic’: No parser function was provided', 0) end local margs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.values_only, ctx.params) value_maps[looptype](tbl, margs, karg, varg, function () return ctx.frame:callParserFunction(magic, margs) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain -- flag]|pipe to library.mapping_by_replacing = function (ctx) local ptn, repl, nmax, flg, argc, die, tn = load_replace_args(ctx.pipe, ctx.fnpos, 'mapping_by_replacing') if die then return context_iterate(ctx, argc, tn) end local tbl = ctx.params if flg == 3 then for key, val in pairs(tbl) do if val == ptn then tbl[key] = repl end end else if flg == 2 then -- Copied from Module:String's `str._escapePattern()` ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0') end for key, val in pairs(tbl) do tbl[key] = val:gsub(ptn, repl, nmax) end end return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|mapping_by_mixing|mixing string|pipe to library.mapping_by_mixing = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘mapping_by_mixing’: No mixing string was provided', 0) end local tbl, mix = ctx.params, opts[offs + 1] if mix == '$#' then for key in pairs(tbl) do tbl[key] = tostring(key) end return context_iterate(ctx, offs + 2) end local skel, cnv, n_parts = parse_placeholder_string(mix) for key, val in pairs(tbl) do for idx = 2, n_parts, 2 do if skel[idx] then cnv[idx] = val else cnv[idx] = tostring(key) end end tbl[key] = table.concat(cnv) end return context_iterate(ctx, offs + 2) end -- Syntax: #invoke:params|renaming_to_lowercase|pipe to library.renaming_to_lowercase = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local cache = {} for key, val in pairs(ctx.params) do if type(key) == 'string' then cache[key:lower()] = val else cache[key] = val end end ctx.params = cache return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|renaming_to_uppercase|pipe to library.renaming_to_uppercase = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local cache = {} for key, val in pairs(ctx.params) do if type(key) == 'string' then cache[key:upper()] = val else cache[key] = val end end ctx.params = cache return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to library.renaming_to_sequence = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local cache, len local tbl = ctx.params local sortfn, argc, dosort, tn = load_sort_opt(ctx.pipe[ctx.fnpos + 1]) if dosort then local words, wl cache, words, len, wl = get_sorted_key_list(tbl, sortfn) for idx = 1, len do cache[idx] = tbl[cache[idx]] end for idx = 1, wl do cache[len + idx] = tbl[words[idx]] end else cache, len = {}, 1 for _, val in pairs(tbl) do cache[len], len = val, len + 1 end end ctx.params = cache return context_iterate(ctx, ctx.fnpos + argc, tn) end -- Syntax: #invoke:params|renaming_by_calling|template name|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to library.renaming_by_calling = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tname == nil then error(modulename .. ', ‘renaming_by_calling’: No template name was provided', 0) end local rargs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.names_only, ctx.params) local model = { title = tname, args = rargs } map_names(tbl, rargs, karg, varg, looptype, function () return ctx.frame:expandTemplate(model) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_invoking|module name|function -- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of -- additional arguments]|[argument 1]|[argument 2]|[...]|[argument -- N]|pipe to library.renaming_by_invoking = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if mname == nil then error(modulename .. ', ‘renaming_by_invoking’: No module name was provided', 0) end local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)' if fname == nil then error(modulename .. ', ‘renaming_by_invoking’: No function name was provided', 0) end local rargs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 2, mapping_styles.names_only, ctx.params) local model = { title = 'Module:' .. mname, args = rargs } local mfunc = require(model.title)[fname] if mfunc == nil then error(modulename .. ', ‘renaming_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end map_names(tbl, rargs, karg, varg, looptype, function () return tostring(mfunc(ctx.frame:newChild(model))) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_magic|parser function|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.renaming_by_magic = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if magic == nil then error(modulename .. ', ‘renaming_by_magic’: No parser function was provided', 0) end local rargs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.names_only, ctx.params) map_names(tbl, rargs, karg, varg, looptype, function () return ctx.frame:callParserFunction(magic, rargs) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain -- flag]|pipe to library.renaming_by_replacing = function (ctx) local ptn, repl, nmax, flg, argc, die, tn = load_replace_args(ctx.pipe, ctx.fnpos, 'renaming_by_replacing') if die then return context_iterate(ctx, argc, tn) end local tbl = ctx.params if flg == 3 then ptn = get_param_name(ptn) local val = tbl[ptn] if val ~= nil then tbl[ptn], tbl[get_param_name(repl)] = nil, val end else if flg == 2 then -- Copied from Module:String's `str._escapePattern()` ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0') end local cache = {} for key, val in pairs(tbl) do steal_if_renamed(val, tbl, key, cache, tostring(key):gsub(ptn, repl, nmax)) end for key, val in pairs(cache) do tbl[key] = val end end return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to library.renaming_by_mixing = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local mix = ctx.pipe[ctx.fnpos + 1] if mix == nil then error(modulename .. ', ‘renaming_by_mixing’: No mixing string was provided', 0) end local cache = {} mix = mix:match'^%s*(.-)%s*$' if mix == '$@' then for _, val in pairs(ctx.params) do cache[get_param_name(val)] = val end else local skel, canvas, n_parts = parse_placeholder_string(mix) for key, val in pairs(ctx.params) do for idx = 2, n_parts, 2 do if skel[idx] then canvas[idx] = val else canvas[idx] = tostring(key) end end cache[get_param_name(table.concat(canvas))] = val end end ctx.params = cache return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|grouping_by_calling|template -- name|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.grouping_by_calling = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos local tmp, argc, tbl, mem = load_child_opts(opts, offs + 2, 0, ctx.params) local gargs = {} for key, val in pairs(tmp) do if type(key) == 'number' and key < 1 then gargs[key - 1] = val else gargs[key] = val end end tmp = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tmp == nil then error(modulename .. ', ‘grouping_by_calling’: No template name was provided', 0) end local model = { title = tmp } local groups = make_groups(tbl) for gid, group in pairs(groups) do for key, val in pairs(gargs) do group[key] = val end group[0], model.args = gid, group groups[gid] = ctx.frame:expandTemplate(model) end for key, val in pairs(mem) do groups[key] = val end ctx.params = groups return context_iterate(ctx, argc) end -- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration -- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to library.parsing = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘parsing’: No string to parse was provided', 0) end local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc, tn = load_parse_opts(opts, offs + 2, '|', '=') parse_parameter_string(ctx.params, opts[offs + 1], isep, iplain, psep, pplain, trimnamed, trimunnamed) return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|reinterpreting|parameter to reinterpret|[trim -- flag]|[iteration delimiter setter]|[...]|[key-value delimiter -- setter]|[...]|pipe to library.reinterpreting = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘reinterpreting’: No parameter to reinterpret was provided', 0) end local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc, tn = load_parse_opts(opts, offs + 2, '|', '=') local tbl, tmp = ctx.params, get_param_name(opts[offs + 1]) local str = tbl[tmp] if str ~= nil then tbl[tmp] = nil parse_parameter_string(tbl, str, isep, iplain, psep, pplain, trimnamed, trimunnamed) end return context_iterate(ctx, argc, tn) end -- Syntax: #invoke:params|evaluating|string to parse|[trim flag]|[iteration -- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to library.evaluating = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘evaluating’: No string to parse was provided', 0) end local isep, iplain, psep, pplain, trimnamed, trimunnamed, repos, tn = load_parse_opts(opts, offs + 2, '!', ':') if opts[offs + 1]:match'^%s*(.*%S)' == nil then remove_numeric_keys(opts, offs, repos - offs) return context_iterate(ctx, offs, tn) end local new_opts, cache = {}, {} parse_parameter_string(cache, opts[offs + 1], isep, iplain, psep, pplain, trimnamed, trimunnamed) local shift = #cache + offs - repos + 1 for key, val in pairs(opts) do if type(key) ~= 'number' or key < offs then new_opts[key] = val elseif key >= repos then new_opts[key + shift] = val end end for key, val in pairs(cache) do if type(key) ~= 'number' or key < 1 then new_opts[key] = val else new_opts[key + offs] = val end end ctx.pipe = new_opts return context_iterate(ctx, offs + 1) end -- Syntax: #invoke:params|mixing_names_and_values|mixing string|pipe to library.mixing_names_and_values = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end local tmp local cache, mix_k, mix_v = {}, opts[offs + 1]:match'^%s*(.-)%s*$', opts[offs + 2] if mix_k == '$@' and mix_v == '$@' then for _, val in pairs(ctx.params) do cache[get_param_name(val)] = val end elseif mix_k == '$@' and mix_v == '$#' then for key, val in pairs(ctx.params) do cache[get_param_name(val)] = tostring(key) end elseif mix_k == '$#' and mix_v == '$#' then for key in pairs(ctx.params) do cache[key] = tostring(key) end else local skel_k, cnv_k, n_parts_k = parse_placeholder_string(mix_k) local skel_v, cnv_v, n_parts_v = parse_placeholder_string(mix_v) for key, val in pairs(ctx.params) do tmp = tostring(key) for idx = 2, n_parts_k, 2 do if skel_k[idx] then cnv_k[idx] = val else cnv_k[idx] = tmp end end for idx = 2, n_parts_v, 2 do if skel_v[idx] then cnv_v[idx] = val else cnv_v[idx] = tmp end end cache[get_param_name(table.concat(cnv_k))] = table.concat(cnv_v) end end ctx.params = cache return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|combining|new parameter name|[sort -- order]|[with/without flushed glue]|setting directives|...|pipe to library.combining = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning return context_iterate(ctx, combine_parameters( ctx, function (key, val, kvs) return key .. kvs .. val end, 'combining' )) end -- Syntax: #invoke:params|combining_values|new parameter name|[sort -- order]|[with/without flushed glue]|setting directives|...|pipe to library.combining_values = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning return context_iterate(ctx, combine_parameters( ctx, function (key, val, kvs) return val end, 'combining_values' )) end -- Syntax: #invoke:params|combining_by_calling|template name|new parameter -- name|pipe to library.combining_by_calling = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tname == nil then error(modulename .. ', ‘combining_by_calling’: No template name was provided', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘combining_by_calling’: No parameter name was provided', 0) end ctx.params = { [get_param_name(opts[offs + 2])] = ctx.frame:expandTemplate{ title = tname, args = ctx.params } } return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|combining_by_invoking|module name|function name|new -- parameter name|pipe to library.combining_by_invoking = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if mname == nil then error(modulename .. ', ‘combining_by_invoking’: No module name was provided', 0) end local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)' if fname == nil then error(modulename .. ', ‘combining_by_invoking’: No function name was provided', 0) end if opts[offs + 3] == nil then error(modulename .. ', ‘combining_by_invoking’: No parameter name was provided', 0) end local model = { title = 'Module:' .. mname, args = ctx.params } local mfunc = require(model.title)[fname] if mfunc == nil then error(modulename .. ', ‘mapping_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end ctx.params = { [get_param_name(opts[offs + 3])] = tostring(mfunc(ctx.frame:newChild(model))) } return context_iterate(ctx, offs + 4) end -- Syntax: #invoke:params|combining_by_magic|parser function|new parameter -- name|pipe to library.combining_by_magic = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if magic == nil then error(modulename .. ', ‘combining_by_magic’: No parser function was provided', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘combining_by_magic’: No parameter name was provided', 0) end ctx.params = { [get_param_name(opts[offs + 2])] = ctx.frame:callParserFunction(magic, ctx.params) } return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to library.snapshotting = function (ctx) return context_iterate(ctx, ctx.fnpos + make_child(ctx, ctx.params, 'snapshotting')) end -- Syntax: #invoke:params|remembering|[maximum number]|pipe to library.remembering = function (ctx) return context_iterate(ctx, ctx.fnpos + make_child(ctx, ctx.oparams, 'remembering')) end -- Syntax: #invoke:params|entering_substack|[new]|pipe to library.entering_substack = function (ctx) local tbl, opts, offs, ncurrparent = ctx.params, ctx.pipe, ctx.fnpos, ctx.n_parents + 1 local tn = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if ctx.parents == nil then ctx.parents = { tbl } else ctx.parents[ncurrparent] = tbl end ctx.n_parents = ncurrparent if tn == 'new' then ctx.params = {} return context_iterate(ctx, offs + 2) end local currsnap = ctx.n_children if currsnap > 0 then ctx.params, ctx.children[currsnap], ctx.n_children = ctx.children[currsnap], nil, currsnap - 1 else local newparams = {} for key, val in pairs(tbl) do newparams[key] = val end ctx.params = newparams end return context_iterate(ctx, offs + 1, tn) end -- Syntax: #invoke:params|pulling|parameter name|pipe to library.pulling = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘pulling’: No parameter to pull was provided', 0) end local tmp = ctx.n_parents local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp] tmp = get_param_name(opts[offs + 1]) if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|recalling|parameter name|pipe to library.recalling = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘recalling’: No parameter to recall was provided', 0) end local arg = get_param_name(opts[offs + 1]) if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|finding|parameter name|pipe to --[[ library.finding = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘finding’: No parameter to find was provided', 0) end local arg = get_param_name(opts[offs + 1]) local parent for idx = ctx.n_parents, 1, -1 do parent = ctx.parents[idx] if parent[arg] ~= nil then ctx.params[arg] = parent[arg] return context_iterate(ctx, offs + 2) end end if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end return context_iterate(ctx, offs + 2) end ]]-- -- Syntax: #invoke:params|picking|number of parameters to pick|pipe to --[[ library.picking = function (ctx) local len = tonumber(ctx.pipe[ctx.fnpos + 1]) if len == nil or len < 1 or math.floor(len) ~= len then error(modulename .. ', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len) else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end return context_iterate(ctx, ctx.fnpos + 2) end ]]-- -- Syntax: #invoke:params|detaching_substack|pipe to library.detaching_substack = function (ctx) local ncurrparent = ctx.n_parents if ncurrparent < 1 then error(modulename .. ', ‘detaching_substack’: No substacks have been created', 0) end local parent = ctx.parents[ncurrparent] for key in pairs(ctx.params) do parent[key] = nil end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|dropping_substack|pipe to library.dropping_substack = function (ctx) local ncurrparent = ctx.n_parents if ncurrparent < 1 then error(modulename .. ', ‘dropping_substack’: No substacks have been created', 0) end ctx.params, ctx.parents[ncurrparent], ctx.n_parents = ctx.parents[ncurrparent], nil, ncurrparent - 1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|leaving_substack|pipe to library.leaving_substack = function (ctx) local ncurrparent = ctx.n_parents if ncurrparent < 1 then error(modulename .. ', ‘leaving_substack’: No substacks have been created', 0) end local currsnap = ctx.n_children + 1 if ctx.children == nil then ctx.children = { ctx.params } else ctx.children[currsnap] = ctx.params end ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children = ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|merging_substack|pipe to library.merging_substack = function (ctx) local ncurrparent = ctx.n_parents if ncurrparent < 1 then error(modulename .. ', ‘merging_substack’: No substack has been created', 0) end local parent, child = ctx.parents[ncurrparent], ctx.params ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil, ncurrparent - 1 for key, val in pairs(child) do parent[key] = val end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|flushing|pipe to library.flushing = function (ctx) if ctx.n_children < 1 then error(modulename .. ', ‘flushing’: There are no substacks to flush', 0) end local parent, currsnap = ctx.params, ctx.n_children for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end ctx.children[currsnap], ctx.n_children = nil, currsnap - 1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|setting_by_flushing|pipe to library.setting_by_flushing = function (ctx) set_strings_from_substack(ctx, ctx, 'setting_by_flushing') return context_iterate(ctx, ctx.fnpos + 1) end --[[ Functions ]]-- ----------------------------- -- Syntax: #invoke:params|count library.count = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local retval = 0 for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end if ctx.subset == -1 then retval = retval - #ctx.params end ctx.text = retval return false end -- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]| -- [...]|[item n]|[named item 1=value 1]|[...]|[named item n=value -- n]|[...] library.concat_and_call = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local opts, offs = ctx.pipe, ctx.fnpos local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tname == nil then error(modulename .. ', ‘concat_and_call’: No template name was provided', 0) end ctx.text = ctx.frame:expandTemplate{ title = tname, args = concat_params(ctx, offs + 1) } return false end -- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend -- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named -- item n=value n]|[...] library.concat_and_invoke = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local opts, offs = ctx.pipe, ctx.fnpos local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if mname == nil then error(modulename .. ', ‘concat_and_invoke’: No module name was provided', 0) end local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)' if fname == nil then error(modulename .. ', ‘concat_and_invoke’: No function name was provided', 0) end local mfunc = require('Module:' .. mname)[fname] if mfunc == nil then error(modulename .. ', ‘concat_and_invoke’: The function ‘' .. fname .. '’ does not exist', 0) end ctx.text = mfunc(ctx.frame:newChild{ title = 'Module:' .. mname, args = concat_params(ctx, offs + 2) }) return false end -- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend -- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n= -- value n]|[...] library.concat_and_magic = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local opts, offs = ctx.pipe, ctx.fnpos local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if magic == nil then error(modulename .. ', ‘concat_and_magic’: No parser function was provided', 0) end ctx.text = ctx.frame:callParserFunction(magic, concat_params(ctx, offs + 1)) return false end -- Syntax: #invoke:params|value_of|parameter name library.value_of = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘value_of’: No parameter name was provided', 0) end local val local key = opts[offs + 1]:match'^%s*(.-)%s*$' if key == '0' or key:find'^%-?[1-9]%d*$' ~= nil then key = tonumber(key) val = ctx.params[key] -- No worries: #ctx.params is unused when the modifier is in -- first position (and therefore `ctx.params` is a metatable) if val ~= nil and ( ctx.subset ~= -1 or key > #ctx.params or key < 1 ) and ( ctx.subset ~= 1 or (key <= #ctx.params and key > 0) ) then ctx.text = (ctx.header or '') .. val .. (ctx.footer or '') else ctx.text = ctx.ifngiven or '' end else val = ctx.params[key] if ctx.subset ~= 1 and val ~= nil then ctx.text = (ctx.header or '') .. val .. (ctx.footer or '') else ctx.text = ctx.ifngiven or '' end end return false end -- Syntax: #invoke:params|list library.list = function (ctx) local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or '' flush_params(ctx, function (key, val) ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss = pps, key, kvs, val, nss + 4 end) finalize_and_return_concatenated_list(ctx, ret, nss, 4) return false end -- Syntax: #invoke:params|list_values library.list_values = function (ctx) -- NOTE: `library.coins()` and `library.unique_coins()` rely on us local ret, nss, pps = {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2 end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|list_maybe_with_names library.list_maybe_with_names = function (ctx) local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or '' mixed_flush_params( ctx, function (key, val) ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss = pps, '', '', val, nss + 4 end, function (key, val) ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss = pps, key, kvs, val, nss + 4 end ) finalize_and_return_concatenated_list(ctx, ret, nss, 4) return false end -- Syntax: #invoke:params|for_each|wikitext library.for_each = function (ctx) local ret, nss, pps, txt = {}, 0, ctx.itersep or '', ctx.pipe[ctx.fnpos + 1] or '' local skel, cnv, n_parts = parse_placeholder_string(txt) flush_params(ctx, function (key, val) for idx = 2, n_parts, 2 do if skel[idx] then cnv[idx] = val else cnv[idx] = tostring(key) end end ret[nss + 1], nss = pps, nss + 2 ret[nss] = table.concat(cnv) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]| -- [...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.call_for_each = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tname == nil then error(modulename .. ', ‘call_for_each’: No template name was provided', 0) end local cargs = copy_table_reduced(opts, 1, offs - 1) local model, ret, nss, ccs = { title = tname, args = cargs }, {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2 ret[nss] = ctx.frame:expandTemplate(model) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|invoke_for_each|module name|module function|[append -- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]| -- [named param n=value n]|[...] library.invoke_for_each = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if mname == nil then error(modulename .. ', ‘invoke_for_each’: No module name was provided', 0) end local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)' if fname == nil then error(modulename .. ', ‘invoke_for_each’: No function name was provided', 0) end local iargs = copy_table_reduced(ctx.pipe, 1, offs) local model = { title = 'Module:' .. mname, args = iargs } local mfunc, ret, nss, ccs = require(model.title)[fname], {}, 0, ctx.itersep or '' if mfunc == nil then error(modulename .. ', ‘invoke_for_each’: The function ‘' .. fname .. '’ does not exist', 0) end flush_params(ctx, function (key, val) iargs[1], iargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2 ret[nss] = mfunc(ctx.frame:newChild(model)) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append -- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.magic_for_each = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if magic == nil then error(modulename .. ', ‘magic_for_each’: No parser function was provided', 0) end local ret, nss, ccs, cargs = {}, 0, ctx.itersep or '', copy_table_reduced(opts, 1, offs - 1) flush_params(ctx, function (key, val) cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2 ret[nss] = ctx.frame:callParserFunction(magic, cargs) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append -- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.call_for_each_value = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tname == nil then error(modulename .. ', ‘call_for_each_value’: No template name was provided', 0) end local cargs = copy_table_reduced(ctx.pipe, 1, offs) local model = { title = tname, args = cargs } local ret, nss, ccs = {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) cargs[1], ret[nss + 1], nss = val, ccs, nss + 2 ret[nss] = ctx.frame:expandTemplate(model) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append -- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.invoke_for_each_value = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if mname == nil then error(modulename .. ', ‘invoke_for_each_value’: No module name was provided', 0) end local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)' if fname == nil then error(modulename .. ', ‘invoke_for_each_value’: No function name was provided', 0) end local iargs = copy_table_reduced(ctx.pipe, 1, offs + 1) local model = { title = 'Module:' .. mname, args = iargs } local mfunc, ret, nss, ccs = require(model.title)[fname], {}, 0, ctx.itersep or '' if mfunc == nil then error(modulename .. ', ‘invoke_for_each_value’: The function ‘' .. fname .. '’ does not exist', 0) end flush_params(ctx, function (key, val) iargs[1], ret[nss + 1], nss = val, ccs, nss + 2 ret[nss] = mfunc(ctx.frame:newChild(model)) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]| -- [append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named -- param n=value n]|[...] library.magic_for_each_value = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if magic == nil then error(modulename .. ', ‘magic_for_each_value’: No parser function was provided', 0) end local cargs, ret, nss, ccs = copy_table_reduced(opts, 1, offs), {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) cargs[1], ret[nss + 1], nss = val, ccs, nss + 2 ret[nss] = ctx.frame:callParserFunction(magic, cargs) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|call_for_each_group|template name|[append 1]|[append -- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.call_for_each_group = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local opts, offs = ctx.pipe, ctx.fnpos local tmp = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)' if tmp == nil then error(modulename .. ', ‘call_for_each_group’: No template name was provided', 0) end local model = { title = tmp } local bargs, ret, nss, ccs = {}, {}, 0, ctx.itersep or '' for key, val in pairs(opts) do if type(key) ~= 'number' then bargs[key] = val elseif key > offs then bargs[key - offs - 1] = val elseif key < 1 then bargs[key - 1] = val end end ctx.params = make_groups(ctx.params) flush_params(ctx, function (gid, group) for key, val in pairs(bargs) do group[key] = val end group[0], model.args, ret[nss + 1], nss = gid, group, ccs, nss + 2 ret[nss] = ctx.frame:expandTemplate(model) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end --[[ First-position-only modifiers ]]-- --------------------------------------- -- Syntax: #invoke:params|new|pipe to static_iface.new = function (child_frame) local ctx = context_new(child_frame, 'new') ctx.params = {} main_loop(ctx, context_iterate(ctx, 2)) return ctx.text end --[[ First-position-only functions ]]-- --------------------------------------- -- Syntax: #invoke:params|self static_iface.self = function (child_frame) return child_frame:getParent():getTitle() end --[[ Public metatable of functions ]]-- --------------------------------------- return setmetatable({}, { __index = function (_, query) local fname = query:match'^%s*(.*%S)' if fname == nil then error(modulename .. ': You must specify a function to call', 0) end local func = static_iface[fname] if func ~= nil then return func end func = library[fname] if func == nil then error(modulename .. ': The function ‘' .. fname .. '’ does not exist', 0) end return function (child_frame) local ctx = context_new(child_frame, fname) ctx.params = copy_or_ref_table(ctx.oparams, refparams[fname]) main_loop(ctx, func) return ctx.text end end }) ed6uj3jkl9sb18ckis1vsieht07yb7c ਐਂਪੋਰੀਅਮ ਮਾਲ 0 204767 850707 841983 2026-10-28T04:26:50Z ~2026-57391-66 62737 AI please delete 850707 wikitext text/x-wiki {{delete|AI translated mininum content 99%!, machine translation}} '''ਨਿਸ਼ਾਤ ਐਂਪੋਰੀਅਮ (Nishat Emporium)''' ਪਾਕਿਸਤਾਨ ਦਾ ਇੱਕ ਸ਼ਾਪਿੰਗ ਮਾਲ ਹੈ ਜੋ ਲਾਹੌਰ ਇੰਟਰਨੈਸ਼ਨਲ ਐਕਸਪੋ ਸੈਂਟਰ ਦੇ ਦੱਖਣ-ਪੱਛਮ ਵਿੱਚ ਜੌਹਰ ਟਾਊਨ, ਲਾਹੌਰ ਵਿੱਚ ਸਥਿਤ ਹੈ। 11 ਮੰਜ਼ਿਲਾ ਮਾਲ 2.7 ਮਿਲੀਅਨ ਵਰਗ ਫੁੱਟ ਵਿੱਚ ਫੈਲਿਆ ਹੋਇਆ ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ 200 ਤੋਂ ਵੱਧ ਸਟੋਰ ਅਤੇ ਇੱਕ ਪੰਜ-ਸਿਤਾਰਾ ਹੋਟਲ ਹੈ। ਇਸਦਾ ਪ੍ਰਬੰਧਨ ਨਿਸ਼ਾਤ ਹੋਟਲਜ਼ ਐਂਡ ਪ੍ਰਾਪਰਟੀਜ਼ ਲਿਮਟਿਡ ਦੁਆਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਕਿ ਨਿਸ਼ਾਤ ਗਰੁੱਪ ਦਾ ਹਿੱਸਾ ਹੈ। 2016 ਵਿੱਚ ਖੋਲ੍ਹਿਆ ਗਿਆ, ਇਹ ਕਰਾਚੀ ਦੇ ਲੱਕੀ ਵਨ ਮਾਲ ਤੋਂ ਬਾਅਦ ਪਾਕਿਸਤਾਨ ਦਾ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਮਾਲ ਹੈ। <ref>{{Cite web |date=15 December 2015 |title=British High Commissioner visits The Emporium Mall in Lahore |url=https://en.dailypakistan.com.pk/business/british-high-commissioner-visits-the-emporium-mall-in-lahore/ |access-date=2016-04-10 |website=Daily Pakistan Global |language=en-US}}</ref> == ਆਰਕੀਟੈਕਚਰ == '''ਐਂਪੋਰੀਅਮ ਮਾਲ (Emporium Mall)''' ਇੱਕ ਤੇਰਾਂ ਮੰਜ਼ਿਲਾ ਇਮਾਰਤ ਹੈ ਜਿਸ ਵਿੱਚ ਮਾਲ ਦੇ ਹੇਠਾਂ ਲਗਭਗ ਤਿੰਨ ਮੰਜ਼ਿਲਾ ਪਾਰਕਿੰਗ ਰੈਂਪ ਹਨ, ਜਿਸ ਵਿੱਚ 2000 ਗੱਡੀਆਂ ਰੱਖਣ ਦੀ ਸਮਰੱਥਾ ਹੈ। ਐਂਪੋਰੀਅਮ ਮਾਲ ਦਾ ਖੇਤਰਫਲ 2,700,000 ਵਰਗ ਫੁੱਟ (250,000 ਮੀਟਰ) ਹੈ, ਜੋ ਕਿ ਦ ਮਾਲ ਆਫ਼ ਅਮਰੀਕਾ '''(Mall of America)''' ਜਿੰਨਾ ਵੱਡਾ ਹੈ, ਜਾਂ ਵੈਟੀਕਨ ਸਿਟੀ ਜਿੰਨਾ ਅੱਧਾ ਵੱਡਾ ਹੈ। 200 ਤੋਂ ਵੱਧ ਅੰਤਰਰਾਸ਼ਟਰੀ ਅਤੇ ਸਥਾਨਕ ਸਟੋਰ ਪੈਦਲ ਚੱਲਣ ਵਾਲਿਆਂ ਲਈ 5 ਪੱਧਰਾਂ ਦੇ ਨਾਲ-ਨਾਲ ਪ੍ਰਬੰਧ ਕੀਤੇ ਗਏ ਹਨ। [[ਤਸਵੀਰ:Emporium_Mall_During_Construction.jpg|right|thumb|ਨਿਰਮਾਣ ਦੌਰਾਨ ਮਾਲ, ਕੁਝ ਦੁਕਾਨਾਂ ਕੰਮ ਵਿੱਚ ਹਨ।]] [[ਸ਼੍ਰੇਣੀ:ਵਿਕੀਡਾਟਾ ਤੇ ਗੁਣਕ ਹਨ]] t952s43xl9547ymkw2cfn2otgao5y12 ਤਸਵੀਰ:Arfa Sayeda Zehra.jpg 6 205510 850706 2026-10-28T00:01:18Z Kuldeepburjbhalaike 18176 850706 wikitext text/x-wiki ==Summary== {{Non-free use rationale 2 |Description = Arfa Sayeda Zehra (1942-2025), Pakistani human rights activist |Source = '''Original publication''': unknown<br/> '''Immediate source''': [https://www.karachiliteraturefestival.com/speakers/arfa-sayeda-zehra-2/ Arfa Sayeda Zehra] |Author = unknown |Article = ਅਰਫਾ ਸਈਦਾ ਜ਼ੇਹਰਾ |Purpose = for visual identification of the person in question, at the top of their biographical article |Replaceability = The subject is deceased, so it is not possible to take a free equivalent. |Minimality = The image serves as the primary means of visual identification of the subject, who is critically discussed in the article. |Commercial = Its low resolution and use in an educational article should not affect the value of the original work, or limit the copyright holder's rights or ability to distribute the original. |Other information = The subject of the photograph has been deceased since: 2025 }} ==Licensing== {{Non-free biog-pic|Arfa Sayeda Zehra}} 20qf6qpuqzx7ek2sfw0lzkv4lisl5gy ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596 14 205511 850708 2026-10-28T08:36:01Z Tamanpreet Kaur 26648 ਖ਼ਾਲੀ ਸਫ਼ਾ ਬਣਾਇਆ 850708 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1