如果我在特定值之前定义VALUE
令牌,则data_stmt
规则有效,但是address_stmt
找不到可行的替代方案,因为十进制或十六进制数将与{{1 }}之前。
另一方面,如果我在所有特定值之后定义VALUE
,则VALUE
有效,但是address_stmt
失败,因为任何特定值令牌都将在data_stmt
之前匹配。
是否可以通过重新排列语法来解决此问题?
也许有一种使用谓词的方法,但是我对它们还没有足够的了解。
一种可能的解决方案是使用所有特定的标记并完全放弃VALUE
,但这会使语法过于冗长和不太优雅。
我还可以定义VALUE
以使用任何address_stmt
,然后在侦听器代码中仅允许使用十六进制和十进制数字,但是如果可能的话,我宁愿在语法中解决这个问题。
示例来源:
VALUE
语法:
address $0108
data $0E08, $0A00