Я использую pycparser для разбора кода на C. Когда я запускаю скрипт, pycparser не мог понять эту функцию, и она выдает ошибку, как показано ниже.Как заставить Pycparser понять мою функцию c
номерFile "C:\Python27\lib\site-packages\pycparser\__init__.py", line 93, in parse_file
return parser.parse(text, filename)
File "C:\Python27\lib\site-packages\pycparser\c_parser.py", line 124, in parse
return self.cparser.parse(text, lexer=self.clex, debug=debuglevel)
File "C:\Python27\lib\site-packages\pycparser\ply\yacc.py", line 265, in parse
return self.parseopt_notrack(input,lexer,debug,tracking,tokenfunc)
File "C:\Python27\lib\site-packages\pycparser\ply\yacc.py", line 1047, in parseopt_notrack
tok = self.errorfunc(errtoken)
File "C:\Python27\lib\site-packages\pycparser\c_parser.py", line 1423, in p_error
column=self.clex.find_tok_column(p)))
File "C:\Python27\lib\site-packages\pycparser\plyparser.py", line 54, in _parse_error
raise ParseError("%s: %s" % (coord, msg))
ParseError: dsc.c:2592:1: before: {
Линия он показывает не что иное, как функции, как это
void dsc (void)
{
Может кто-нибудь сказать, как сделать pycparser в undertand мою функцию?
static void dsc (void)
{
UINT8 j, i;
static UINT16 jump;
for (j = 0; j< 10; j++)
{
jump = dsc_jump
for
(i = 1; i < 10; i++)
{
if
(
((jump & 0x50 != 0)
)
{
jump = dsc_jump
}
}
}
Это может помочь показать всю вашу функцию, чтобы мы могли воспроизвести вашу ошибку. Т.е. сообщение [SSCCE] (http://sscce.org/). –
Предполагается, что это действительный код C? Потому что это не так. Вы уверены, что скопировали код здесь правильно? Как часть SSCCE (не уверен, прочитаете ли вы ссылку или нет), вы также должны дать нам команды _exact_, которые нам нужно использовать, чтобы воспроизвести вашу ошибку, включая код _exact_. –