Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to parse idl file containing expressions correctly. #137

Open
duchengyao opened this issue Oct 26, 2022 · 0 comments
Open

Unable to parse idl file containing expressions correctly. #137

duchengyao opened this issue Oct 26, 2022 · 0 comments
Labels

Comments

@duchengyao
Copy link

If an expression is included, the expression will be incorrectly parsed into the variable name in the .i file.

idl:

struct RawData{
    float raw_data[2*2];
};
$ fastddsgen -python raw.idl
$ mkdir build; cd build ;cmake ..; make
openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
Loading templates...
Processing the file raw.idl...
Generating Type definition files...
Generating Swig interface files...
Generating TopicDataTypes files...
Generating Swig interface files...
Adding project: raw.idl

.......

[ 66%] Swig compile raw.i for python
/opt/ros/humble/include/fastrtps/fastdds/dds/core/LoanableTypedCollection.hpp:68: Warning 389: operator[] ignored (consider using %extend)
/opt/ros/humble/include/fastrtps/fastdds/dds/core/LoanableTypedCollection.hpp:93: Warning 389: operator[] ignored (consider using %extend)
/home/s1nh/project/tmp/idl/raw.i:68: Error: Syntax error in input(1).
make[2]: *** [CMakeFiles/rawWrapper_swig_compilation.dir/build.make:76: CMakeFiles/rawWrapper.dir/rawPYTHON.stamp] Error 1
make[2]: *** Deleting file 'CMakeFiles/rawWrapper.dir/rawPYTHON.stamp'
make[1]: *** [CMakeFiles/Makefile2:140: CMakeFiles/rawWrapper_swig_compilation.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

In raw.i :L68

%template(float_2*2_array) std::array<float,2*2>;

The variable name is incorrect containing 2*2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants