powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Может кто-то по JavaCC подсказать?
3 сообщений из 3, страница 1 из 1
Может кто-то по JavaCC подсказать?
    #33180874
Tyke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня задача пропарсить поток в котором несколько строк, в каждой строке:
код_товара(ware) количество(number)

В коде может быть все что угодно, количество из 4х цифр - максимум.

Описал такую структуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
      < NUMBER: <DIGIT> (<DIGIT>)? (<DIGIT>)? (<DIGIT>)? >
    | < WARE: ( <DIGIT> | <SYMBOL> )+ >
    | < EOL: "\n">

    | <#SYMBOL: ["a"-"z","A"-"Z", "а"-"я", "А"-"Я", "_", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "+", "|", "\\", "/", ":", ";", "\"", "\'", "."]>
    | <#DIGIT: ["0"-"9"]>

Работает отлично на всех тестовых примера, кроме случая, когда код товар состоит только из цифр. Нутром чую, что воспринимает как NUMBER, но как описать правильно не знаю.

Заранее, спасибо
...
Рейтинг: 0 / 0
Может кто-то по JavaCC подсказать?
    #33182191
Andrey Spirin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а так нельзя?
<WARE: ( <NUMBER> | <SIMBOL>)+ >
...
Рейтинг: 0 / 0
Может кто-то по JavaCC подсказать?
    #33182805
Tyke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Spirinа так нельзя?
<WARE: ( <NUMBER> | <SIMBOL>)+ >

Нет, так нельзя! Дело в том, что тогда надо <NUMBER>, объявлять как <#NUMBER>. Но тогда его нельзя будет использовать дальше как токен.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Может кто-то по JavaCC подсказать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]