$lang['tuto'] = "টিউটোরিয়াল"; ?>$lang['tuto'] = "টিউটোরিয়াল"; ?> ANTLR/Grammars-v4 ব্যবহার করে

ANTLR/Grammars-v4 ব্যবহার করে টাইপস্ক্রিপ্টে DSL পার্স করার জন্য পরীক্ষা চালানো হচ্ছে

ANTLR/Grammars-v4 ব্যবহার করে টাইপস্ক্রিপ্টে DSL পার্স করার জন্য পরীক্ষা চালানো হচ্ছে
ANTLR/Grammars-v4 ব্যবহার করে টাইপস্ক্রিপ্টে DSL পার্স করার জন্য পরীক্ষা চালানো হচ্ছে

ANTLR ব্যবহার করে কাস্টম DSL-এর জন্য টাইপস্ক্রিপ্ট পার্সিং মাস্টারিং

টাইপস্ক্রিপ্ট ব্যাকরণের সাথে সাদৃশ্যপূর্ণ বেসপোক ডোমেন-নির্দিষ্ট ভাষা (DSLs) এর সাথে কাজ করার জন্য শক্তিশালী পার্সিং টুলের প্রয়োজন হয়। এই ক্ষেত্রে, ANTLR, একটি শক্তিশালী পার্সার জেনারেটর, লেক্সার এবং পার্সার উপাদান তৈরি করতে সাহায্য করতে পারে, এই ধরনের ডিএসএলগুলিকে টাইপস্ক্রিপ্ট অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি (এএসটি) এ রূপান্তরিত করার অনুমতি দেয়। যাইহোক, টাইপস্ক্রিপ্টে এটি প্রয়োগ করা কিছু জটিলতা উপস্থাপন করে।

ANTLR/Grammars-v4 সংগ্রহস্থলে ব্যাকরণ ব্যবহার করে, বিকাশকারীরা.g4 ফাইল থেকে পার্সার এবং লেক্সার তৈরি করতে পারে যেমন TypeScript Lexer.g4 এবং TypeScript Parser.g4. এই ফাইলগুলি একটি বিশুদ্ধ TypeScript AST নোড তৈরি করতে প্রয়োজন, বিশেষ করে যখন টাইপ সংজ্ঞাগুলির সাথে কাজ করে। এর উপযোগিতা সত্ত্বেও, জটিল স্ট্রিংগুলিকে পার্স করা - যেমন টাইপ ডিক্লেয়ারেশন - কঠিন হতে পারে৷

একটি ANTLR-ভিত্তিক লেক্সার এবং পার্সার ব্যবহার করে একটি স্ট্রিং পার্স করার মতো typeStorage= {todos:Todo[];} অপ্রত্যাশিত ব্যর্থতা হতে পারে। টাইপস্ক্রিপ্ট পরীক্ষা কম্পাইল করার সময়, ডেভেলপাররা সাধারণ ত্রুটির সম্মুখীন হতে পারে যেমন অমিল প্রকার বা অনুপস্থিত বৈশিষ্ট্যগুলি তাদের টোকেন সোর্স, ফলে TSError সংকলনের সময় বার্তা।

এই নিবন্ধে, আমরা কীভাবে এই সমস্যাগুলি সমাধান করব এবং ANTLR/Grammars-v4 সংগ্রহস্থলের উদাহরণগুলি ব্যবহার করে পরীক্ষা চালাব তা দেখব। অবশেষে, আপনি টাইপস্ক্রিপ্ট-এর মতো ডিএসএলগুলি সঠিকভাবে পার্স করতে সক্ষম হবেন।

আদেশ ব্যবহারের উদাহরণ
CharStreams.fromString() এই কমান্ডটি একটি ইনপুট স্ট্রিং থেকে অক্ষরের একটি স্ট্রিম তৈরি করে। টাইপস্ক্রিপ্টের মতো দেখতে কাস্টম ডিএসএল স্ট্রিংগুলি থেকে টোকেন তৈরি করার সময় এটি প্রয়োজন হয়, লেক্সারকে অক্ষর অনুসারে ইনপুট স্ট্রিং অক্ষর প্রক্রিয়া করার অনুমতি দেয়।
CommonTokenStream() লেক্সার আউটপুট থেকে টোকেনের একটি প্রবাহ তৈরি করে। পার্সার টোকেনাইজড ইনপুট পরিচালনা করার আগে এই টোকেন স্ট্রীমটি একটি গুরুত্বপূর্ণ মধ্যস্থতাকারী পদক্ষেপ। ব্যাকরণের নিয়মগুলি অনুসরণ করা হয় তা নিশ্চিত করতে এটি ধারাবাহিকভাবে টোকেনগুলি পরিচালনা করতে সহায়তা করে।
new TypeScriptLexer() TypeScriptLexer.g4 ব্যাকরণ নিয়ম ব্যবহার করে ইনপুট টোকেনাইজ করে। এটি কাঁচা ইনপুটকে পার্সার দ্বারা ব্যবহৃত আভিধানিক টোকেনে রূপান্তরিত করে।
new TypeScriptParser() লেক্সার দ্বারা উত্পন্ন টোকেন স্ট্রিম সহ একটি পার্সার অবজেক্ট তৈরি করে। দ TypeScript Parser.g4 ফাইল এই পার্সারের নিয়মগুলি সংজ্ঞায়িত করে, যা টোকেনগুলিকে ব্যাখ্যা করে এবং সেগুলিকে AST-তে রূপান্তর করে।
parser.startRule() এই কমান্ডটি ব্যাকরণের পার্সিং নিয়মগুলিকে সক্রিয় করে, যা সাধারণত পার্স করা ভাষার শীর্ষ-স্তরের কাঠামোকে উপস্থাপন করে। এটি নিশ্চিত করে যে পার্সিং DSL এ সঠিক অবস্থানে শুরু হয়।
implements TokenSource প্রয়োগ করার জন্য লেক্সার ক্লাসে যুক্ত করা হয়েছে টোকেন সোর্স ইন্টারফেস এটি গ্যারান্টি দেয় যে লেক্সারটি টাইপস্ক্রিপ্টে সঠিকভাবে কাজ করে, অনুপস্থিত পদ্ধতির মতো সমস্যাগুলি সমাধান করে যার ফলে পার্সিং ব্যর্থ হয়।
nextToken() লেক্সারের ডিফল্ট আচরণ ওভাররাইড করে ইনপুট স্ট্রীম থেকে পরবর্তী টোকেন তৈরি করে। এটি নিশ্চিত করে যে ডিএসএল স্ট্রিং পার্স করার সময় লেক্সার পার্সারকে টোকেন প্রদান করা চালিয়ে যেতে পারে।
describe() এটি টেস্টিং ফ্রেমওয়ার্কের অংশ এবং এটি একটি টেস্ট স্যুট সংজ্ঞায়িত করে যেখানে বেশ কয়েকটি পরীক্ষা একত্রিত করা যেতে পারে। বিভিন্ন DSL স্ট্রিং প্রক্রিয়াকরণের সময় পার্সারের বিভিন্ন উপাদান সঠিকভাবে কাজ করে কিনা তা নিশ্চিত করার জন্য এটি ব্যবহার করা হয়।
it() একটি টেস্ট স্যুটের মধ্যে একটি একক টেস্ট কেস সংজ্ঞায়িত করে। এটি নির্দিষ্ট আচরণ যাচাই করতে ব্যবহৃত হয়, যেমন নিশ্চিত করা যে পার্সার সঠিক টাইপ সংজ্ঞা পরিচালনা করতে পারে বা ত্রুটিপূর্ণ ইনপুটগুলির জন্য উপযুক্ত ত্রুটি তৈরি করতে পারে।

কাস্টম DSL-এর জন্য ANTLR-এর সাথে TypeScript পার্সিং বোঝা

প্রদত্ত স্ক্রিপ্টগুলিতে, আমরা একটি বেসপোক ডিএসএল (ডোমেন-নির্দিষ্ট ভাষা) এর জন্য একটি লেক্সার এবং পার্সার তৈরি করতে ANTLR ব্যবহার করি যা টাইপস্ক্রিপ্টের টাইপ সিস্টেমের প্রতিলিপি করে। প্রাথমিক পর্যায়ে ব্যাকরণগত নিয়ম সংজ্ঞায়িত করা হয় TypeScript Lexer.g4 এবং TypeScript Parser.g4 ফাইল, যা টোকেনাইজেশন এবং ইনপুট পার্সিং করতে সাহায্য করে। 'npx antlr4ts TypeScriptLexer.g4 TypeScriptParser.g4' কমান্ড লেক্সার এবং পার্সার সহ প্রয়োজনীয় টাইপস্ক্রিপ্ট ফাইল তৈরি করে। এই ফাইলগুলি 'typeStorage = {todos: Todo[];}'-এর মতো স্ট্রিং পার্স করে একটি স্ট্রাকচার্ড AST (অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি), যা মানুষের-পাঠযোগ্য কোডকে মেশিন-পাঠযোগ্য বিন্যাসে রূপান্তর করার একটি গুরুত্বপূর্ণ পদক্ষেপ।

তৈরি করা লেক্সার ইনপুট স্ট্রিংগুলিকে টোকেনের একটি প্রবাহে পরিণত করে, যা পার্সার তারপর '.g4' ফাইলগুলিতে নির্দিষ্ট ব্যাকরণগত নিয়মগুলি ব্যবহার করে ব্যাখ্যা করে৷ আমাদের স্ক্রিপ্টে, আমরা 'CharStreams.fromString()' ব্যবহার করি লেক্সারের জন্য ইনপুট স্ট্রিংকে একটি অক্ষর স্ট্রীমে পরিণত করতে। লেক্সার আউটপুট তারপর a তৈরি করতে ব্যবহৃত হয় কমনটোকেনস্ট্রিম, যা পার্সার ব্যবহার করবে। একটি লেক্সার এবং একটি টোকেন স্ট্রিমের এই সংমিশ্রণটি পার্সারকে ব্যাকরণের নিয়মগুলি ব্যবহার করে ইনপুটের গঠন সঠিকভাবে বুঝতে সক্ষম করে, যেমন ধরন ঘোষণাকে স্বীকৃতি দেওয়া।

দ্বিতীয় স্ক্রিপ্টে, আমরা একটি সমস্যা সমাধান করি যেখানে 'TypeScriptLexer' সম্পূর্ণরূপে 'টোকেনসোর্স' ইন্টারফেস প্রয়োগ করে না। লেক্সার ক্লাস প্রসারিত করে এবং অনুপস্থিত পদ্ধতি যেমন 'nextToken()' প্রবর্তন করে, আমরা যাচাই করি যে লেক্সার একটি টোকেন উত্স হিসাবে কাজ করতে পারে। এই ধাপটি গুরুত্বপূর্ণ কারণ এই পদ্ধতিগুলি ছাড়া, TypeScript একটি ত্রুটি ছুঁড়ে দেবে, যেমন ত্রুটি বার্তায় দেখানো হয়েছে 'Type 'TypeScriptLexer' টাইপ 'টোকেনসোর্স' এর প্যারামিটারে বরাদ্দযোগ্য নয়। কাস্টম লেক্সারে এই ফাংশনগুলিকে ওভাররাইড করা সংকলন সমস্যার সমাধান করে, ইনপুট স্ট্রিং থেকে AST-তে সঠিক প্রবাহের অনুমতি দেয়।

অবশেষে, চূড়ান্ত বিকল্পটি Mocha টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে ইউনিট পরীক্ষা প্রবর্তন করে। এই পরীক্ষাগুলি নিশ্চিত করে যে পার্সার সঠিকভাবে বিভিন্ন DSL স্ট্রিং অনুবাদ করে। উদাহরণস্বরূপ, একটি পরীক্ষা পরীক্ষা করে যদি স্ট্রিং 'typeTodo = { title: string; সম্পন্ন: বুলিয়ান; }' সঠিকভাবে প্রক্রিয়া করা হয় এবং যদি উত্পাদিত AST প্রত্যাশিত কাঠামোর সাথে মেলে। এই কৌশলটি নিশ্চিত করে যে পার্সার সমস্ত প্রসঙ্গে সঠিকভাবে আচরণ করে, সমাধানটিকে আরও স্থিতিস্থাপক এবং বিশ্বাসযোগ্য করে তোলে। অনেক ব্যবহারের ক্ষেত্রে কভার করে, আমরা নিশ্চিত করি যে আমাদের পার্সার বিস্তৃত TypeScript-এর মতো DSL স্ট্রিংগুলির জন্য কার্যকর।

কাস্টম ডিএসএল পার্স করার জন্য ANTLR দিয়ে একটি টাইপস্ক্রিপ্ট পার্সার তৈরি করা

এই স্ক্রিপ্টটি TypeScript এবং ANTLR কে একত্রিত করে কাস্টম DSL সিনট্যাক্স পড়তে যা TypeScript টাইপ সংজ্ঞার অনুরূপ। উত্তরটি দেখায় কিভাবে একটি লেক্সার এবং পার্সার তৈরি করতে ANTLR ব্যবহার করতে হয়, সেইসাথে সাধারণ পার্সিং চ্যালেঞ্জগুলিকে কীভাবে মোকাবেলা করতে হয়।

// Solution 1: Building a Lexer and Parser in TypeScript Using ANTLR
// Step 1: Install ANTLR TypeScript tools and dependencies
npm install antlr4ts ts-node @types/node
// Step 2: Generate TypeScript lexer and parser from TypeScriptLexer.g4 and TypeScriptParser.g4
npx antlr4ts TypeScriptLexer.g4 TypeScriptParser.g4
// Step 3: Create a parser script (test-parser.ts) to parse custom DSL strings
import { CharStreams, CommonTokenStream } from 'antlr4ts';
import { TypeScriptLexer } from './TypeScriptLexer';
import { TypeScriptParser } from './TypeScriptParser';
const input = 'typeStorage = {todos:Todo[];}';
const lexer = new TypeScriptLexer(CharStreams.fromString(input));
const tokens = new CommonTokenStream(lexer);
const parser = new TypeScriptParser(tokens);
parser.startRule();  // Start parsing
// Test parsing logic with additional DSL strings

ANTLR পার্সার ইমপ্লিমেন্টেশনে টাইপস্ক্রিপ্ট সংকলন ত্রুটি ঠিক করা

এই সমাধানটি যথাযথ ইন্টারফেসগুলি প্রয়োগ করা হয়েছে তা নিশ্চিত করে "TypeScriptLexer' টাইপের আর্গুমেন্ট অ্যাসাইনযোগ্য নয়" ত্রুটি সমাধানের উপর দৃষ্টি নিবদ্ধ করে। এই সমাধানটি TypeScript পার্সিং-এ টোকেন উত্স পরিচালনা করে।

// Solution 2: Fixing the TokenSource Issue in TypeScriptLexer
// Ensure TypeScriptLexer implements the necessary methods for TokenSource
import { TokenSource, CharStream, Token } from 'antlr4ts';
class MyLexer extends TypeScriptLexer implements TokenSource {
   nextToken(): Token {
       return super.nextToken();  // Use base class token generation
   }
}
// Create a new instance of MyLexer to bypass the compilation error
const lexer = new MyLexer(CharStreams.fromString(input));
const tokens = new CommonTokenStream(lexer);
const parser = new TypeScriptParser(tokens);
parser.startRule();
// This resolves the missing TokenSource properties issue

কাস্টম ডিএসএল সিনট্যাক্সের জন্য টাইপস্ক্রিপ্ট পার্সার পরীক্ষা করা হচ্ছে

এই বিভাগটি দেখায় কিভাবে ANTLR-জেনারেটেড TypeScript পার্সারের জন্য ইউনিট পরীক্ষা তৈরি করতে হয়। পরীক্ষাগুলি নিশ্চিত করে যে বিভিন্ন DSL স্ট্রিং সঠিকভাবে পার্স করা হয়েছে।

// Solution 3: Writing Unit Tests for the TypeScript Parser
import { CharStreams, CommonTokenStream } from 'antlr4ts';
import { TypeScriptLexer } from './TypeScriptLexer';
import { TypeScriptParser } from './TypeScriptParser';
import { expect } from 'chai';
describe('DSL Parser Tests', () => {
   it('should parse type definitions correctly', () => {
       const input = 'typeTodo = { title: string; completed: boolean; }';
       const lexer = new TypeScriptLexer(CharStreams.fromString(input));
       const tokens = new CommonTokenStream(lexer);
       const parser = new TypeScriptParser(tokens);
       const result = parser.startRule();  // Call the start rule of the grammar
       expect(result).to.not.be.null;  // Ensure result is not null
   });
});
// Run the test with Mocha: npx mocha test-parser.ts

ANTLR এর সাথে টাইপস্ক্রিপ্ট পার্সার তৈরি এবং পরীক্ষা করা: উন্নত ধারণা

TypeScript-এর মতো DSL-এর জন্য একটি পার্সার তৈরি করার সময়, সঠিকভাবে জটিল টাইপ সংজ্ঞা প্রক্রিয়াকরণের জন্য শুধুমাত্র ANTLR-এর ব্যাকরণ নকশাই নয়, সাম্প্রতিক টাইপস্ক্রিপ্ট সরঞ্জামগুলির সাথে কীভাবে উত্পাদিত পার্সারকে একীভূত করা যায় তাও বোঝার প্রয়োজন হয়৷ থেকে লেক্সার এবং পার্সার ফাইল তৈরি করা ছাড়াও .g4 ফাইল, ডেভেলপারদের অবশ্যই নিশ্চিত করতে হবে যে এই উপাদানগুলি তাদের বিকাশের পরিবেশে নির্বিঘ্নে কাজ করে, বিশেষ করে যখন নেস্টেড উপাদানগুলির সাথে টাইপ ঘোষণার মতো অত্যাধুনিক কাঠামো পার্স করা হয়। একটি প্রায়ই উপেক্ষা করা উপাদান হল পার্সিং ব্যর্থতার কার্যকর ডিবাগিং।

ব্যাকরণের নিয়ম এবং ইনপুট পাঠ্যের প্রকৃত কাঠামোর মধ্যে অমিল পার্সিং ত্রুটির সাধারণ কারণ। যদি লেক্সার অসম্পূর্ণ বা ভুল ব্যাকরণের নিয়মের কারণে ভুল টোকেন তৈরি করে, পার্সার সঠিক AST তৈরি করবে না। টাইপস্ক্রিপ্টের 'টাইপ' সংজ্ঞার মতো অবজেক্ট-সদৃশ কাঠামোকে অন্তর্ভুক্ত করে এমন একটি DSL পার্সিং করা ব্যর্থ হতে পারে যদি ভাষা উচ্চ নেস্টেড স্ট্রাকচার সমর্থন না করে। ANTLR-এর ডিবাগ টুলগুলি ব্যবহার করে, যেমন ANTLRWorks প্লাগইন, টোকেন স্ট্রীমটি ভিজ্যুয়ালাইজ করতে এবং সমস্যাটি কোথায় রয়েছে তা নির্ধারণ করতে সহায়তা করতে পারে। এটি ব্যাকরণ সমস্যার দ্রুত সংশোধন করতে সক্ষম করে।

টাইপস্ক্রিপ্টে ANTLR ব্যবহার করার সময় আরেকটি প্রধান দিক হল টাইপস্ক্রিপ্ট ইকোসিস্টেমের সাথে সামঞ্জস্য বজায় রাখা। পূর্বে বর্ণিত ত্রুটি হ্যান্ডলিং এবং টোকেন উত্স উদ্বেগগুলি প্রচলিত হয় যখন ফলাফল পার্সারকে অতিরিক্ত টাইপস্ক্রিপ্ট সরঞ্জামগুলির সাথে একত্রিত করা হয় ts-নোড. লেক্সারের অনুপস্থিত পদ্ধতিগুলিকে প্রসারিত এবং সঠিকভাবে প্রয়োগ করে (যেমন পূর্বে ব্যাখ্যা করা হয়েছে), আপনি নিশ্চিত করুন যে এই সরঞ্জামগুলি ফলাফল পার্সারের সাথে সঠিকভাবে ইন্টারফেস করছে। ইউনিট টেস্ট ফ্রেমওয়ার্কের সাথে পরীক্ষা করা, যেমন মোচা, যাচাই করতে সাহায্য করে যে সমাধানটি বিভিন্ন প্রান্তের পরিস্থিতিতে কাজ করে।

ANTLR এবং TypeScript পার্সিং সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

  1. টাইপস্ক্রিপ্টে ANTLR কিসের জন্য ব্যবহৃত হয়?
  2. ANTLR হল একটি টুল যা বেসপোক ব্যাকরণের জন্য লেক্সার এবং পার্সার তৈরি করে। এটি TypeScript-এ ব্যবহার করা হয় টাইপস্ক্রিপ্ট সিনট্যাক্সের অনুরূপ বেসপোক ডিএসএল ব্যাখ্যা করতে সক্ষম পার্সার বিকাশ করতে।
  3. আপনি কিভাবে ব্যাকরণ ফাইল থেকে একটি টাইপস্ক্রিপ্ট পার্সার তৈরি করবেন?
  4. আদেশ জারি করে npx antlr4ts TypeScriptLexer.g4 TypeScriptParser.g4, ANTLR টাইপস্ক্রিপ্টে একটি লেক্সার এবং পার্সার তৈরি করে, যা আপনি ব্যাকরণের উপর নির্ভর করে ইনপুট স্ট্রিং পার্স করতে ব্যবহার করতে পারেন।
  5. CommonTokenStream কি জন্য ব্যবহৃত হয়?
  6. CommonTokenStream লেক্সার থেকে পার্সারে টোকেন ফিড করে। এটি একটি স্ট্রীম যা পার্সার ব্যাকরণগত নিয়ম অনুসারে ইনপুট প্রক্রিয়া করার জন্য পড়ে।
  7. আপনি কিভাবে ANTLR এর TypeScriptLexer এ 'টোকেনসোর্স' ত্রুটি ঠিক করবেন?
  8. ত্রুটি প্রতিকার করতে, প্রসারিত করুন TypeScriptLexer ক্লাস এবং অনুপস্থিত বাস্তবায়ন nextToken এটি একটি টোকেনসোর্স হিসাবে সঠিকভাবে কাজ করে তা নিশ্চিত করার পদ্ধতি।
  9. আপনি টাইপস্ক্রিপ্ট এ ANTLR পার্সার ইউনিট পরীক্ষা করতে পারেন?
  10. হ্যাঁ, আপনি Mocha এর মতো টুল ব্যবহার করে টাইপস্ক্রিপ্টে ANTLR পার্সারদের জন্য ইউনিট পরীক্ষা তৈরি করতে পারেন। একটি সাধারণ পরীক্ষা নিশ্চিত করে যে পার্সার নির্দিষ্ট ইনপুট স্ট্রিংগুলি সঠিকভাবে এবং ভুল ছাড়াই পরিচালনা করে।

টাইপস্ক্রিপ্ট-মত ডিএসএল পার্সিং সম্পর্কে চূড়ান্ত চিন্তা

ANTLR ব্যবহার করে টাইপস্ক্রিপ্ট পার্সারের জন্য পরীক্ষা তৈরি করা এবং নির্বাহ করা কঠিন হতে পারে, বিশেষ করে জটিল ধরনের সংজ্ঞা নিয়ে কাজ করার সময়। লেক্সারের ত্রুটিগুলি সমাধান করা, যেমন টোকেন সোর্স ত্রুটি, দ্রুততর এবং আরও নির্ভরযোগ্য ডিএসএল প্রক্রিয়াকরণের দিকে পরিচালিত করে। এই সমাধানগুলি পরীক্ষা করার জন্য ইউনিট পরীক্ষা ব্যবহার করা বাস্তবায়নকে উন্নত করে।

এই গাইডের ধাপগুলি অনুসরণ করলে আপনি দক্ষতার সাথে টাইপস্ক্রিপ্ট-এর মতো ডিএসএল স্ট্রিংগুলি পার্স এবং পরীক্ষা করতে পারবেন। একটি কঠিন লেক্সার এবং পার্সার সেটআপ প্রয়োগ করা আপনাকে সঠিক AST জেনারেশন এবং TypeScript ইকোসিস্টেম মিথস্ক্রিয়া নিশ্চিত করে বেসপোক ব্যাকরণগুলি সহজে পরিচালনা করতে সক্ষম করে।

ANTLR/TypeScript পার্সিং গাইডের জন্য উৎস এবং রেফারেন্স
  1. অফিসিয়াল রিপোজিটরি থেকে TypeScript পার্সিংয়ের জন্য ব্যবহৃত ANTLR ব্যাকরণের উপর বিস্তারিত বর্ণনা করে। এ আরো বিস্তারিত খুঁজুন ANTLR Grammars-v4 GitHub .
  2. ব্যাকরণ তৈরি এবং ত্রুটি পরিচালনা সহ টাইপস্ক্রিপ্টের সাথে কীভাবে ANTLR ব্যবহার করবেন তার ডকুমেন্টেশন সরবরাহ করে। আরো তথ্য পাওয়া যায় ANTLR4ts NPM প্যাকেজ .
  3. সমস্যা সমাধানের নির্দেশিকা সহ TypeScript সেটআপ এবং পার্সার ত্রুটির রেজোলিউশনের বিশদ বিবরণ। পড়ুন টাইপস্ক্রিপ্ট অফিসিয়াল ডকুমেন্টেশন অতিরিক্ত নির্দেশনার জন্য।