Застрял с компилятором BinaryNotes - PullRequest
0 голосов
/ 27 января 2012

Я пытаюсь реализовать какой-то протокол в Java.Для этого я использовал компилятор BinaryNotes и их библиотеку API, но я застрял с этим примером.Вот мой входной файл asn1:

Test
DEFINITIONS ::= 
BEGIN
    OPERATION ::= CLASS
    {
        &Argument   OPTIONAL,
        &opCode Code UNIQUE OPTIONAL
    }
    WITH SYNTAX
    {
        [ARGUMENT &Argument]
        [CODE &opCode]
    }

    OperationA OPERATION ::=
    {
        ARGUMENT Arg
        CODE global:{org(0) operA(1) ver(1) id(1)}
    }

    Code ::= CHOICE
    {
        local INTEGER,
        global OBJECT IDENTIFIER
    }

    Arg ::= SEQUENCE
    {
        operationID INTEGER,
        value   ArgValue
    }

    ArgValue ::= OCTET STRING (SIZE(1..25))
END

и вот вывод компилятора bn:

  1. Компилируемый файл: test1.asn
  2. строка 4: 9: неожиданный токен: OPERATION
  3. строка 6:17: неожиданный символ: '&'

Как мне изменить мой входной файл asn1, чтобы успешно скомпилировать егос компилятором bn.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 27 января 2012

Обратите внимание, что класс не может быть изменен на последовательность. Это может устранить сообщения об ошибках в более старом компиляторе, но дает совершенно другое значение.

Я предлагаю вам приобрести более новый компилятор ASN.1, который поддерживает выпуск ASN.1 2008 года. Вы можете найти список инструментов ASN.1 (некоторые бесплатные, некоторые коммерческие) на http://www.itu.int/ITU-T/asn1/links/index.htm.

Пол

0 голосов
/ 27 января 2012

Новый синтаксис классов ASN.1 не поддерживается в BinaryNotes, извините!Также нет поддержки CODE global:{org(0) operA(1) ver(1) id(1)} Вы можете попробовать с базовой ASN.1, как это:

DEFINITIONS ::= 
BEGIN
    OPERATION ::= SEQUENCE
    {
        argument Arg OPTIONAL,
        code Code OPTIONAL
    }


    Code ::= CHOICE
    {
        local INTEGER,
        global OBJECT IDENTIFIER
    }

    Arg ::= SEQUENCE {
    }
...