Removed support for class. Renamed variables to reflect this change.
Improved IntegrationTests by reducing number of function calls, running time decreased by 50%.
Modified CheckPolicy and its UnitTest to reflect the last decision on supported types. Still need to add the processing of structs.
Changed the UnitTests of CppToJson to reflect better the types we want to accept. This is not needed, since its strictly testing CppToJson. Also added tests that were discussed with David, that will make sure that the warnings are working as expected.
Modified IntegrationTests so that now deserialize is called with the flaw always_include_optional, and removed temporary comments.
Improved performance on the UnitTests by reducing the amount of function calls it was performing. Execution time went from 5 seconds to 1.6 seconds.
Added support for struct hierarchy. Now each struct has a list of the structs it depends on.
Changed 'obj_type_list' to 'struct_list'.
Changed 'struct_name' and 'function_name' to 'name' on the SimpleSchema.
Created a deserialization IntegrationTest to make sure that the output from CppToJson matches the SimpleSchema.
Removed function AddVar, and instead now the variables are set on the constructor.
Changed the way that Declaration/Definition lines where being added into the Class Function.
Changed name from isValid to Verify in a couple functions. It makes more sense now, since they are not only checking validity, but also throwing errors where needed.
Only changed Function to a dictionary at the last second (similar to obj_type).
Fixed spelling of a couple words.
Changed 'func_name' to 'name' to keep function and struct consistent.
Added unit testing for Debug plugin and MlNet plugin.
We had an error with file names previously due to no testing on the MlNet plugin. This PR adds testing to prevent issues like that in the future.
Added a mapping from some C++ to C# types. This list will have to be updated/modified after we confirm the types we support. It will also need to be modified when we support structs.
Prior, the C++ wrapper didn't include any of the `#includes` from the C++ files. Now, it parses the includes list and includes them as well.
NOTE: The includes list does not say whether it was `#includes "file"` or `#includes <file>` and after talking with @<Teo Magnino Chaban>, determining that is not trivial. According to the [C standard](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf#page=182), section 6.10.2 the only real difference is where the compiler looks initially for the file. If it is `#includes "file"` the compiler will first look somewhere (specific to each compiler, but usually in that directory) and then if it can't find the file will reprocess that line as if it were `#includes <file>`. Due to this, I have decided to do all includes as `#includes "file"`. The only potential problem I see with this is if there is a file in the local directory with the exact same name as in the system directory. Open to discussion on this point.
Build cpp files separately instead of #including them, as that masks some errors.
Add header files as well as cpp files to the cmake, for IDE purposes.
Adds a transform for "Regex Vectorization", creating creating a matrix of matches of a list of regular expressions on a list/column of strings.
There are a lot of unknowns on what this should *really* be doing and what the interface should be, but for now it is emulating the functionality of a python implementation.
Added required functionalities to make date_time work, but its not complete since there are a few functionalities that need multiple file access, which is not currently implemented.
Adds DateTime structure and DateTime from c++chrono::system_clock::time_point.
Conversion available as a function and as conversion constructor and assignment operator in the DateTime struct.
Though the input is time_point, we have to convert and use the old C lib methods, because there is still nothing else.
C++2x is set to finally have useful time_point functions ... I suspect we will wind up wanting to take time_t directly from callers as well, since I would imagine that's a common format for them to have and it would be silly to convert from time_t for the function to just convert right back.
I have made some assumptions about input and expected output that may need updating - most values I had to get whether they want to be 0-based or 1-based. All are documented in the struct declaration, and are trivial to change where needed.
Bigger and more important, I also assumed that we will not be operating on dates earlier than 1970. Earlier dates require a completely different implementation on Windows. (msvcrt doesn't support negative time_t, earlier dates require a win32 solution).
Related work items: #3538
The underlying code generator system was updated to include a required "status_stream" parameter when creating context used during the code generation process. This was a breaking change.
This fix adds that parameter so that the build is no longer broken - it is not currently being used.
Adds directory structure, etc. for C++ implementations, with basic Add functions as a placeholder.
This is the same as cppimpl request and updates, but without the weird whitespace only changes and with the right branch name.
[Version 2]The parser can now deal with namespaces, and it also reports the line that the function was declared on, and the line that it was defined on. Added test cases to cover new functionalities.
Added new repository dependencies for Linux and Windows that put GCC (Linux) and Visual Studio Build Tools/MSVC (Windows) on your system.
Note that you will need to re-run bootstrap.cmd|.sh on your system to get the new dependencies.
Most of this code is boilerplate code that creates an environment that can be used to generate code that deserializes the output of CppToJson.py.
The important files are:
- CppyToJson.SimpleSchema
- GeneratedCode/CppToJson_PythonJsonSerialization.py
- SchemaBuildEnvironment/Build.py
- SchemaBuildEnvironment/Readme.rst