我试图确定ASN.1模块中的类型分配的顺序是否有任何意义。 ASN.1是否类似于一次通过编译器,其中尚未看见的类型无效?
例如,采用以下ASN.1模块:
MySchema DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IntType ::= INTEGER
OtherType ::= IntType
END
在此,我们将IntType
定义为INTEGER
,然后将OtherType
定义为IntType
。
如果相反,我们撤销了订单,并说:
MySchema DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
OtherType ::= IntType
IntType ::= INTEGER
END
这里,当ASN.1编译器第一次遇到IntType
时,它还没有看到类型定义。这会使它成为非法语法吗?
答案 0 :(得分:2)
允许分配以任何顺序出现。对于所有类型的分配(类型分配,值分配,对象分配等)都是如此。只要有中断递归的方法,也允许递归定义。