Macros ASN1宏值“;引用,但未定义;

Macros ASN1宏值“;引用,但未定义;,macros,asn.1,Macros,Asn.1,我们尝试在ASN1中生成宏,但编译器抛出以下错误: line 6 (BIGINTMACRO): A0256W: 'BigIntValue' is referenced, but is not defined. 这是我们的代码: BIGINTMACRO DEFINITIONS ::= BEGIN BIGINT MACRO ::= BEGIN TYPE NOTATION ::= <type ::= INTEGER> VALUE NOTATION ::= valu

我们尝试在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
BIGINTMACRO定义::=
开始
BIGINT宏::=
开始
类型表示法::=
值表示法::=值(值BigIntValue)
BigIntValue::=Int1 Int2
Int1::=number
Int2::=number
结束
结束

您仍然使用ASN.1宏表示法有什么特殊原因吗?该表示法于1994年(20年前)从ASN.1中删除,被信息对象类和参数化所取代?使用现代ASN.1比用ASN.1宏符号把头撞在墙上要好得多

我注意到您正在使用OSS Nokalva ASN.1编译器或在线ASN.1编译器。您应该要求OSS支持部门通过向以下地址发送邮件来帮助您support@oss.com. 尽管OSS ASN.1编译器仍然支持ASN.1宏表示法,但支持部门可以帮助您将宏表示法转换为现代ASN.1

宏符号在20年前从ASN.1中删除,因为它的模糊性以及无法以机器可处理的方式完全捕获宏作者的意图。现代ASN.1信息对象类和参数化解决了旧ASN.1宏表示法固有的问题


在这种情况下,“VALUE”关键字后面的内容应该是ASN.1类型,而不是额外的宏产品。

你好,Paul,是的,我仍然尝试使用ASN.1宏表示法是有特殊原因的。我们有一位坚持使用macro的老师,但别问我为什么……请问他为什么要教授20年前因为其固有问题而从ASN.1中删除的内容。他应该专注于ASN.1的当前版本,除非他试图给我们上一堂关于坏思想的历史课。这是他的陈述:“自1994年以来,宏被更现代的语言概念所取代,但在网络管理标准中,它们仍然被使用,因此必须被理解”。。。PS:我是从德语翻译过来的,所以可能不是perfect@PaulThorpe关于宏被弃用的来源?@NeDark在1994年X.680(X.208的替代品)发布后,ITU-T撤销了X.208(其中定义了ASN.1宏)。您可以访问ITU-T书店,查找X.208以查看其当前状态为“撤回”。