Tree-sitter १०१: शुरुआती के लिए एक पत्ते से जड़ तक की मार्गदर्शिका

सारणी की सूची

हमारी Tree-sitter श्रृंखला के पहले भाग में आपका स्वागत है! इस श्रृंखला में, हम आपको Tree-sitter पार्सिंग फ्रेमवर्क की शक्तिशाली दुनिया से परिचित कराएंगे। हमारा ध्यान, कम से कम शुरू में, आपको मौजूदा व्याकरणों का उपयोग करके विभिन्न प्रोग्रामिंग भाषाओं में संचालित होने वाले प्रोग्राम विश्लेषण उपकरणों का निर्माण करने में मदद करना है। हम अभी के लिए नई प्रोग्रामिंग भाषाओं के लिए नए व्याकरण बनाने में गहराई से नहीं जाएंगे। तो, आइए शुरू से शुरुआत करें और आपको Tree-sitter के साथ शुरुआत करवाएं।

Tree-sitter स्थापित करना

आपकी Tree-sitter यात्रा का पहला कदम Tree-sitter कमांड-लाइन प्रोग्राम को चलाने योग्य बनाना है। यहां कुछ विधियां हैं जिनमें से आप चुन सकते हैं:

Native Package Manager

यदि आप एक ऐसे प्लेटफॉर्म का उपयोग कर रहे हैं जिसमें Tree-sitter इसके नेटिव पैकेज मैनेजर में उपलब्ध है, तो आप इसे Tree-sitter स्थापित करने के लिए उपयोग कर सकते हैं। उदाहरण के लिए, आर्च लिनक्स पर, आप ‘pacman’ का उपयोग कर सकते हैं:

$ sudo pacman -S tree-sitter
$ tree-sitter --version

इसी तरह, macOS पर, आप Homebrew का उपयोग कर सकते हैं:

$ brew install tree-sitter
$ tree-sitter --version

प्रीकंपाइल्ड बाइनरी

यदि आपके प्लेटफॉर्म पर Tree-sitter पैकेज मैनेजर में नहीं है या उपलब्ध संस्करण पुराना है, तो आप GitHub पर Tree-sitter रिलीज़ पेज से एक प्रीकंपाइल्ड बाइनरी डाउनलोड कर सकते हैं।

यहां बताया गया है कि आप इसे कैसे कर सकते हैं:

$ curl -OL https://github.com/tree-sitter/tree-sitter/releases/download/v0.20.8/tree-sitter-linux-x64.gz
$ mkdir -p $HOME/bin
$ gunzip tree-sitter-linux-x64.gz > $HOME/bin/tree-sitter
$ chmod u+x $HOME/bin/tree-sitter
$ export PATH=$HOME/bin:$PATH
$ tree-sitter --version

नोट: प्रदान किया गया रिलीज़ संस्करण आप इसे पढ़ते समय पुराना हो सकता है, यहाँ से नवीनतम प्राप्त करें: -> Tree-sitter रिलीज़

NPM पैकेज

यदि आप NPM का उपयोग करना पसंद करते हैं, तो आप ’tree-sitter-cli’ पैकेज के माध्यम से Tree-sitter कमांड-लाइन प्रोग्राम स्थापित कर सकते हैं:

$ npm install tree-sitter-cli
$ npx tree-sitter --version

यह विकल्प विशेष रूप से तब उपयोगी होता है जब आप व्याकरण विकास पर काम कर रहे होते हैं क्योंकि इससे आप CI बिल्ड के हिस्से के रूप में Tree-sitter को शामिल कर सकते हैं।

एक व्याकरण स्थापित करना

अब जब आपके पास Tree-sitter प्रोग्राम स्थापित है, तो यह समय है एक व्याकरण सेटअप करने का। डिफ़ॉल्ट रूप से, Tree-sitter कोई भाषा व्याकरण स्थापित नहीं करता क्योंकि यह नहीं जानता कि आप किस भाषा के साथ काम करना चाहते हैं। उदाहरण के लिए, Tree-sitter Python व्याकरण को एक उदाहरण के रूप में स्थापित करें।

सबसे पहले, आपको Tree-sitter के लिए एक कॉन्फ़िगरेशन फ़ाइल जेनरेट करना होगा। इस फ़ाइल ने Tree-sitter को बताती है कि वह भाषा व्याकरण कैसे प्राप्त करे। निम्नलिखित कमांड को चलाएं ताकि कॉन्फ़िगरेशन फ़ाइल जेनरेट हो सके:

$ tree-sitter init-config

इससे एक कॉन्फ़िगरेशन फ़ाइल ~/.tree-sitter/config.json पर बनाई जाएगी। इस फ़ाइल को अपने टेक्स्ट संपादक में खोलें। फ़ाइल में, आपको एक पार्सर-निर्देशिका खंड मिलेगा:

{
  "parser-directories": [
    "/home/dcreager/github",
    "/home/dcreager/src",
    "/home/dcreager/source"
  ]
}

आप किसी भी डायरेक्टरी को चुन सकते हैं जिसमें आप अपनी व्याकरण परिभाषाएँ स्टोर करना चाहते हैं। Tree-sitter इन स्थानों में सबडायरेक्टरीज़ के लिए खोजेगा जिनके नाम tree-sitter-[भाषा] के पैटर्न के साथ मेल खाते हैं, और जब आवश्यक हो, वह उन व्याकरणों को स्वचालित रूप से जनरेट और कंपाइल करेगा।

Tree-sitter Python व्याकरण के साथ काम करने के लिए, इसे कॉन्फ़िग फ़ाइल में सूचीबद्ध निर्देशिकाओं में से किसी में क्लोन करें। इस उदाहरण में, हम ~/src का उपयोग करेंगे:

$ mkdir -p ~/src
$ cd ~/src
$ git clone https://github.com/tree-sitter/tree-sitter-python

कुछ कोड का पार्सिंग

Python व्याकरण स्थापित होने पर, आप अब Tree-sitter कमांड-लाइन टूल का उपयोग करके Python कोड को पार्स कर सकते हैं। इसे एक उदाहरण Python स्क्रिप्ट पर परीक्षण करते हैं:

$ cat example.py
import utils

def add_four(x):
    return x + 4

print(add_four(5))

$ tree-sitter parse example.py

आपको Python कोड के लिए एक पार्स ट्री दिखाई देना चाहिए। Tree-sitter कोड को एक संरचित वृक्ष में विभाजित करता है, जिससे आपको कोड की सिंटेक्स को विश्लेषण और परिवर्तन करना आसान होता है।

कृपया और अधिक अन्य भाषाओं के उदाहरण फ़ाइलों को पार्स करके और जाँच करके आगे अन्वेषित करें। सिर्फ कॉन्फ़िगरेशन फ़ाइल में विशिष्ट किए गए डायरेक्टरी में संबंधित भाषा व्याकरण क्लोन करें और tree-sitter parse कमांड का उपयोग करके कोड का विश्लेषण करें।

यह था हमारी Tree-sitter की शुरुआत के लिए शुरुआती मार्गदर्शिका। इस श्रृंखला के आगामी पोस्ट्स में, हम Tree-sitter को विभिन्न प्रोग्रामिंग भाषा विश्लेषण कार्यों के लिए और भी गहराई में जाने की कोशिश करेंगे। तो, और भी रोमांचक Tree-sitter के साथ साहसिक यात्राओं के लिए बने रहें!


comments powered by Disqus