- [x] Chars support - [x] Statements like ```char a = 'h';``` should be evaluated properly - [x] Support for UNICODE chars. (how?) - [x] Strings support - [x] Statements like ```string a = "anime";``` should be evaluated properly - [x] Indexing (accessing chars) - [x] Bound checks (disable it via settings in project) - [x] Arrays support - [x] Support initialization with default values - [x] Indexing (accessing elements) - [x] Bound checks (disable it via settings in project) - [x] Main func - [x] Passing ```string[] args``` to the user main func. Just post prepare *argc* and *argv* shite via forloop. - [x] Statements - [x] For loop - [x] While loop - [x] Switch case - [x] If else if-else - [x] Break / Continue - [x] Better return statements! - [x] Directives - [x] *#define* directive - [x] *#if* *#else* *#endif* directives - [x] Modules and Usings - [x] Compile multiple files into one .obj file - [ ] Declarations - [x] Classes - [x] Funcs - [x] Fields - [x] Lambdas - [x] Tuples (also with expressions or idk, should think about it) - [x] Structs - [x] Accesing struct fields - [x] Enums - [ ] Range (?) - [ ] Constants (real constants, not the current shite) - [x] Interfaces - [x] Delegates - [x] Delegates of static funcs - [x] Delegates of non-static funcs - [x] Properties - [ ] Lang features - [x] Generics - [x] Increment (++) and decrement (--) support (needed?) - [x] Getting Length and Buffer parameters from string and array - [x] Indexing pointers - [x] nD arrays!!! (requires parsing changes) - [x] Passing OutValue through all the asts - [x] Attributes in reflection data - [x] External functions from C dll - [x] Static funcs/classes/fields - [x] Check for private/internal/public when accessing class' data - [x] Static ctors - [x] Allow 'break' shite inside switches (when want to leave a case earlier) - [ ] Check that null could not be assigned to non-nullable types - [ ] Do not allow non-static shite usage in field initializers - [x] Pointer arithmetics - [x] Operators + and - with numbers - [x] *intptr* and *ptrdiff* types - [x] Full inheritance support - [x] From classes - [x] From interfaces - [x] Exceptions - [x] Generating exceptions - [ ] Debug - [ ] Generating *.pdb*s - [ ] Project shite - [x] Project references - [ ] Package references (how???) - [x] Hapet assemblies references
char a = 'h';should be evaluated properlystring a = "anime";should be evaluated properlystring[] argsto the user main func. Just post prepare argc and argv shite via forloop.