mystic-yard 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/compiler.js +53 -43
  2. package/package.json +1 -1
package/compiler.js CHANGED
@@ -1,54 +1,64 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
- const scanner = require("./compiler/scanner");
4
- const parser = require("./compiler/parser");
5
- const writer = require("./compiler/writer");
6
-
7
- // ফাইল কম্পাইল করার মূল লজিক (যা আপনার আগের কোডেই ছিল)
8
- function compileFiles() {
9
- console.log("\n🔄 ফাইল পরিবর্তন সনাক্ত হয়েছে! কম্পাইল করা হচ্ছে...");
10
-
11
- try {
12
- const files = scanner();
13
-
14
- for (const file of files) {
15
- console.log("Reading:", file.name);
16
- console.log("Code:", file.code);
3
+ const { exec } = require('child_process'); // JS ফাইল রান করার জন্য
17
4
 
18
- const tokens = file.code.split(/\s+/);
19
- console.log("Tokens:", tokens);
5
+ const directoryPath = './src'; // আপনার সোর্স ফোল্ডার
20
6
 
21
- const jsCode = parser(tokens);
22
- console.log("Generated JS:", jsCode);
7
+ // JS ফাইল টার্মিনালে রান করার ফাংশন
8
+ function runJsFile(jsFile) {
9
+ const jsFilePath = path.join(directoryPath, jsFile);
23
10
 
24
- // .my ফাইলের নামের ওপর ভিত্তি করে ডাইনামিকালি .js ফাইল তৈরি হবে
25
- // যেমন: Index.my থাকলে তৈরি হবে Index.js, Shks.my থাকলে Shks.js
26
- const outputFileName = file.name.replace(/\.my$/, '.js');
27
-
28
- // রুট ডিরেক্টরিতে সরাসরি .js ফাইল রাইট করা
29
- writer(jsCode, `./${outputFileName}`);
30
- console.log(`✅ সফলভাবে আপডেট হয়েছে: ${outputFileName}`);
11
+ // টার্মিনালে স্বয়ংক্রিয়ভাবে 'node src/filename.js' কমান্ডটি রান করবে
12
+ exec(`node "${jsFilePath}"`, (error, stdout, stderr) => {
13
+ console.log(`\n--- Output of ${jsFile} ---`);
14
+
15
+ if (error) {
16
+ console.error(`❌ রান করতে এরর হয়েছে: ${error.message}`);
17
+ return;
31
18
  }
32
- console.log("✨ সব ফাইল আপডেট কমপ্লিট! পরবর্তী পরিবর্তনের জন্য অপেক্ষা করা হচ্ছে...\n");
33
- } catch (error) {
34
- console.error("❌ কম্পাইল করার সময় ভুল হয়েছে:", error.message);
35
- }
19
+ if (stderr) {
20
+ console.error(`⚠️ স্ট্যানডার্ড এরর: ${stderr}`);
21
+ return;
22
+ }
23
+
24
+ // ফাইলের আসল আউটপুট টার্মিনালে প্রিন্ট হবে
25
+ console.log(stdout || '(কোনো আউটপুট নেই)');
26
+ console.log("-".repeat(25));
27
+ });
36
28
  }
37
29
 
38
- // 🚀 প্রথমবার ফাইলগুলো রান করার জন্য কল করা হলো
39
- compileFiles();
30
+ // নাম মিলিয়ে অটো-কানেক্ট এবং রান করার মেইন ফাংশন
31
+ function startCompiler() {
32
+ try {
33
+ if (!fs.existsSync(directoryPath)) {
34
+ console.error(`❌ ডিরেক্টরি পাওয়া যায়নি: ${directoryPath}`);
35
+ return;
36
+ }
37
+
38
+ const files = fs.readdirSync(directoryPath);
39
+ const myFiles = files.filter(file => file.endsWith('.my'));
40
+ const jsFiles = files.filter(file => file.endsWith('.js'));
40
41
 
41
- // 👁️ লাইভ ওয়াচ সিস্টেম (Watch Mode)
42
- // এটি আপনার বর্তমান প্রজেক্টের ফোল্ডারটিকে সারাক্ষণ পাহারা দেবে
43
- console.log("👀 লাইভ ওয়াচ মোড চালু হয়েছে... আপনার .my ফাইলে কোড লিখে সেভ করুন।");
42
+ console.log("🔍 ফাইল স্ক্যান করা হচ্ছে...");
44
43
 
45
- fs.watch(process.cwd(), { recursive: true }, (eventType, filename) => {
46
- // যদি কোনো ফাইল পরিবর্তন হয় এবং সেটির এক্সটেনশন .my হয়
47
- if (filename && filename.endsWith('.my')) {
48
- // node_modules বা dist ফোল্ডারের ভেতর হলে ইগনোর করবে
49
- if (filename.includes('node_modules') || filename.includes('dist')) return;
50
-
51
- // ফাইলটি সেভ হওয়ার সাথে সাথে অটোমেটিক কম্পাইল ফাংশন রান হবে
52
- compileFiles();
44
+ myFiles.forEach(myFile => {
45
+ const baseName = path.basename(myFile, '.my');
46
+ const matchingJsFile = `${baseName}.js`;
47
+
48
+ if (jsFiles.includes(matchingJsFile)) {
49
+ console.log(`🔗 কানেক্টেড: ${myFile} -> ${matchingJsFile}`);
50
+
51
+ // ম্যাচ হওয়া JS ফাইলটিকে রান করা হচ্ছে
52
+ runJsFile(matchingJsFile);
53
+ } else {
54
+ console.warn(`⚠️ সতর্কতা: '${myFile}' এর জন্য কোনো '${baseName}.js' পাওয়া যায়নি।`);
55
+ }
56
+ });
57
+
58
+ } catch (error) {
59
+ console.error("কম্পাইলার রান করতে সমস্যা হয়েছে:", error);
53
60
  }
54
- });
61
+ }
62
+
63
+ // কম্পাইলার স্টার্ট করুন
64
+ startCompiler();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mystic-yard",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "It is total best a framework, become it have a very shortcut",
5
5
  "main": "compiler.js",
6
6
  "scripts": {