我们尝试在ASN1中创建一个宏,但编译器会抛出以下错误:
line 6 (BIGINTMACRO): A0256W: 'BigIntValue' is referenced, but is not defined.
这是我们的代码:
BIGINTMACRO DEFINITIONS ::=
BEGIN
BIGINT MACRO ::=
BEGIN
TYPE NOTATION ::= <type ::= INTEGER>
VALUE NOTATION ::= value (VALUE BigIntValue)
BigIntValue ::= Int1 Int2
Int1 ::= number
Int2 ::= number
END
END
答案 0 :(得分:2)
您是否还有一个特殊原因仍在使用ASN.1 MACRO表示法,该表示法在1994年(20年前)从ASN.1中删除并替换为信息对象类和参数化?使用现代ASN.1会更好,而不是用ASN.1宏表示法将头撞在墙上。
我注意到您正在http://asn1-playground.oss.com使用OSS Nokalva ASN.1编译器或在线ASN.1编译器。您应该通过发送邮件到support@oss.com来要求OSS支持部门为您提供帮助。尽管OSS ASN.1编译器仍支持ASN.1宏表示法,但支持部门可以帮助您将宏表示法转换为现代ASN.1。
宏观符号在20年前从ASN.1中删除,因为它的模糊性以及无法以机器可处理的方式完全捕获宏作者的意图。现代ASN.1信息对象类和参数化解决了旧ASN.1 MACRO表示法中固有的问题。
在这种特殊情况下,“VALUE”关键字之后的内容应该是ASN.1类型,而不是额外的宏生成。