इसके माध्यम से साझा किया गया


अभिव्यक्ति व्याकरण

नोट

Microsoft Power Fx कैनवास ऐप्स के लिए सूत्र भाषा का नया नाम है. ये आलेख प्रगति पर काम हैं जैसा कि हम कैनवास ऐप्स से भाषा निकालते हैं, इसे अन्य Microsoft Power Platform उत्पादों के साथ एकीकृत करते हैं, और इसे खुले स्रोत के रूप में उपलब्ध कराते हैं. भाषा के परिचय के लिए Microsoft Power Fx अवलोकन से शुरू करें.

Microsoft Power Fx ऐसे फ़ार्मूलों पर आधारित है जो नाम को अभिव्यक्ति से जोड़ते हैं. जैसे Excel वर्कशीट में, अभिव्यक्ति परिवर्तन के लिए इनबाउंड निर्भरता के रूप में, अभिव्यक्ति की पुनर्गणना होती है और नाम के मान में बदलाव होता है, संभवतः अन्य सूत्रों में पुनर्गणना को कास्केड करता है.

यह व्याकरण सूत्र के अभिव्यक्ति भाग को सम्मिलित करता है. एक सूत्र बनाने के लिए एक नाम की अनिवार्यता इस बात पर निर्भर करती है कि Power Fx कैसे एकीकृत है. वर्कशीट में, बाइंडिंग सिंटैक्स उजागर नहीं होता है, यह उस स्थान से निहित होता है जहां अभिव्यक्ति लिखी जाती है—उदाहरण के लिए, A1 सेल में =B1 दर्ज करना. कुछ मामलों में, किसी अनिवार्यता की आवश्यकता नहीं होती है और Power Fx का उपयोग अभिव्यक्ति मानांकनकर्ता के रूप में किया जाता है, उदाहरण के लिए डेटाबेस तालिका के गणना किए गए कॉलमों का समर्थन करने में. Power Apps के लिए, Power Apps Studio में Power Apps Studio के बाहर उपयोग के लिए YAML पर आधारित क्रमांकन प्रारूप के साथ काम करने पर बाइंडिंग निहित है.

व्याकरण की परिपाटी

व्याकरण उत्पादनों का उपयोग करके लेक्सिकल और सिंटैक्टिक व्याकरण प्रस्तुत किए जाते हैं. प्रत्येक व्याकरण प्रस्तुति एक गैर-टर्मिनल प्रतीक और गैर-टर्मिनल प्रतीकों के संभावित विस्तारों को गैर-टर्मिनल या टर्मिनल प्रतीकों के अनुक्रमों में परिभाषित करता है. व्याकरण प्रस्तुतियों में, गैर-टर्मिनल प्रतीकों को इटालिक में दिखाया जाता है और टर्मिनल प्रतीकों को एक निश्चित-चौड़ाई वाले अक्षर में दिखाया जाता है.

व्याकरण प्रस्तुति की पहली पंक्ति, गैर-टर्मिनल प्रतीक का नाम है जिसे परिभाषित किया जा रहा है, जिसके बाद एक विरामचिह्न है. प्रत्येक क्रमिक इंडेंटेड लाइन में गैर-टर्मिनल प्रतीक का संभावित विस्तार होता है, जिसे गैर-टर्मिनल या टर्मिनल प्रतीकों के अनुक्रम के रूप में दिया जाता है. उदाहरण के लिए, प्रस्तुति:

   ग्लोबल पहचानकर्ता:
     [@ पहचानकर्ता]

एक GlobalIdentifier को परिभाषित करता है जिसमें टोकन [@, इसके बाद एक पहचानकर्ता, इसके बाद टोकन ] होते हैं.

जब गैर-टर्मिनल प्रतीक का एक से अधिक संभावित विस्तार हो, तो विकल्प अलग-अलग लाइनों पर सूचीबद्ध होते हैं. एक वैकल्पिक प्रतीक को इंगित करने के लिए सबस्क्रिप्ट "opt" का उपयोग किया जाता है. उदाहरण के लिए, प्रस्तुति:

   फ़ंक्शनकॉल:
     फ़ंक्शन पहचानकर्ता(फ़ंक्शन तर्कऑप्ट)

के लिए आशुलिपि है:

   फ़ंक्शन कॉल:
     फ़ंक्शन पहचानकर्ता()
     फ़ंक्शन पहचानकर्ता(फ़ंक्शन तर्क)

वैकल्पिक आम तौर अलग-अलग लाइनों पर सूचीबद्ध होते हैं, हालांकि ऐसे मामलों में जहां कई विकल्प हैं, वाक्यांश "का एक" एकल लाइन पर दिए गए विस्तार की सूची से पहले हो सकता है. यह बस अलग-अलग लाइनों पर प्रत्येक विकल्प को सूचीबद्ध करने के लिए शॉर्टहैंड है.

उदाहरण के लिए, प्रस्तुति:

   दशमलव अंक:इनमें से एक
    0123456789

के लिए आशुलिपि है:

   दशमलव अंक:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

शाब्दिक विश्लेषण

शाब्दिक-इकाई उत्पादन Power Fx अभिव्यक्ति के लिए शाब्दिक व्याकरण को परिभाषित करता है. हर वैध Power Fx अभिव्यक्ति इस व्याकरण के अनुरूप है.

   अभिव्यक्ति इकाई:
     अभिव्यक्ति तत्वऑप्ट

   अभिव्यक्ति तत्व:
     अभिव्यक्तितत्व
     अभिव्यक्ति तत्वअभिव्यक्ति तत्वऑप्ट

   अभिव्यक्ति तत्व:
     श्वेत रिक्ति
     टिप्पणी

शाब्दिक स्तर पर, Power Fx अभिव्यक्ति में श्वेत रिक्ति, टिप्पणी, और टोकन अवयवों की एक स्ट्रीम होती है. इनमें से प्रत्येक प्रस्तुतियों को निम्नलिखित अनुभागों में शामिल किया गया है. केवल टोकन अवयव वाक्य रचना संबंधी व्याकरण में महत्वपूर्ण हैं.

श्वेत रिक्ति

व्हाइटस्पेस का उपयोग Power Apps दस्तावेज़ के भीतर टिप्पणियों और टोकनों को अलग करने के लिए किया जाता है.

   रिक्त स्थान:
    कोई भी यूनिकोड स्पेस विभाजक (Zs वर्ग)
    कोई भी यूनिकोड लाइन विभाजक (Zl वर्ग)
    कोई भी यूनिकोड पैराग्राफ़ विभाजक (Zp वर्ग)
    क्षैतिज टैब संकेताक्षर (U+0009)
    लाइन फ़ीड संकेताक्षर (U+000A)
    उध्वार्धर टैब संकेताक्षर (U+000B)
    फॉर्म फ़ीड संकेताक्षर (U+000C)
    कैरिज रिटर्न संकेताक्षर (U+000D)
    अगली पंक्ति के संकेताक्षर (U+0085)

टिप्पणियाँ

टिप्पणियों के दो रूप समर्थित हैं:

  • एकल लाइन टिप्पणियां जो // संकेताक्षरों के साथ शुरू होते हैं और स्रोत रेखा के अंत तक विस्तारित होते हैं.
  • सीमित टिप्पणियां जो /* संकेताक्षरों के साथ शुरू होती हैं और */ संकेताक्षरों के साथ खत्म होती हैं. सीमांकित टिप्पणियां कई लाइनों तक फैली हो सकती हैं.

   टिप्पणी:
     सीमांकितटिप्पणी
     सिंगललाइनटिप्पणी

   सिंगललाइनटिप्पणी:
     // SingleLineCommentCharactersऑप्ट

   एकल पंक्ति टिप्पणी वर्ण:
     सिंगललाइनटिप्पणीचरित्र
     सिंगललाइनकमेंटकैरेक्टरसिंगललाइनकमेंटकैरेक्टरऑप्ट

   सिंगललाइनकमेंटकैरेक्टर:
    NewLineCharacter को छोड़कर कोई भी यूनिकोड वर्ण

   सीमांकित टिप्पणी:
     /* सीमांकित टिप्पणी वर्णopt*/

   सीमांकित टिप्पणी वर्ण:
     सीमांकित टिप्पणी वर्ण कोई तारांकन चिह्न नहींसीमांकित टिप्पणी वर्णopt
     * सीमांकितटिप्पणीबादतारांकनअक्षर

   सीमांकित टिप्पणी तारांकन चिह्न के बाद वर्ण:
     सीमांकित टिप्पणी नो स्लैश एस्टरिस्क कैरेक्टरसीमांकित टिप्पणी कैरेक्टरऑप्ट
     * सीमांकितटिप्पणीबादतारांकनअक्षर

   सीमांकित टिप्पणी वर्ण कोई तारांकन चिह्न नहीं:
    * (तारक) को छोड़कर कोई भी यूनिकोड संकेताक्षर

   सीमांकितटिप्पणीनहींस्लैशतारांकनअक्षर:
    एक / (स्लैश) या * (तारक) को छोड़कर कोई भी यूनिकोड संकेताक्षर

टिप्पणियां स्थिर नहीं हैं. संकेताक्षर अनुक्रम /* और */ का एक एकल लाइन टिप्पणी के भीतर कोई विशेष अर्थ नहीं है और संकेताक्षर अनुक्रम // और /* का एक सीमित-टिप्पणी के भीतर कोई विशेष अर्थ नहीं है.

टिप्पणियों को टेक्स्ट-लिटरल स्ट्रिंग के अंदर संसाधित नहीं की जाती हैं.

निम्नलिखित उदाहरण में दो सीमित टिप्पणियां शामिल हैं:

/* Hello, world
*/
"Hello, world"    /* This is an example of a text literal */

निम्नलिखित उदाहरणों में तीन एकल-लाइन टिप्पणियां शामिल हैं:

// Hello, world
//
"Hello, world"    // This is an example of a text literal

यथाशब्द

एक लिटरल, मान के स्रोत कोड का एक प्रतिनिधित्व है.

   शाब्दिक:
     तार्किकशाब्दिक
     संख्याशाब्दिक
     टेक्स्ट लिटरल

तार्किक यथाशब्द

एक तार्किक लिटरल का उपयोग मानों को सही और गलत लिखने के लिए किया जाता है और एक तार्किक मान पैदा करता है.

   लॉजिकललिटरल:इनमें से एक
    truefalse

संख्या यथाशब्द

एक संख्या लिटरल का उपयोग संख्यात्मक मान लिखने और संख्या मान उत्पन्न करने के लिए किया जाता है.

   संख्या शाब्दिक:
     दशमलव अंकघातांक भागopt
     दशमलव अंकदशमलव विभाजकदशमलव अंकoptघातांक भागopt
     दशमलव विभाजकदशमलव अंकघातांक भागopt

   दशमलव अंक:
     दशमलव अंक
     दशमलव अंकदशमलव अंक

   दशमलव अंक:इनमें से एक
    0123456789

   घातांक भाग:
     घातांकसूचकचिह्नऑप्टदशमलव अंक

   प्रतिपादक संकेतक:में से एक
    eE

   साइन:इनमें से एक
    +-

पाठ यथाशब्द

एक टेक्स्ट लिटरल का उपयोग यूनिकोड वर्णों के अनुक्रम को लिखने और एक टेक्स्ट मान उत्पन्न करने के लिए किया जाता है. टेक्स्ट लिटरल दोहरे कोटेशन चिह्नों में बंद होते हैं. टेक्स्ट मान में दोहरे कोटेशन चिह्नों को शामिल करने के लिए, दोहरे कोटेशन चिह्नों को दोहराएं, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

"The ""quoted"" text" // The "quoted" text

   टेक्स्ट लिटरल:
     " टेक्स्ट लिटरल कैरेक्टरऑप्ट"

   टेक्स्ट लिटरल कैरेक्टर:
     टेक्स्ट लिटरल कैरेक्टरटेक्स्ट लिटरल कैरेक्टरऑप्ट

   टेक्स्ट लिटरल कैरेक्टर:
     टेक्स्टकैरेक्टरनहींडबलकोट
     डबलकोटएस्केपसीक्वेंस

   टेक्स्टकैरेक्टरनोडबलकोट:
    दोहरे उद्धरण को छोड़कर कोई भी यूनिकोड कोड पॉइंट

   डबलकोटएस्केपसीक्वेंस:
    ""

आइडेंटिफ़ायर

एक पहचानकर्ता एक मान को संदर्भित करने के लिए उपयोग किया जाने वाला नाम है. पहचानकर्ता या तो नियमित पहचानकर्ता या एकल उद्धृत पहचानकर्ता हो सकते हैं.

   पहचानकर्ता:
     पहचानकर्ता नामलेकिननहींऑपरेटरयासंदर्भ कीवर्ड

   पहचानकर्ता नाम:
     पहचानकर्ताप्रारंभचरित्रपहचानकर्ताअक्षरजारी रखेंopt
     ' सिंगलकोटेडआइडेंटिफायर'

   पहचानकर्तास्टार्टकैरेक्टर:
     अक्षरचरित्र
    _

   पहचानकर्ता जारी रखें वर्ण:
     पहचानकर्ताप्रारंभचरित्र
     दशमलवअंकवर्ण
     कनेक्टिंगकैरेक्टर
     संयोजनचरित्र
     फ़ॉर्मेटिंगचरित्र

   पहचानकर्ता जारी रखें वर्ण:
     पहचानकर्ता जारी रखें वर्णपहचानकर्ता जारी रखें वर्णopt

   अक्षरवर्ण:
    वर्ग अपरकेस अक्षर (Lu) या लोअरकेस अक्षर (Ll) का कोई भी यूनिकोड अक्षर
    वर्ग टाइटलकेस अक्षर (Lt) का कोई भी यूनिकोड अक्षर
    वर्ग अक्षर संशोधक (Lm) या अक्षर अन्य (Lo) का कोई भी यूनिकोड अक्षर
     संख्या अक्षर (Nl) वर्ग का कोई भी यूनिकोड अक्षर

   वर्ण संयोजन:
     वर्ग नॉन-स्पेसिंग चिह्न (Mn) या स्पेसिंग कॉम्बिनेशन चिह्न (Mc) का कोई भी यूनिकोड अक्षर

   दशमलव अंक वर्ण:
     दशमलव अंक (Nd) वर्ग का कोई भी यूनिकोड अक्षर

   कनेक्टिंग कैरेक्टर:
     कनेक्टर विराम चिह्न (Pc) वर्ग का कोई भी यूनिकोड अक्षर

   स्वरूपण वर्ण:
     फॉर्मेट (Cf) वर्ग का कोई भी यूनिकोड अक्षर

एकल उद्धृत पहचानकर्ता

एकल कोट किए गए पहचानकर्ता में यूनिकोड अक्षरों के किसी भी अनुक्रम को पहचानकर्ता के रूप में उपयोग किया जा सकता है, जिसमें कीवर्ड, व्हाइटस्पेस, टिप्पणियां और ऑपरेटर शामिल हैं. एकल कोट किए गए चिह्न अक्षर दो एकल कोटेशन चिह्नों के एस्केप अनुक्रम के साथ समर्थित हैं.

   एकलउद्धृतपहचानकर्ता:
     एकलउद्धृतपहचानकर्ताअक्षर

   एकलउद्धृतपहचानकर्ताअक्षर:
     सिंगलकोटेडआइडेंटिफायरकैरेक्टरसिंगलकोटेडआइडेंटिफायरकैरेक्टरऑप्ट

   एकलउद्धृतपहचानकर्ताचरित्र:
     टेक्स्टअक्षरकोईएकलउद्धरण
     सिंगलकोटएस्केपसीक्वेंस

   टेक्स्टकैरेक्टर्सनोसिंगलकोट:
    ' (U +0027) को छोड़कर कोई भी यूनिकोड वर्ण

   सिंगलकोटएस्केपसीक्वेंस:
    ''

अस्पष्ट पहचानकर्ता

   अस्पष्ट पहचानकर्ता:
     टेबलकॉलमपहचानकर्ता
     ग्लोबलआइडेंटिफायर

   तालिका स्तंभ पहचानकर्ता:
     पहचानकर्ता[@पहचानकर्ता]

   वैश्विक पहचानकर्ता:
     [@ पहचानकर्ता]

संदर्भ कीवर्ड

   संदर्भ कीवर्ड:
    Parent
    Self
    ThisItem
    ThisRecord

केस सेंसिटिविटी

Power Apps पहचानकर्ता मामले के प्रति संवेदनशील होते हैं. एक फॉर्मूला लिखे जाने पर ऑथरिंग टूल स्वचालित रूप से उन्हें सही स्थिति में बदल देगा.

विभाजक

   दशमलव विभाजक:
     . (डॉट) उन भाषाओं के लिए जो दशमलव संख्याओं के लिए विभाजक के रूप में डॉट का उपयोग करती हैं, उदाहरण के लिए 1.23
     , (अल्पविराम) उन भाषाओं के लिए जो दशमलव संख्याओं के लिए अल्पविराम का उपयोग विभाजक के रूप में करती हैं, उदाहरण के लिए 1,23

   सूची विभाजक:
     , (अल्पविराम) यदि दशमलव विभाजक है . (बिंदु)
     ; (अर्धविराम) यदि दशमलव विभाजक है , (अल्पविराम)

   चेनिंग सेपरेटर:
     ; (अर्धविराम) यदि दशमलव विभाजक है . (बिंदु)
     ;; (डबल सेमीकोलन) यदि दशमलव विभाजक है , (अल्पविराम)

ऑपरेटर

ऑपरेटरों का उपयोग सूत्रों में वैसे ऑपरेशनों का वर्णन करने के लिए किया जाता है जिनमें एक या एक से अधिक ऑपरेंड्स से जुड़े होते है. उदाहरण के लिए, अभिव्यक्ति a + b दो ऑपरेंड्स a और b को जोड़ने के लिए + ऑपरेटर का उपयोग करती है.

   ऑपरेटर:
     बाइनरीऑपरेटर
     बाइनरीऑपरेटररिक्वायरसव्हाइटस्पेस
     प्रीफ़िक्सऑपरेटर
     प्रीफिक्सऑपरेटररिक्वायरसव्हाइटस्पेस
     पोस्टफिक्सऑपरेटर

   बाइनरी ऑपरेटर:इनमें से एक
    =<<=>>=<>
    +-*/^
    &
    &&||
    inexactin

   बाइनरीऑपरेटररिक्वायरसव्हाइटस्पेस:
     And श्वेत रिक्ति
     Or श्वेत रिक्ति

   उपसर्ग ऑपरेटर:
    !

   प्रीफिक्सऑपरेटररिक्वायरसव्हाइटस्पेस:
     Not श्वेत रिक्ति

   पोस्टफिक्सऑपरेटर:
    %

संदर्भ ऑपरेटर

   संदर्भ ऑपरेटर:इनमें से एक
    .!

विषय संदर्भ

   संदर्भ:
     आधार संदर्भ
     BaseReferenceReferenceOperatorReferenceList

   आधार संदर्भ:
     पहचानकर्ता
     अस्पष्ट पहचानकर्ता
     संदर्भकीवर्ड

   संदर्भग्रंथ सूची:
     पहचानकर्ता
     पहचानकर्तासंदर्भ ऑपरेटरसंदर्भ सूची

इनलाइन रिकॉर्ड

   इनलाइन रिकॉर्ड:
     { इनलाइनरिकॉर्डलिस्टऑप्ट}

   इनलाइन रिकॉर्ड सूची:
     पहचानकर्ता:अभिव्यक्ति
     पहचानकर्ता:अभिव्यक्तिसूचीविभाजकइनलाइनरिकॉर्डसूची

इनलाइन टेबल

   इनलाइन तालिका:
     [ इनलाइनटेबलसूचीऑप्ट]

   इनलाइनटेबलसूची:
     अभिव्यक्ति
     अभिव्यक्तिसूचीविभाजकइनलाइनतालिकासूची

Expression

   अभिव्यक्ति:
     शाब्दिक
     संदर्भ
     इनलाइनरिकॉर्ड
     इनलाइनटेबल
     फंक्शनकॉल
     ( अभिव्यक्ति)
     प्रीफ़िक्सऑपरेटरअभिव्यक्ति
     अभिव्यक्तिपोस्टफ़िक्सऑपरेटर
     अभिव्यक्तिबाइनरीऑपरेटरअभिव्यक्ति

श्रृंखलाबद्ध अभिव्यक्तियां

   चेन्डएक्सप्रेशन:
     अभिव्यक्ति
     अभिव्यक्तिचेनिंगसेपरेटरचेनडएक्सप्रेशनऑप्ट

फ़ंक्शन कॉल

   फंक्शन कॉल:
     फ़ंक्शन पहचानकर्ता(फ़ंक्शन तर्कऑप्ट)

   फ़ंक्शन पहचानकर्ता:
     पहचानकर्ता
     पहचानकर्ता.फ़ंक्शन पहचानकर्ता

   फ़ंक्शन तर्क:
     चेन्डएक्सप्रेशन
     चेन्डएक्सप्रेशनलिस्टसेपरेटरफ़ंक्शनआर्ग्यूमेंट्स