On Thursday, September 22, 2016 at 5:51:43 AM UTC+3, beze...@gmail.com wrote:
> On Wednesday, September 21, 2016 at 10:09:25 PM UTC+3, Peter Otten wrote:
> > bezen...@gmail.com wrote:
> > 
> > > On Wednesday, September 21, 2016 at 5:15:38 PM UTC+3, Peter Otten wrote:
> > >> bezen...@gmail.com wrote:
> > >> 
> > >> > On Wednesday, September 21, 2016 at 3:17:11 PM UTC+3, Peter Otten
> > >> > wrote:
> > >> >> bezen...@gmail.com wrote:
> > >> >> 
> > >> >> > On Wednesday, September 21, 2016 at 1:14:14 PM UTC+3, Peter Otten
> > >> >> > wrote:
> > >> >> >> bezen...@gmail.com wrote:
> > >> >> >> 
> > >> >> >> > After setting up csjark (http://csjark.readthedocs.io/), I'm
> > >> >> >> > trying to test on of my C header files which has following
> > >> >> >> > statements:
> > >> >> >> > 
> > >> >> >> > typedef struct {
> > >> >> >> >    unsigned long X;
> > >> >> >> >    __int64 Y;
> > >> >> >> > } abc;
> > >> >> >> > 
> > >> >> >> > 
> > >> >> >> > If I'm changing __int64 to unsigned long I'm not getting this
> > >> >> >> > error For the __int64 i'm getting the mention error. Am I missing
> > >> >> >> > something?
> > >> >> >> > 
> > >> >> >> > 
> > >> >> >> > In addition, I'm getting following error:
> > >> >> >> > Attribute error("'tuple object has no attibute 'children'",)
> > >> >> >> > 
> > >> >> >> > I'd be glad to have some assistance.
> > >> >> >> 
> > >> >> >> It looks like development of csjark has stopped in 2011. Try
> > >> >> >> installing a pycparser version from that time frame -- 2.05 should
> > >> >> >> be a good candidate according to
> > >> >> >> <https://github.com/eliben/pycparser/blob/master/CHANGES> so if you
> > >> >> >> are using pip after
> > >> >> >> 
> > >> >> >> $ pip install pycparser==2.05
> > >> >> >> 
> > >> >> >> csjark might work.
> > >> >> > 
> > >> >> > I've installed all the required SW, but still getting the same error
> > >> >> 
> > >> >> When you invoke the interactive interpreter what does
> > >> >> 
> > >> >> >>> import pycparser
> > >> >> >>> pycparser.__version__
> > >> >> '2.05'
> > >> >> 
> > >> >> produce on your system?
> > >> > 
> > >> > I have version 2.07 (which is the one used for the development)
> > >> 
> > >> For cjshark to work (or at least not fail in the way you observed) you
> > >> need 2.5.
> > >> 
> > >> 2.7 returns 2-tuples where 2.5 does not. Compare for example:
> > >> 
> > >> 
> > https://github.com/eliben/pycparser/blob/release_v2.07/pycparser/c_ast.py#L149
> > >> 
> > >>     def children(self):
> > >>         nodelist = []
> > >>         if self.name is not None: nodelist.append(("name", self.name))
> > >>         if self.subscript is not None: nodelist.append(("subscript",
> > >> self.subscript))
> > >>         return tuple(nodelist)
> > >> 
> > >> and
> > >> 
> > >> 
> > https://github.com/eliben/pycparser/blob/release_v2.05/pycparser/c_ast.py#L136
> > >> 
> > >>     def children(self):
> > >>         nodelist = []
> > >>         if self.name is not None: nodelist.append(self.name)
> > >>         if self.subscript is not None: nodelist.append(self.subscript)
> > >>         return tuple(nodelist)
> > >> 
> > >> I wonder why you didn't just try what I suggested...
> > > 
> > > Thanks,
> > > This one solved the 2nd problem.
> > > 
> > > Do you have any suggestions for the 1st one?
> > 
> > Here's what I see from your original post:
> > 
> > https://mail.python.org/pipermail/python-list/2016-September/714323.html
> > 
> > So I have no idea what your "1st problem" might be. Can you restate it? 
> > 
> > You have to use text, pictures are removed.
> 
> Clarification with example:
> 
> I'm taking the complex_union_test.h file (which is one of the test files of 
> csjark) and changing on line 8 from int to __int64 so the code is
> 
> #include "union_test.h"
> #include "cenum_test.h"
> 
> typedef signed int BOOL;
> typedef enum {TRUE, FALSE} bool_t;
> 
> typedef union {
>     __int64 int_member;
>     struct cenum_test cenum_test_member;
>     long long long_long_member;
>     BOOL bool_member;
>     bool_t bool_t_member;
>     short short_member;
> } complex_union;
> 
> struct struct_with_complex_union {
>     complex_union complex_union_member;
>     bool_t bool_t_member;
>     union union_test union_test_member;
> };
> 
> Now trying to execute the parsing and getting following error:
> Skipped "headers\complex_union_test.":Win32 as it raised 
> ParseError('headers\\complex_union_test.h:8: before: __int64',)
> 
> I have similar error with my .h file.

seems that I have a solution for it:
instead of __int64 to use "long long" statement
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to