0

我正在尝试确定 ASN.1 模块中类型分配的顺序是否有任何意义。ASN.1 是否类似于一次性编译器,其中尚未见过的类型是无效的?

例如,采用以下 ASN.1 模块:

MySchema DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
    IntType ::= INTEGER
    OtherType ::= IntType
END

这里我们定义IntType为是一个INTEGER,然后OtherTypeIntType

如果相反,我们颠倒顺序,并说:

MySchema DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
    OtherType ::= IntType
    IntType ::= INTEGER
END

在这里,当 ASN.1 编译器第一次遇到IntType时,它还没有看到类型定义。这是否使它成为非法语法?

4

1 回答 1

2

允许以任何顺序出现作业。这适用于所有类型的赋值(类型赋值、值赋值、对象赋值等等)。只要有办法中断递归,递归定义也是允许的。

于 2013-09-12T20:15:12.930 回答