使用pycparser我想在函数中提取语句?

时间:2017-08-01 03:28:17

标签: python pycparser

例如我在我的函数定义中有这个语句

(void)((void)( SchM_Enter_Com(COM_EXCLUSIVE_AREA_0), (*( uint8 *)((((&*bix_rx_bms_stat_ar2_BMS_BatTmp_Max_A*))))) = (uint8) ( ((*(com_UnionBuffer.raw)[(0u) + 2]* & (uint8)0xe0) >> 5u) | (((com_UnionBuffer.raw)[(0u) + 3] & (uint8)0x1f) << 3u) ), SchM_Exit_Com(COM_EXCLUSIVE_AREA_0), (uint8)(((0 < com_LMgt_RxPduGroupState[((PduIdType)0)])) ? 0u : 0x80u) ), ((Std_ReturnType)(0U)));

我想提取名称和数组索引(以斜体显示)。我真的很感激这里有一些帮助吗?

1 个答案:

答案 0 :(得分:0)

要遵循的一个好例子是func_calls - 它提取对给定函数的所有调用。同样,您可以提取AST的其他部分。要探索为代码生成的AST,请参阅explore_ast示例。