Я отчаянно ищу компилятор ASN.1, который успешно проанализирует предопределенное определение ASN.1, полученное от клиента.
Ни один из продуктов (бесплатных или коммерческих) до сих пор не смог проанализировать определение, которое основано на XER и имеет некоторую временную зависимость от RXER - когда я указываю соответствующие определения ASN.1 вручную (взятые из RFC), компилятор также выдает ошибки парсера.
Соответствующая строка кода (упрощенно):
MYMSG ::= SEQUENCE
{
msgID [ATTRIBUTE] [250] UTF8String OPTIONAL,
msgType UTF8String
}
Каждый компилятор жалуется на токен [ATTRIBUTE], поэтому я обнаружил, что это является частью спецификации ASN.X, определенной в RFC 4912, и также зависит от поддержки RXER в RFC 4910, см. Также X.680-1.
Проблема в том, что каждый пробный компилятор, кажется, не поддерживает эти схемы кодирования из коробки и не в состоянии анализировать определения, упомянутые в RFC, например. для RXER и всех определений, использующих эту кодировку, я получаю:
"RXER.asn", строка 20
(AdditionalBasicDefinitions): A1139W:
Ссылка на кодировку по умолчанию 'RXER'
для модуля
"AdditionalBasicDefinitions" является
неизвестно и все инструкции по кодированию
в модуле, указанном этим
ссылка на кодировку будет игнорироваться.
ИНСТРУКЦИИ RXER
( Примечание : все зависимые модули, такие как ASN.X, включают инструкцию "RXER INSTRUCTIONS" сразу после тега "DEFINITIONS", что не понимается ни одним из протестированных мной компиляторов).
Я попробовал openasn1 (www.openasn1.org) - забавно то, что в моем коде есть несколько старых и частично функциональных объектов отображения Java, сгенерированных openasn1! - онлайн-компилятор на http://lionet.info/asn1c/asn1c.cgi и различные коммерческие инструменты, такие как Objective Systems ASN1C v6.4.1 на http://www.obj -sys.com / Cnge641Dwld / acv64kits.php (у них даже есть текущий плагин Eclipse ), Марбен 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
Я упускаю что-то очевидное, например, IMPORT или другие определения / флаги компилятора?