Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/malikwhitten67/vscript
A statically typed language built ontop of java 🍵
https://github.com/malikwhitten67/vscript
Last synced: about 1 month ago
JSON representation
A statically typed language built ontop of java 🍵
- Host: GitHub
- URL: https://github.com/malikwhitten67/vscript
- Owner: MalikWhitten67
- Created: 2024-05-02T01:37:10.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-05-10T18:17:51.000Z (6 months ago)
- Last Synced: 2024-05-11T02:28:03.899Z (6 months ago)
- Language: Java
- Homepage:
- Size: 324 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# VSCRIPT
What is vscript?
- A staticaly typed language built ontop of java
- A project aimed to improve skillset
- A simple languageBeginner dev?
1. What will i gain reading through the code?
- You will be able to understand how lexers work - proper usage of Abstract Syntax Tree's (AST);
- You will be able to understand
- string manipulation
- Arrays
- Loops
- Common lexing lookaheads char indexing;
- ArrayLists
- Type checking / string parsing
- Lexical logic# TODO LOG
- Improve printing values , currently we cannot add more than one operator assignment [Done];
- Allow function calls / working out a scope system [Done]l
- Refacotoring - organizing different parts of the lexer / some optimizations
- Error handling
# Changelog1. 5/2/24
- Added print statements
- Parsed integer variables by their operator type;
- Fixed issue with whitespace within left hand assignments;
- Fixed improper math calculation
![alt text](screenshots/image-1.png)2. 5/3/24
- Better code management / error handling
- Added the ability to chain operators
- Added ability to use \n within strings in print statements - aswell as adding two strings together
![alt text](screenshots/image2.png)
3. 5/6/24
- Fixed calculation issues with division- Started working on functions
```v
// will soon work
int main(a , b){
return a + b
}
```
4. 5/7/24
- Still working on getting functions working!5. 5/8/24
- Functions are shown to work
![Functions Working](screenshots/image.png)
- Added Scoped print statements and scoped variables;
```v
int main(a, b){
int x = 100; // this should be scoped
print(x); // this will also be scoped to the function
return a + b;
}print(x); // x should not be working here
```
Error:
- ![unsgined print](screenshots/image3.png)6. 5/9/24
```v
int main(){
int k = 100 * 100 / 5;
print(k);
return 100 * 100;
}main();
print(main())
```
![alt text](screenshots/image4.png)
- You can now call functions aswell as print returned values!
- Fixed issue where printing a number without an opperand threw an error aswell as printing strings without opperands
- Fixed issue where printing strings by themselves or numbers by themselves threw an indexing error
- Added ability to print strings + variables or parameters
- Added ability to print parameters# Road Map!
1. Scoped (Global|Private) - this is a must have currently int can be called within any scope - it would be effective if variables are bound to the parent container and cannot be accessed outside of it! (Currently Working On)
2. Functions (Currently Working On)
- Being able to invoke functions within itself but also outside
3. If Statements - the embodiment of any logic
4. Imports and Exports;
5. Switch cases - performantttt
6. Rewrite a subset in c++