ANTLR и массивы - PullRequest
       37

ANTLR и массивы

0 голосов
/ 10 августа 2011

У меня есть вопрос, касающийся реализации массивов с помощью комбинации Java + ANTLR.(Я в основном говорю о массивах в стиле java / c).

Поэтому в основном я спрашиваю, как реализовать такую ​​функцию, если такой пример уже доступен или кто-то может указать мне на что-нибудь, что можетуказать, чтобы решить его.

С другой стороны, я немного искал, каким будет возможное решение.Основная проблема, которую я вижу, состоит в том, что пользователь может создавать массивы различных измерений, даже сойти с ума, если он или она хочет (например, создать массивы 5 измерений или хуже).

Хотя грамматика для чего-то подобного довольно проста

new ID (INT (',' INT)* )

Бэкэнд действительно немного вовлечен.Как я уже сказал, пользователь может вводить любое количество измерений, поэтому размеры массива должны создаваться динамически.(по крайней мере, как я понимаю, может быть, я слишком усложняю вещи?)

После поиска я нашел что-то, что в значительной степени решает эту проблему, вот ссылка на вопрос:

Возможно ли динамическое построение многомерного массива в Java?

Конечно, мой вопрос, является ли этот жизнеспособный пример немного сложным (если не сказать), сложным??Есть ли более изящное решение для этого?

Имея это в виду, я подумал, что, возможно, ответ может заключаться в том, чтобы как-то трансформировать многомерность в более линейную структуру?Может ли что-то подобное быть полезным?Простой поиск по stackoverflow указал на множество решений, таких как:

Алгоритм преобразования многомерного массива в одномерный массив

Стоит ли искатьв этом направлении?

Теперь, в конце, имея в виду, что массивы действительно распространены во многих языках, я должен удивиться, что после поиска в списке рассылки ANTLR не возникает аналогичного вопроса, который, как я ранеесказанное заставляет меня верить, что я, может быть, слишком усложняю вещи?(Если только я не отстой в поиске?) Я был бы очень признателен за обратную связь.

1 Ответ

0 голосов
/ 10 августа 2011

Ваш синтаксис, если я не ошибаюсь, соответствует чему-то вроде

новый символ 4,5,6,7

что странно. Я ожидаю, что вы действительно имели в виду

новый символ [4,5,6,7]

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

...