Hello everyone, I'm Shuai Meng, a student from Beihang University of China, who have attended Gosc 2014 for wine vbscript. I would like to continue to work on this module this year: on one hand, I am familiar with it through last year's experience; on the other hand, as I have studied it deeper and deeper, I find it more difficult than imagined, and I think understanding and fulfilling this interpreter of vbscript is very meaningful and interesting.
Last year, the relatively simple built-in functions have been implemented by my effort, with the generous help of many warm-hearted people. The left functions are more challenging, I have to study more about COM and DLL in order to understand the mechanism.
Now let's talk about the details of my plan, the functions unimplemented can be sorted as below:
1.The first kind is the functions about date and time, they have not been implemented because Wine's vbscript is not able to parse date constant in the form of "#yy-mm-dd#" yet. The functions below can be hopefully implemented as long as I sovle this problem: IsDate CDate Day Month Weekday Year Hour Minute Second DateValue TimeValue DateSerial TimeSerial DateAdd DateDiff DatePart.
2.The second kind is about strings, they are LenB LeftB RightB MidB InStrB Replace String StrComp. I have sent some patches to implement String, which all failed. Then I realized that I have to solve the problem of locale before I can implement them.
3.The third kind is about characters: Asc AscB ChrB ChrW Escape Unescape, I have already sent patch for Asc, but due to the same problem as strings, it didn't work. Again I have to implement GetLocale and SetLocale function, however as Piotr pointed, these two functions are not registered in native typelib, so I have to figure out another way to implement them, instead of using idl files.
4.The fourth kind is about arrays: IsArray LBound UBound Array Filter Join Split. Though haven't considered them seriously, but I can feel that they harder than those listed before.
5.The fifth kind is about math, but only left Randomize and Rnd, they are a little difficult, but I think it's unnecessary to implement them manually, I mean there must be a wrapper function. I have found some samples in jscript and other modules, I will learn from them.
6.The sixth kind is others: Eval Execute ExecuteGlobal GetRef LoadPicture InputBox FormatNumber FormatCurrency FormatPercent FormatDateTime, they are the most difficult, I am not sure whether I can implement them, but I will try.
7.The remaining functions are about Error handling: Err_Description Err_HelpContext Err_HelpFile Err_Source Err_Raise. I haven't studied them yet, but sooner or later I will meet them.
This is my idea for GSoC 2015, I appreciate for any comment. Thank you.