-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
Hi,
given this simple test file:
$ cat kernel.cl
void A() {}The output of parse_file() is different when using the OpenCLCparser vs the pycparser default:
>>> parse_file("kernel.cl", use_cpp=True).children()
(('ext[0]', <pycparser.c_ast.FuncDef at 0x7f986ea2e2c8>),)
>>> parse_file("kernel.cl", use_cpp=True, parser=OpenCLCParser()).children()
(('ext[0]', [<pycparserext.ext_c_parser.PreprocessorLine at 0x7f986ea31240>]),
('ext[1]', [<pycparserext.ext_c_parser.PreprocessorLine at 0x7f986ea314e0>]),
('ext[2]', [<pycparserext.ext_c_parser.PreprocessorLine at 0x7f986ea271d0>]),
('ext[3]', [<pycparserext.ext_c_parser.PreprocessorLine at 0x7f986eacc898>]),
('ext[4]', [<pycparserext.ext_c_parser.PreprocessorLine at 0x7f986ea31470>]),
('ext[5]', [<pycparserext.ext_c_parser.PreprocessorLine at 0x7f986ea31128>]),
('ext[6]', <pycparser.c_ast.FuncDef at 0x7f986ed6b908>))This breaks the behaviour of the show() method:
>>> parse_file("kernel.cl", use_cpp=True, parser=OpenCLCParser()).show()
Traceback (most recent call last)
...
AttributeError: 'list' object has no attribute 'show'What is the meaning of the PreprocessorLine objects? Is there a way I can disable their creation, or have I misunderstood the API?
$ pip freeze | grep pycp
pycparser==2.17
pycparserext==2016.2Metadata
Metadata
Assignees
Labels
No labels