我正在拼命寻找一个 ASN.1 编译器,它可以成功解析我从客户那里得到的预定义 ASN.1 定义。
到目前为止,没有任何产品(免费或商业)能够解析基于 XER 并且具有一些瞬时 RXER 依赖性的定义 - 当我手动指定相关的 ASN.1 定义时(取自 RFC),编译器也发出解析器错误。
相关的代码行是(简化的):
MYMSG ::= SEQUENCE
{
msgID [ATTRIBUTE] [250] UTF8String OPTIONAL,
msgType UTF8String
}
每个编译器都抱怨 [ATTRIBUTE] 令牌,所以我发现这是 RFC 4912 中定义的 ASN.X 规范的一部分,并且还依赖于 RFC 4910 中对 RXER 的支持,另请参见 X.680-1。
问题是我尝试的每个编译器似乎都不支持这些开箱即用的编码模式,并且无法解析 RFC 中提到的定义,例如 RXER 和我得到的所有使用这种编码的定义:
“RXER.asn”,第 20 行(AdditionalBasicDefinitions):A1139W:模块“AdditionalBasicDefinitions”的默认编码参考“RXER”未知,模块内由该编码参考标识的所有编码指令都将被忽略。
接收器说明
(注意:像ASN.X这样的所有依赖模块都在“DEFINITIONS”标记之后立即包含指令“RXER INSTRUCTIONS”,我尝试过的任何编译器都不理解)。
我尝试了 openasn1 (www.openasn1.org) - 有趣的是,我得到的代码中有一些旧的和部分功能的 Java 映射对象,这些对象是由 openasn1 生成的!- http://lionet.info/asn1c/asn1c.cgi上的在线编译器和http://www.obj-sys.com/Cnge641Dwld/acv64kits.php上的 Objective Systems ASN1C v6.4.1 等各种商业工具(他们甚至有一个当前的 Eclipse 插件),Marben http://www.marben-products.com/asn.1/tce_java.html和 unigone http://www.unigone.com/en/products/Asn1Compiler/description
我总是收到类似这样的错误:
ASN.1 grammar parse error near line 13 (token "ATTRIBUTE"): parse error, unexpected TOK_capitalreference, expecting TOK_number
我是否遗漏了一些明显的东西,例如 IMPORTs 或其他定义/编译器标志?