Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Может кто-то по JavaCC подсказать? / 3 сообщений из 3, страница 1 из 1
22.07.2005, 18:52
    #33180874
Tyke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может кто-то по JavaCC подсказать?
У меня задача пропарсить поток в котором несколько строк, в каждой строке:
код_товара(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
25.07.2005, 11:29
    #33182191
Andrey Spirin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может кто-то по JavaCC подсказать?
а так нельзя?
<WARE: ( <NUMBER> | <SIMBOL>)+ >
...
Рейтинг: 0 / 0
25.07.2005, 14:47
    #33182805
Tyke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может кто-то по JavaCC подсказать?
Andrey Spirinа так нельзя?
<WARE: ( <NUMBER> | <SIMBOL>)+ >

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


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