描述
关键词:Xabel,ABEL,.abl,状态机,GOTO,状态方程,不正确
紧迫性:标准
一般描述:
当我使用{,}来封装状态方程时,忽略了赋值。
例如:
状态图
异步复位状态:CLR;
国家状态:如果!(a b b)然后初始化;
否则,如果(a)则{Goto Stiste1;}
否则{GOTO STATE2;}
州政府一:GTO to NITTHEAT;
州政府2:GTO to NITTHATE;
上面所述的简单状态机将产生下列方程:
“状态1=(iNITS.Q);
“状态2=(iNITS.Q);
代替这些期望的方程:
“Std.
“状态2=(iNATS.Q &!)!A、B);
解决方案
根据ABEL语法,编译器正在寻找一个单一的状态方程,例如“STATE1”或“GOTO STATE1”。因为{,}的使用指示包含多个语句,所以它们在ABEL语法中没有意义。
当{,}不被使用时,ABEL码将编译正确的方程。当包含{ }时,将忽略附加到语句的条件。
如果状态机必须用某些寄存器集转换到下一个状态,则应该使用“带”语句。
(对语法检查器提出了增强请求,以便在{ } s与状态方程结合使用时报告错误或警告)。
没有回复内容