+ 14

who wants me to create a quick interpreted language in his name?

1 give me your lang name, no name given i will give it your name 2 give me some syntax 3 as i wll be writing the docs wait for surprises i'll try to do all requests just wait if request too many, they will provide the soloLang server a nice practice

11th Aug 2017, 7:32 PM
Abdur-Rahmaan Janhangeer
Abdur-Rahmaan Janhangeer - avatar
7 Réponses
+ 8
hey that's a full blown lang poor me ... quick lang with some syntax XD ok we take it ! i'll release the lang little by little !
12th Aug 2017, 2:15 AM
Abdur-Rahmaan Janhangeer
Abdur-Rahmaan Janhangeer - avatar
+ 7
Language name : BPLion Syntax : OOP a lot like Python (based on indentation, if/while/def ... : ) for loops: for variable : start_value...end_value : The default container is not list but array like in C/Cpp switch statement : switch var: case val: //no break needed case val1...val2 : ... case val1,val2 : ... default : ... operator overloading like Cpp : def operator*(arg1,arg2): .... You can use any special character to create a new operator like operator$, operator@, operator? (Part 1/2)
11th Aug 2017, 8:12 PM
Baptiste E. Prunier
Baptiste E. Prunier - avatar
+ 7
comments : //,# for single line /* */, """ """ for multi line char and strings : ' for chars, " for strings strings are mutable subarray can be created by default like sublist in python : array[1:4:2] For functions : return type and variable type are optional (if they are written, a variable from another type can not be used as parameter) lambda exists and are written like that : [return type]name(parameters) : statements return type can be omitted (in this case, remove the []) A special function type exist, it is simply func variable : like python, a variable has no type if not written, if written, the variable cannot have values of another type (they can if it exists a method/function to translate from the original type to the variable type) translator functions are like in Cpp : int operator string(string s): .... types are mandatory here pointers exists, they are created like that (with a + symbol): +p v p=@v you have to put a + behind the pointer variable name to tell that it is a pointer, the @ return the address of a variable You can put more than one + for pointers of pointers of ... The code is read in a main function class are declared like in Python, but adding private, protected and public like in Cpp Function parameters are like in python (you can add an array (*p) and a dictionary (**p)) Default type are : int double bool char string map Arrays have a size attribute In class definition, putting a ^ before the attribute name make it read only from outside the class (even derived class) operators are like in Cpp, apart from & and *, replaced by @ and + creating a class is like in Cpp new and delete are also here static, inline, virtual and define from Cpp are also here, but define syntax use a $ instead of a # print is already here and a File type exist (not default but standard) Multiple inheritance is allowed of course (It is not complete but I think it is a good start :p) (Part 2/2)
11th Aug 2017, 8:12 PM
Baptiste E. Prunier
Baptiste E. Prunier - avatar
+ 7
XD that's rare for sure !
12th Aug 2017, 10:24 AM
Abdur-Rahmaan Janhangeer
Abdur-Rahmaan Janhangeer - avatar
+ 5
the vatriables have types here or no?
12th Aug 2017, 3:24 AM
Abdur-Rahmaan Janhangeer
Abdur-Rahmaan Janhangeer - avatar
+ 3
Both are allowed ! The efficient way is of course with types but you can remove the type when declaring the variable and it become a no type python like variable
12th Aug 2017, 7:18 AM
Baptiste E. Prunier
Baptiste E. Prunier - avatar
+ 1
Yeah, I putted all cool stuff I could think about into it :p
12th Aug 2017, 11:32 AM
Baptiste E. Prunier
Baptiste E. Prunier - avatar