├── .eslintignore
├── .eslintrc.js
├── .github
└── FUNDING.yml
├── .gitignore
├── CONTRIBUTION.md
├── LICENCE
├── README.md
├── SETUP.md
├── babel.config.js
├── package-lock.json
├── package.json
├── public
├── Scripts
│ ├── x0popup.min.css
│ └── x0popup.min.js
├── _redirects
├── favicon.ico
├── img
│ └── icons
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── android-chrome-maskable-192x192.png
│ │ ├── android-chrome-maskable-512x512.png
│ │ ├── android-icon-144x144.png
│ │ ├── android-icon-36x36.png
│ │ ├── android-icon-48x48.png
│ │ ├── android-icon-72x72.png
│ │ ├── android-icon-96x96.png
│ │ ├── apple-icon-114x114.png
│ │ ├── apple-icon-144x144.png
│ │ ├── apple-icon-57x57.png
│ │ ├── apple-icon-72x72.png
│ │ ├── apple-icon-precomposed.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-152x152.png
│ │ ├── apple-touch-icon-180x180.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── icon-128x128.png
│ │ ├── icon-144x144.png
│ │ ├── icon-152x152.png
│ │ ├── icon-192x192.png
│ │ ├── icon-384x384.png
│ │ ├── icon-72x72.png
│ │ ├── icon-96x96.png
│ │ ├── ms-icon-310x310.png
│ │ ├── ms-icon-70x70.png
│ │ ├── msapplication-icon-144x144.png
│ │ ├── mstile-150x150.png
│ │ └── safari-pinned-tab.svg
├── index.html
└── robots.txt
├── quasar.conf.js
├── result.txt
├── src
├── App.vue
├── assets
│ ├── Linkedin.png
│ ├── Logo.png
│ ├── LogoBlack.png
│ ├── LogoWhite.png
│ ├── LogoWhite.svg
│ ├── Logoori.png
│ ├── git.png
│ ├── instagram.png
│ ├── swanand.png
│ ├── wave.png
│ ├── wave.svg
│ ├── wave5.png
│ ├── waveMobile.png
│ └── youtube.webp
├── components
│ ├── Header.vue
│ ├── Kalaam.js
│ └── monokai.css
├── exampleCodes
│ ├── bintodec.js
│ ├── calculatorEx1.js
│ ├── checkUndefined1.js
│ ├── checkUndefined2.js
│ ├── condition1.js
│ ├── example2.js
│ ├── executionstack1.js
│ ├── factorialof.js
│ ├── fibonacci.js
│ ├── forloop.js
│ ├── forloop2.js
│ ├── formname.js
│ ├── function1.js
│ ├── function2.js
│ ├── kalaamData.js
│ ├── multical.js
│ ├── primenumber.js
│ ├── reverseEx3.js
│ └── whileloop.js
├── lib.zip
├── lib
│ ├── Compiler
│ │ ├── constants.js
│ │ └── main.js
│ ├── HelperLibrary
│ │ └── main.js
│ ├── Interpretor(temp)
│ │ ├── Compiler
│ │ │ └── main.js
│ │ ├── HelperLibrary
│ │ │ └── main.js
│ │ ├── PushTokens
│ │ │ └── main.js
│ │ ├── Scripts
│ │ │ ├── BuildOperations.js
│ │ │ ├── DataCleaning.js
│ │ │ ├── Handlers.js
│ │ │ ├── Helpers.js
│ │ │ ├── HindiChars.js
│ │ │ ├── finders.js
│ │ │ ├── main.js
│ │ │ └── testers.js
│ │ ├── TypeCheck
│ │ │ ├── AdvancedTypeChecking.js
│ │ │ └── TypeChecking.js
│ │ └── scanner
│ │ │ └── main.js
│ ├── PushTokens
│ │ └── main.js
│ ├── Scripts
│ │ ├── BuildOperations.js
│ │ ├── DataCleaning.js
│ │ ├── Handlers.js
│ │ ├── Helpers.js
│ │ ├── HindiChars.js
│ │ ├── finders.js
│ │ ├── main.js
│ │ └── testers.js
│ ├── TypeCheck
│ │ ├── AdvancedTypeChecking.js
│ │ └── TypeChecking.js
│ ├── constants.js
│ └── scanner
│ │ └── main.js
├── main.js
├── quasar.js
├── registerServiceWorker.js
├── router
│ └── index.js
├── store
│ └── index.js
├── styles
│ ├── quasar.sass
│ └── quasar.variables.sass
└── views
│ ├── About.vue
│ ├── Documentation.vue
│ ├── Examples.vue
│ ├── FourOhFour.vue
│ ├── Home.vue
│ ├── Practise.vue
│ └── Support.vue
├── test
└── examples
│ ├── (Example2).test.js
│ ├── bintodec.test.js
│ ├── calculator(Example1).test.js
│ ├── checkUndefined1.test.js
│ ├── checkUndefined2.test.js
│ ├── condition1.test.js
│ ├── executionstack1.test.js
│ ├── factorialof.test.js
│ ├── fibonacci.test.js
│ ├── forloop.test.js
│ ├── forloop2.test.js
│ ├── formname.test.js
│ ├── function1.test.js
│ ├── function2.test.js
│ ├── multical.test.js
│ ├── prime.test.js
│ ├── reverse(Example3).test.js
│ └── whileloop.test.js
└── vue.config.js
/.eslintignore:
--------------------------------------------------------------------------------
1 | kalaam.js
2 | .vue
3 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | 'extends': 'eslint:recommended',
3 | 'parser': 'babel-eslint',
4 | 'env': {
5 | 'browser': true,
6 | 'node': true,
7 | },
8 | 'rules': {
9 | // enable additional rules
10 | 'indent': ['error', 4,],
11 | 'linebreak-style': ['error', 'unix',],
12 | 'quotes': ['error', 'single',],
13 | 'semi': ['error', 'always',],
14 |
15 | // override default options for rules from base configurations
16 | 'comma-dangle': ['error', 'always',],
17 |
18 | 'no-cond-assign': ['error', 'always',],
19 |
20 |
21 |
22 | // disable rules from base configurations
23 | 'no-console': 'off',
24 | 'no-useless-escape':'off',
25 | 'no-irregular-whitespace':'off',
26 | 'no-self-assign':'off',
27 | 'no-redeclare': 'off',
28 | 'no-inner-declarations': 'off',
29 | 'no-case-declarations':'off'
30 |
31 |
32 | },
33 | };
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [swanandapps]
4 | patreon: swanandkdm
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 | # local env files
6 | .env.local
7 | .env.*.local
8 |
9 | # Log files
10 | npm-debug.log*
11 | yarn-debug.log*
12 | yarn-error.log*
13 |
14 | # Editor directories and files
15 | .idea
16 | .vscode
17 | *.suo
18 | *.ntvs*
19 | *.njsproj
20 | *.sln
21 | *.sw?
22 |
--------------------------------------------------------------------------------
/CONTRIBUTION.md:
--------------------------------------------------------------------------------
1 | # Contributing to Kalaam
2 | We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
3 |
4 | - Reporting a bug
5 | - Discussing the current state of the code
6 | - Submitting a fix
7 | - Proposing new features
8 |
9 | ## We Use [Github Flow](https://guides.github.com/introduction/flow/index.html), So All Code Changes Happen Through Pull Requests
10 | Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
11 |
12 | 1. Fork the repo and create your branch from `dev-Kalaam-NextVersion`.
13 | 2. The setups for recreating the project have been given in the [SETUP.md](SETUP.md) file.
14 | 3. If you've added code that should be tested, add tests.
15 | 4. Ensure the test suite and build passes, by running `npm run test` and `npm run build`
16 |
17 | 5. Issue that pull request!
18 |
19 |
24 |
25 | ## Report bugs using Github's [issues](https://github.com/Kalaam-Programming-Language/Kalaam/issues)
26 | We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/Kalaam-Programming-Language/Kalaam/issues/new/choose); it's that easy!
27 |
28 | ## Write bug reports with detail, background, and sample code
29 |
30 | **Great Bug Reports** tend to have:
31 |
32 | - A quick summary and/or background
33 | - Steps to reproduce
34 | - Be specific!
35 | - Give sample code if you can.
36 | - What you expected would happen
37 | - What actually happens
38 | - Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
39 |
40 | People *love* thorough bug reports. I'm not even kidding.
41 |
42 |
43 | ## License
44 | By contributing, you agree that your contributions will be licensed under its MIT License.
45 |
46 | Copyright (c) 2020-present, Swanand Kadam
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 |
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2020-present, Swanand Kadam
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |

2 |
3 | Contribute to Kalaam
4 |
5 | ## Introduction
6 |
7 | Kalaam is the programming language in Hindi and has all the basic functionalities of a modern programming language. From for loops to while loops and from functions to conditional statements.
8 |
9 | Kalaam has it's own parser, interpreter and executes source code from parse tree generated by the parser.
10 |
11 | ## Summary
12 |
13 |
14 | 1. Kalaam Website
15 | 2. Interpreter imported from npm
16 | 3. Only changes to be made here are frontend
17 | 4. Make sure npm Kalaam package is doing the job correctly
18 | 5. Check testcases on npm package as well.
19 |
20 |
21 | ## Branch Guide
22 |
23 | `v1.0.0`
24 |
25 | - The first version of Kalaam. You can explore it to see how first version came out to be.
26 | - No development work happens here anymore.
27 |
28 |
29 |
30 |
31 | `v1.1.0`
32 |
33 | - The latest version of Kalaam with improvments over v1.0.O.
34 | - contains latest stable Kalaam code.
35 | - No new functionality added but more flexible code, testcases, error handling and a lot of functional programming.
36 |
37 | Goals
38 |
39 | - [x] Refactoring, Better Code structure and Improved code readability
40 | - [x] Improve primitive Datatypes parsing
41 | - [x] Commenting majority of codebase
42 | - [x] modularise codebase as per functionalities
43 | - [x] 15+ testcases
44 |
45 |
46 |
47 |
48 | `v1.2.0-dev`
49 |
50 | - As the name suggests, this is where devlopment work happens for next version of Kalaam.
51 | - If you want to contrubute, submit PR's to this branch only.
52 |
53 | Goals
54 |
55 | - [] NPM package initialization
56 | - [] IDesigning an E2E package
57 | - [] Separate repo for npm package and frontend
58 | - [] Standalone Documentation
59 | - [] guidelines on further contributions
60 |
61 |
62 |
63 | ## Contributions
64 |
65 | - You can work on either Frontend, Backend or Documentation, whatever you think you can be best at with your current level of experience.
66 | - This is a complete Kalaam.io application. The compiler will be made available as a standalone npm package called Kalaam-core.
67 | - Fork the repo and create PR's on current dev branch. For now, it is #`v1.2.0-dev`#.
68 | - Feel free to play with project. Creative ideas are most welcome.
69 |
70 | `NOTE: MAKE SURE TO CREATE A PULL REQUEST ON 'v1.2.0-dev' and NOT DIRECTLY ON THE MASTER BRANCH.`
71 |
72 |
73 | ## Steps to follow
74 |
75 | 1. Fork the repo
76 | 2. Create a issue. Add relevant label - mention following things
77 |
78 | a) What is the issue
79 | b) What problems is it causing
80 | c) how to recreate the issue
81 | d) which part of code is causing the issue
82 |
83 | 4. Create branch with the name of issue you want to fix. for e.g ```fixes whitespace issue while cleaning sourcecode```
84 | 5. Run necessary tests using ```npm run test```. Add more test cases if you need to.
85 | 6. Make sure your code is not breaking anything.
86 | 7. Comment each line of your code. Write down why you are doing it instead of how you are doing it. Tell a story!
87 | 8. Once you are ready, create a PR on current dev branch. DO NOT CREATE PR'S DIRECTLY ON MASTER BRANCH.
88 | 9. Your code will be reviewed and if all good, PR will be merged.
89 | 10. Happy Contributing ⚙️
90 |
91 |
92 | ## Future plans
93 |
94 | - Right now, Kalaam is in it's early stage. Many programming languages took decades of team work to reach their goals. We go step by step.
95 | - Kalaam needs to have a usecase so that people can start building stuff with it. The use-case can be unique that suits well to the Indian ecosystem. This will help us to move in a straight direction. Right now it's best for learning purposes.
96 |
97 | ## Documentation
98 |
99 | To check out documentation visit [Documentation](https://www.kalaam.io/documentation).
100 |
101 | - Documentation needs a lot of work. I think short video tuts will really help instead of just the overload of texts.
102 |
103 | ## Examples
104 |
105 | To check out examples visit [live examples](https://www.kalaam.io/examples).
106 |
107 | Feel free to add more examples. We have three categories for examples. Basic, Intermediate, and advanced. Add according to context.
108 |
109 | ## Questions
110 |
111 | For questions and support please use [the discord server](https://discord.com/invite/EMyA8TA).
112 |
113 |
114 |
115 | ## Where is the compiler code?:
116 |
117 | Visit 'src/lib/Compiler/main.js' in repo structure to access Kalaam compile engine and learn about how Kalaam works.
118 |
119 | ## To test kalaam.io locally
120 |
121 | The setups for recreating the project have been given in the [SETUP.md](SETUP.md) file.
122 |
123 | ## Issues
124 |
125 | Found an issue in Kalaam? Please use [submit issue](https://github.com/Kalaam-Programming-Language/Kalaam/issues).
126 |
127 | ## License
128 |
129 | [MIT](http://opensource.org/licenses/MIT)
130 |
131 | Copyright (c) 2020-present, Swanand Kadam
132 |
133 | ---
134 |
135 |
136 | ## परिचय
137 |
138 | कलाम हिंदी में प्रोग्रामिंग भाषा है और इसमें आधुनिक प्रोग्रामिंग भाषा के सभी बुनियादी कार्य हैं। लूप्स से लेकर लूप्स तक और फंक्शन्स से लेकर कंडीशनल स्टेटमेंट्स तक। कलाम का अपना पार्सर, दुभाषिया है और पार्सर द्वारा उत्पन्न पार्स ट्री से स्रोत कोड निष्पादित करता है।
139 |
140 |
141 | ## शाखा गाइड
142 |
143 | `v1.0.0`
144 |
145 | - कलाम का पहला संस्करण। आप यह देखने के लिए इसका पता लगा सकते हैं कि पहला संस्करण कैसा रहा।
146 | - अब यहां कोई विकास कार्य नहीं होता है।
147 |
148 |
149 |
150 |
151 |
152 | `v1.1.0`
153 | - कलाम का नवीनतम संस्करण v1.0.O से अधिक सुधारों के साथ।
154 | - नवीनतम स्थिर कलाम कोड शामिल है।
155 | - कोई नई कार्यक्षमता नहीं जोड़ी गई लेकिन अधिक लचीला कोड, टेस्टकेस, त्रुटि प्रबंधन और बहुत सारी कार्यात्मक प्रोग्रामिंग।
156 |
157 | लक्ष्य
158 |
159 | - [x] रिफैक्टरिंग, बेहतर कोड संरचना और बेहतर कोड पठनीयता
160 | - [x] आदिम डेटाटाइप पार्सिंग में सुधार करें
161 | - [x] कोडबेस के बहुमत पर टिप्पणी करना
162 | - [x] कार्यात्मकताओं के अनुसार मॉड्यूलर कोडबेस
163 | - [x] 15+ टेस्टकेस
164 |
165 |
166 |
167 |
168 | `v1.2.0-dev`
169 |
170 | - जैसा कि नाम से पता चलता है, यह वह जगह है जहां कलाम के अगले संस्करण के लिए विकास कार्य होता है।
171 | - यदि आप योगदान देना चाहते हैं, तो पीआर इस शाखा में ही जमा करें।
172 |
173 |
174 | लक्ष्य
175 |
176 | - [] एनपीएम पैकेज आरंभीकरण
177 | - [] एक E2E पैकेज की IDesigning
178 | - [] npm पैकेज और फ्रंटएंड के लिए अलग रेपो
179 | - [] स्टैंडअलोन दस्तावेज़ीकरण
180 | - [] आगे के योगदान पर दिशानिर्देश
181 |
182 |
183 |
184 | ## Contributions
185 |
186 | - आप फ्रंटएंड, बैकएंड या डॉक्यूमेंटेशन में से किसी पर भी काम कर सकते हैं, जो भी आपको लगता है कि आप अपने वर्तमान स्तर के अनुभव के साथ सर्वश्रेष्ठ हो सकते हैं।
187 | - यह एक पूर्ण Kalaam.io एप्लिकेशन है। कंपाइलर को कलाम-कोर नामक एक स्टैंडअलोन एनपीएम पैकेज के रूप में उपलब्ध कराया जाएगा।
188 | - रेपो फोर्क करें और वर्तमान देव शाखा पर पीआर बनाएं। अभी के लिए, यह #v1.2.0-dev# है।
189 | - परियोजना के साथ खेलने के लिए स्वतंत्र महसूस करें। रचनात्मक विचारों का स्वागत है।
190 | - साथी योगदानकर्ताओं से जुड़ने के लिए कलाम डिस्कॉर्ड सेवर का उपयोग करें। (https://discord.gg/vpezZjQQSQ)
191 |
192 |
193 | `नोट: 'v1.2.0-dev' पर एक पुल अनुरोध बनाना सुनिश्चित करें और सीधे मास्टर शाखा पर नहीं।`
194 |
195 |
196 | ## अनुसरण करने के लिए कदम
197 |
198 |
199 | 1. फोर्क रेपो
200 | 2. उस समस्या के नाम से शाखा बनाएं जिसे आप ठीक करना चाहते हैं।
201 | 3. उदाहरण के लिए स्रोत कोड की सफाई करते समय व्हाइटस्पेस समस्या को ठीक करता है npm रन टेस्ट का उपयोग करके आवश्यक परीक्षण चलाएँ। यदि आपको आवश्यकता हो तो और परीक्षण मामले जोड़ें।
202 | 4. सुनिश्चित करें कि आपका कोड कुछ भी नहीं तोड़ रहा है।
203 | 5. अपने कोड की प्रत्येक पंक्ति पर टिप्पणी करें। आप इसे कैसे कर रहे हैं इसके बजाय लिखें कि आप इसे क्यों कर रहे हैं।
204 | 6. एक बार जब आप तैयार हो जाएं, तो वर्तमान देव शाखा पर एक पीआर बनाएं। सीधे मास्टर शाखा पर जनसंपर्क न बनाएं।
205 | 7. आपके कोड की समीक्षा की जाएगी और अच्छा होने पर पीआर का विलय कर दिया जाएगा।
206 | 8. खुश योगदान ⚙️
207 |
208 |
209 | ## भविष्य की योजनाएं
210 | - कलाम अभी शुरुआती दौर में हैं। कई प्रोग्रामिंग भाषाओं को अपने स्तर तक पहुंचने में दशकों का टीम वर्क लगा। हम कदम दर कदम चलते हैं।
211 | - कलाम के पास एक यूजकेस होना चाहिए ताकि लोग उससे सामान बनाना शुरू कर सकें। उपयोग-मामला अद्वितीय हो सकता है जो भारतीय पारिस्थितिकी तंत्र के लिए उपयुक्त है। यह हमें एक सीधी दिशा में आगे बढ़ने में मदद करेगा। अभी यह सीखने के उद्देश्यों के लिए सबसे अच्छा है।
212 | - कलाम को अपना प्रोजेक्ट मानें, इसे एक्सप्लोर करें और बेझिझक नए आइडिया आज़माएँ।
213 |
214 |
215 | ## प्रलेखन
216 |
217 | दस्तावेज़ीकरण की जाँच करने के लिए दस्तावेज़ीकरण पर जाएँ। [दस्तावेज़ीकरण](https://www.kalaam.io/documentation).
218 |
219 | - दस्तावेज़ीकरण के लिए बहुत काम की ज़रूरत है। मुझे लगता है कि लघु वीडियो वास्तव में पाठों के अधिभार के बजाय वास्तव में मदद करेंगे।
220 |
221 | ## उदाहरण
222 |
223 | उदाहरण देखने के लिए लाइव उदाहरण देखें।[लाइव उदाहरण](https://www.kalaam.io/examples).
224 |
225 | अधिक उदाहरण जोड़ने के लिए स्वतंत्र महसूस करें। उदाहरण के लिए हमारे पास तीन श्रेणियां हैं। बेसिक, इंटरमीडिएट और एडवांस। संदर्भ के अनुसार जोड़ें।
226 | ## प्रशन
227 |
228 |
229 |
230 | ## कंपाइलर कोड कहां है ?:
231 |
232 | कलाम कंपाइल इंजन तक पहुंचने के लिए रेपो संरचना में 'src/lib/Compiler/main.js' पर जाएं और जानें कि कलाम कैसे काम करता है।
233 |
234 |
235 | ## kalam.io स्थानीय स्तर कैसे काम करता है।
236 |
237 | kalam.io का स्थानीय स्तर पर परीक्षण करने के लिए प्रोजेक्ट को फिर से बनाने के लिए सेटअप SETUP.md फाइल में दिया गया है।
238 |
239 | ## मुद्दे
240 |
241 | कलाम में एक मुद्दा मिला? कृपया सबमिट समस्या का उपयोग करें। [सबमिट समस्या ](https://github.com/Kalaam-Programming-Language/Kalaam/issues).
242 |
243 |
244 |
--------------------------------------------------------------------------------
/SETUP.md:
--------------------------------------------------------------------------------
1 | # Steps for recreating
2 |
3 | ### Step 1:
4 |
5 | Fork the repository.
6 | (Top right corner Fork button will be there.)
7 |
8 | ### Step 2:
9 |
10 | Clone the forked repository to local machine using:
11 | ```bash
12 | git clone https://github.com/{Your Github Username}/Kalaam.git
13 | ```
14 | Enter your github name inside the curly braces present inside the url.
15 |
16 | ### Step 3:
17 |
18 | `cd` into the folder where the repository has been cloned and then run the following command.
19 |
20 | ```bash
21 | npm install
22 | ```
23 |
24 | After `node_modules` directory has been created in the root repository directory on the local machine run the commands in **Step 4** and **Step 5**.
25 |
26 | ### Step 4:
27 |
28 |
29 | ```bash
30 | npm run test
31 | ```
32 |
33 | ### Step 5:
34 |
35 |
36 | ```bash
37 | npm run build
38 | ```
39 |
40 | ### Step 6:
41 |
42 | ```bash
43 | npm run serve
44 | ```
45 |
46 | After running the above command [kalaam.io](https://www.kalaam.io/) will be launched on the local server and testing can be done accordingly.
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | "presets": [
3 | "@vue/cli-plugin-babel/preset"
4 | ],
5 | "plugins": [
6 | [
7 | "transform-imports",
8 | {
9 | "quasar": {
10 | "transform": "quasar/dist/babel-transforms/imports.js",
11 | "preventFullImport": true
12 | }
13 | }
14 | ]
15 | ]
16 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "kalaam-FE",
3 | "version": "1.2.0",
4 | "author": "Swanand Kadam ",
5 | "repository": "git://github.com/Kalaam-Programming-Language/Kalaam-core.git",
6 | "scripts": {
7 | "serve": "vue-cli-service serve",
8 | "build": "vue-cli-service build",
9 | "lint": "eslint --ext .js, src",
10 | "lint-fix": "eslint --fix src",
11 | "prod": "npm run build && npm run lint",
12 | "test": "jest"
13 | },
14 | "dependencies": {
15 | "@quasar/extras": "^1.0.0",
16 | "codemirror": "^5.58.2",
17 | "core-js": "^3.4.4",
18 | "kalaam": "^2.3.3",
19 | "quasar": "^1.12.13",
20 | "readline": "^1.3.0",
21 | "register-service-worker": "^1.7.1",
22 | "vue": "^2.6.10",
23 | "vue-carousel": "^0.18.0",
24 | "vue-clipboard2": "^0.3.1",
25 | "vue-codemirror": "^4.0.6",
26 | "vue-router": "^3.3.2",
27 | "vuetify": "^2.2.11",
28 | "vuex": "^3.1.2"
29 | },
30 | "devDependencies": {
31 | "@vue/cli-plugin-babel": "^4.1.0",
32 | "@vue/cli-plugin-pwa": "^4.4.4",
33 | "@vue/cli-plugin-router": "^4.4.1",
34 | "@vue/cli-plugin-vuex": "^4.1.0",
35 | "@vue/cli-service": "^4.4.6",
36 | "babel-eslint": "^10.1.0",
37 | "babel-plugin-transform-imports": "1.5.0",
38 | "eslint": "^7.25.0",
39 | "eslint-config-airbnb-base": "^14.2.1",
40 | "eslint-plugin-import": "^2.22.1",
41 | "eslint-plugin-vue": "^7.9.0",
42 | "jest": "^26.2.2",
43 | "node-sass": "^4.13.0",
44 | "sass": "^1.19.0",
45 | "sass-loader": "^8.0.0",
46 | "vue-cli-plugin-quasar": "~2.0.2",
47 | "vue-cli-plugin-vuetify": "^2.0.5",
48 | "vue-template-compiler": "^2.6.10",
49 | "vuetify-loader": "^1.3.0"
50 | },
51 | "publishConfig": {
52 | "registry": "https://npm.pkg.github.com"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/public/Scripts/x0popup.min.css:
--------------------------------------------------------------------------------
1 | /* x0popup - v0.3.3 | http://gao-sun.github.io/x0popup */
2 | .x0l,.x0l .ball{position:absolute}.xi-error span::before,.xi-info span::before,.xi-ok span::before,.xi-warning span::before{content:'';box-sizing:border-box}.x0l{width:120px;height:10px;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.x0l .ball{width:0;height:0;border:5px solid #000;border-radius:30%;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.x0l .ball-1{border-color:#555;-webkit-animation-name:BallFly-1;animation-name:BallFly-1}.x0l .ball-2{border-color:#777;-webkit-animation-name:BallFly-2;animation-name:BallFly-2}.x0l .ball-3{border-color:#999;-webkit-animation-name:BallFly-3;animation-name:BallFly-3}.x0l .ball-4{border-color:#bbb;-webkit-animation-name:BallFly-4;animation-name:BallFly-4}@-webkit-keyframes BallFly-1{88%,from,to{margin-left:0}38%,50%{margin-left:110px}}@keyframes BallFly-1{88%,from,to{margin-left:0}38%,50%{margin-left:110px}}@-webkit-keyframes BallFly-2{4%,92%,from,to{margin-left:0}42%,54%{margin-left:110px}}@keyframes BallFly-2{4%,92%,from,to{margin-left:0}42%,54%{margin-left:110px}}@-webkit-keyframes BallFly-3{8%,96%,from,to{margin-left:0}46%,58%{margin-left:110px}}@keyframes BallFly-3{8%,96%,from,to{margin-left:0}46%,58%{margin-left:110px}}@-webkit-keyframes BallFly-4{12%,from,to{margin-left:0}50%,62%{margin-left:110px}}@keyframes BallFly-4{12%,from,to{margin-left:0}50%,62%{margin-left:110px}}.x0p-overlay{position:fixed;left:0;top:0;width:100%;height:100%;background-color:rgba(180,180,180,.8);z-index:99998;-webkit-animation:x0pfadeIn .5s ease;animation:x0pfadeIn .5s ease}.x0p,.xi{left:50%}.x0p{position:fixed;top:50%;font-size:16px;background-color:#fff;-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%);font-family:STHeiti,Helvetica;-webkit-animation:x0ppop .45s ease;animation:x0ppop .45s ease;z-index:99999}.x0p-overlay.no-animation,.x0p.no-animation,.x0p.no-animation .xi>span::before{-webkit-animation:none;animation:none}@-webkit-keyframes x0pfadeIn{from{opacity:0}to{opacity:1}}@keyframes x0pfadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes x0ppop{from{-webkit-transform:scale(.9) translate(-55%,-60%);transform:scale(.9) translate(-55%,-60%);opacity:.3}50%{-webkit-transform:scale(1.1) translate(-45%,-60%);transform:scale(1.1) translate(-45%,-60%);opacity:.7}to{-webkit-transform:scale(1) translate(-50%,-60%);transform:scale(1) translate(-50%,-60%);opacity:1}}@keyframes x0ppop{from{-webkit-transform:scale(.9) translate(-55%,-60%);transform:scale(.9) translate(-55%,-60%);opacity:.3}50%{-webkit-transform:scale(1.1) translate(-45%,-60%);transform:scale(1.1) translate(-45%,-60%);opacity:.7}to{-webkit-transform:scale(1) translate(-50%,-60%);transform:scale(1) translate(-50%,-60%);opacity:1}}@-webkit-keyframes x0pslideUp{from{-webkit-transform:translate(-50%,200%);transform:translate(-50%,200%);opacity:0}to{-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%);opacity:1}}@keyframes x0pslideUp{from{-webkit-transform:translate(-50%,200%);transform:translate(-50%,200%);opacity:0}to{-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%);opacity:1}}@-webkit-keyframes x0pslideDown{from{-webkit-transform:translate(-50%,-260%);transform:translate(-50%,-260%);opacity:0}to{-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%);opacity:1}}@keyframes x0pslideDown{from{-webkit-transform:translate(-50%,-260%);transform:translate(-50%,-260%);opacity:0}to{-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%);opacity:1}}.xi{position:absolute;width:80px;height:80px;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xi-ok span::before{position:absolute;height:8%;border-radius:10px;background-color:#60BF80}.xi-ok-left::before{width:40%;left:15%;top:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:showOKLeft .6s ease;animation:showOKLeft .6s ease}.xi-ok-right::before{width:60%;left:35%;top:42%;-webkit-transform:rotate(-50deg);transform:rotate(-50deg);-webkit-animation:showOKRight .75s ease;animation:showOKRight .75s ease}@-webkit-keyframes showOKLeft{75%,from{-webkit-transform:rotate(45deg);transform:rotate(45deg);width:0;left:21%;top:37%}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);width:40%;left:15%;top:50%}}@keyframes showOKLeft{75%,from{-webkit-transform:rotate(45deg);transform:rotate(45deg);width:0;left:21%;top:37%}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);width:40%;left:15%;top:50%}}@-webkit-keyframes showOKRight{80%,from{-webkit-transform:rotate(-50deg);transform:rotate(-50deg);width:0;left:46%;top:65%}to{-webkit-transform:rotate(-50deg);transform:rotate(-50deg);width:60%;left:35%;top:42%}}@keyframes showOKRight{80%,from{-webkit-transform:rotate(-50deg);transform:rotate(-50deg);width:0;left:46%;top:65%}to{-webkit-transform:rotate(-50deg);transform:rotate(-50deg);width:60%;left:35%;top:42%}}.xi-info span::before{position:absolute;background-color:#5080DF}.xi-info-circle::before{width:11%;height:11%;border-radius:50%;left:50%;top:15%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.xi-info-line::before{width:8%;height:45%;border-radius:10px;left:50%;top:35%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.xi-warning span::before{position:absolute;background-color:#F29F3F}.xi-warning-circle::before{width:11%;height:11%;border-radius:50%;left:50%;top:71%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.xi-warning-line::before{width:8%;height:45%;border-radius:10px;left:50%;top:15%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.xi-error span::before{position:absolute;background-color:#EF6080;width:8%;border-radius:10px}.xi-error-right::before{height:80%;top:10%;left:50%;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg);-webkit-animation:errorDrawRight .6s ease;animation:errorDrawRight .6s ease}.xi-error-left::before{height:80%;top:10%;left:50%;-webkit-transform:translateX(-50%) rotate(-45deg);transform:translateX(-50%) rotate(-45deg);-webkit-animation:errorDrawLeft .75s ease;animation:errorDrawLeft .75s ease}@-webkit-keyframes errorDrawLeft{75%,from{height:0;top:22%;left:23%}to{height:80%;top:10%;left:50%}}@keyframes errorDrawLeft{75%,from{height:0;top:22%;left:23%}to{height:80%;top:10%;left:50%}}@-webkit-keyframes errorDrawRight{80%,from{height:0;top:22%;left:76%}to{height:80%;top:10%;left:50%}}@keyframes errorDrawRight{80%,from{height:0;top:22%;left:76%}to{height:80%;top:10%;left:50%}}.noscroll{overflow:hidden}
3 | .x0p.default .button,.x0p.default .icon-wrapper,.x0p.default .text-pure-wrapper,.x0p.default .text-wrapper{display:inline-block;vertical-align:top}.x0p.default .icon-wrapper{position:relative;width:35%;height:100%}.x0p.default .text-wrapper{position:relative;width:65%;height:100%;margin:0 auto}.x0p.default .text-pure-wrapper{position:relative;width:100%;height:100%}.x0p.default .text-anchor{position:absolute;top:50%;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.x0p.default .content{width:100%;height:80%;height:calc(100% - 40px)}.x0p.default.no-button .content{height:100%}.x0p.default .buttons{width:100%;height:40px;position:absolute;bottom:0;background-color:#eee}.x0p.default .text-wrapper .input,.x0p.default .text-wrapper .text,.x0p.default .text-wrapper .title{padding-left:0}.x0p.default .title{padding:0 25px;box-sizing:border-box;font-size:28px;font-weight:700;color:#333}.x0p.default .text{margin-top:5%;padding:0 25px;font-size:18px;color:#777}.x0p.default .error{margin-top:1px;padding:5px 10px;font-size:13px;background-color:#fe9999;color:#fcfcfc}.x0p.default .input{padding:0 30px}.x0p.default input[type=text],.x0p.default input[type=password]{margin-top:7%;padding:8px 10px;outline:0;background-color:#f9f9f9;border-width:0 0 1px;border-style:solid;border-color:#aaa;font-size:18px;box-sizing:border-box;width:100%;color:#aaa;-webkit-transition:all ease .3s;transition:all ease .3s}.x0p.default input[type=text]:focus,.x0p.default input[type=password]:focus{border-color:#5080DF;color:#5080DF}.x0p.default .button{text-align:center;padding:12px 0;font-size:16px;margin-bottom:0;box-sizing:border-box;border:0;outline-width:0;outline-style:solid;outline-offset:-1px}.x0p.default .button-outline:focus{outline-width:1px;-webkit-animation:x0pButtonOutline .3s ease;animation:x0pButtonOutline .3s ease}.x0p.default .button:hover{cursor:pointer}@-webkit-keyframes x0pButtonOutline{from{outline-offset:7px}to{outline-offset:-1px}}@keyframes x0pButtonOutline{from{outline-offset:7px}to{outline-offset:-1px}}.x0p.default .button-ok{background-color:#60BF80;outline-color:#207F40;color:#fefefe}.x0p.default .button-ok:hover{background-color:#50AF70}.x0p.default .button-cancel{background-color:#eee;outline-color:#aaa;color:#666}.x0p.default .button-cancel:hover{background-color:#e3e3e3}.x0p.default .button-warning{background-color:#F29F3F;outline-color:#B25F00;color:#fefefe}.x0p.default .button-warning:hover{background-color:#E28F2F}.x0p.default .button-info{background-color:#6090EF;outline-color:#2050AF;color:#fefefe}.x0p.default .button-info:hover{background-color:#5080DF}.x0p.default .button-error{background-color:#EF6080;outline-color:#AF2040;color:#fefefe}.x0p.default .button-error:hover{background-color:#DF5070}
--------------------------------------------------------------------------------
/public/Scripts/x0popup.min.js:
--------------------------------------------------------------------------------
1 | /* x0popup - v0.3.3 | http://gao-sun.github.io/x0popup */
2 | "use strict";var x0popup,x0p,x0pDefaultConfig={title:"Message",text:null,theme:"default",overlay:!0,width:"90%",height:"50%",maxWidth:"450px",maxHeight:"200px",type:"text",icon:null,iconURL:null,inputType:null,inputValue:null,inputPlaceholder:null,inputColor:null,inputValidator:null,inputPromise:null,showCancelButton:null,buttons:null,autoClose:null,html:!1,animation:!0,animationType:"pop",overlayAnimation:!0,keyResponse:!0,showButtonOutline:!1,buttonTextOk:"OK",buttonTextConfirm:"Confirm",buttonTextCancel:"Cancel",buttonTextDefault:"Button"};x0popup=x0p=function(){function t(){var t="";return t+="width: "+y.width+";",t+="height: "+y.height+";",null!=y.maxWidth&&(t+="max-width: "+y.maxWidth+";"),null!=y.maxHeight&&(t+="max-height: "+y.maxHeight+";"),y.animation&&(t+="-webkit-animation-name: x0p"+y.animationType+"; animation-name: x0p"+y.animationType+";"),!y.overlay&&(t+="outline: 1px solid #ddd"),t}function e(){var t="",e=null==y.icon?y.type:y.icon;switch(t+='',e){case"ok":t+='';break;case"error":t+='';break;case"info":t+='';break;case"warning":t+='';break;case"custom":t+='"}return t+="
"}function n(){var t="";if(x=y.buttons,null==x&&(x=[],1!=y.showCancelButton&&(0==y.showCancelButton||"warning"!=y.type&&"input"!=y.type)||x.push({type:"cancel",key:27}),"text"==y.type||"input"==y.type?x.push({type:"info",key:13}):x.push({type:y.type,key:13})),0==x.length)return"";var e=1==y.keyResponse?"button":"div",n=x.length,i="width: "+(100/n).toFixed(2)+"%; width: calc(100% / "+n+");",l=1==y.showButtonOutline?" button-outline":"";t+='';for(var o=0;o'+c(a)+""+e+">"}return t+="
"}function i(t){var e=document.getElementById(t);null!=e&&e.parentNode.removeChild(e)}function l(){g.classList.remove("noscroll"),document.removeEventListener("keydown",u),i("x0popup"),i("x0p-overlay")}function o(){var t=document.getElementById("x0p-buttons");t.innerHTML=''}function a(){for(var t=x.length-1,e=0;e0){var i=document.getElementById("x0p-button-"+(x.length-1));i.addEventListener("keydown",function(t){9==t.keyCode&&(document.getElementById("x0p-button-0").focus(),t.preventDefault?t.preventDefault():t.returnValue=!1)}),document.getElementById("x0p-button-"+t).focus()}else document.activeElement.blur()}function u(t){for(var e=t.keyCode,n=0;n'+t+"")}function c(t){if(t.hasOwnProperty("text"))return t.text;switch(t.type){case"ok":case"error":case"info":return x0pDefaultConfig.buttonTextOk;case"warning":return x0pDefaultConfig.buttonTextConfirm;case"cancel":return x0pDefaultConfig.buttonTextCancel;default:return x0pDefaultConfig.buttonTextDefault}}function d(){var t=y.inputColor;return null==t?"":""}function v(t){var e=document.createElement("div");return e.innerText=e.textContent=t,t=e.innerHTML}var x,f=arguments[0],m=null,y=JSON.parse(JSON.stringify(x0pDefaultConfig)),h=null,g=document.body;if("string"==typeof f)y.title=arguments[0],void 0!=arguments[1]&&(y.text=arguments[1]),void 0!=arguments[2]&&(y.type=arguments[2]),void 0!=arguments[3]&&("boolean"==typeof arguments[3]?y.overlayAnimation=arguments[3]:m=arguments[3]);else{for(var b in f)y[b]=f[b];void 0!=arguments[1]&&(m=arguments[1])}var w,k,C="",T=null==y.icon&&("text"==y.type||"input"==y.type),E=null!=y.inputType?y.inputType:"input"==y.type?"text":null,B=null==y.inputValue?"":y.inputValue,D=null==y.inputPlaceholder?"":y.inputPlaceholder,L=n(),I=new Promise(function(n,i){w=n,k=i,y.overlay&&(C+=''),C+='