0

我目前正在尝试编译一段 ASN.1 代码。它看起来如下:

RFC1213-MIB DEFINITIONS ::= BEGIN
    IMPORTS 
        experimental FROM RFC1155-SMI
        OBJECT-TYPE FROM RFC-1212;

    mypersonaltest OBJECT IDENTIFIER ::= { experimental 1 }

    tester      OBJECT-TYPE 
        SYNTAX      INTEGER
        ACCESS      read-write
        STATUS      optional
        DESCRIPTION "This is a test"
        ::= { mypersonaltest 1 }

END

现在我总是在线上出错SYNTAX INTEGER

ASN.1 grammar parse error near line 9 (token "SYNTAX"): syntax error, unexpected TOK_SYNTAX, expecting TOK_PPEQ

实际上,这应该根据我在这里得到的示例起作用。我究竟做错了什么?

4

2 回答 2

1

这看起来像是该规范的旧版本,它使用 ASN.1 宏符号而不是 ASN.1 信息对象类。MACRO 符号于 1994 年从 ASN.1 中删除。请考虑找到使用信息对象类而不是过时的 MACRO 符号的规范的更新版本。

您使用的工具可能不支持 ASN.1 MACRO 表示法(1994 年从 ASN.1 中删除)。您可以尝试使用http://asn1-playground.oss.com/上的免费在线编译器,我相信它仍然支持 MACRO 表示法。请注意,编译器必须在解析“tester”(使用 OBJECT-TYPE 宏)​​之前看到 OBJECT-TYPE 的定义。

我要重复一遍,如果您使用使用信息对象类而不是过时的 ASN.1 MACRO 表示法的 ASN.1 规范版本,您将为自己省去很多麻烦。

于 2013-08-15T20:32:48.203 回答
1

应该是OBJECT-TYPE,不是OBJECT TYPE。MIB 文档有问题,您应该尝试找到它的正确版本。

于 2013-08-16T03:12:40.613 回答