【发布时间】:2015-02-26 15:35:44
【问题描述】:
我有一个像这样的大型结构化语言文件:
TASK SchM_Task {
TYPE = AUTO;
SCHEDULE = NON;
PRIORITY = 160;
ACTIVATION = 1;
TIMING_PROTECTION = FALSE;
AUTOSTART = FALSE;
EVENT = SchM_Event;
RESOURCE = SystemS_Resource;
StackSize = 1024;
NotUsingSchedule = FALSE;
}: "BSW task for calling of bsw runnables";
ALARM SchM_Alarm {
COUNTER = SystemTimer;
ACTION = SETEVENT
{
TASK = SchM_Task;
EVENT = SchM_Event;
};
AUTOSTART = FALSE
{
StaticAlarm = FALSE;
};
};
RESOURCE SystemS_Resource {
RESOURCEPROPERTY = INTERNAL;
}: "Via this resource the cooperativ behavior can be set";
EVENT SchM_Event {
MASK = AUTO;
};
ISR CanIsr_1 {
CATEGORY = 2;
TIMING_PROTECTION = FALSE;
EnableNesting = TRUE;
InterruptLevel = 30;
InterruptSource = CAN1IRQ;
StackSize = 1024;
UseSpecialFunctionName = FALSE;
}: "CAN Send/Receive (main CAN)";
我对 python 和脚本非常陌生。如何使用 python 将此文本文件解析为 AST。在网上搜索时,我发现 python 中的 grako 可能是一个选项。您能否解释一下 grako 如何使用示例代码工作。先谢谢了。
【问题讨论】:
-
我如何设法使用 grako 解析文件。所以现在我有 AST 和 JSON 数据结构。但现在我想编辑 AST 并重新生成文件。 grako 会做同样的事情还是需要任何其他 python 工具。
标签: python abstract-syntax-tree parser-generator ebnf grako