Нужно написать функцию разбора тега XML, используя конечный автомат. Думаю мож кто писал, и есть готовый код на Java? Буду очень благодарен.
Здравствуйте, AlexeyShponarsky, Вы писали:
AS>Нужно написать функцию разбора тега XML, используя конечный автомат. Думаю мож кто писал, и есть готовый код на Java? Буду очень благодарен.
А не проще ли для таких целей использовать lex. Он как раз КА генерит. Можно ещё ручками КА сделать по регэкспу, но зачем? Не проще ли забить на КА и сделать так как удобнее?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, AlexeyShponarsky, Вы писали:
AS>Я не знаю что такое lex. Мож ссылук какую? в гугле только документацию надыбал. заранее спасибо.
Во-первых, Википедия рулит.
Во-вторых, есть flex — бесплатный аналог lex. Эта штука как раз и строит КА по регэкспам и генерит код.
В-третьих, для полноценного анализа лучше использовать что-нибудь помощнее, например ANTLR.
В-четвёртых, а Вы уверены, что нужен именно лексический анализ? М.б. нужен синтаксический? Тогда могу порекомендовать связку lex/yacc или тот же ANTLR. Только КА непригоден для синтаксического анализа. Нужна штука помощнее — (конечный) автомат с магазинной памятью. Как раз утилиты вроде yacc или ANTLR генерируют конечный автомат с магазинной памятью
Наконец, даже если есть утилиты, автомтизирующие процесс построения пары парсер/лексер, нужно в общих чертах разбираться в теории компиляторов. Могу порекомендовать "Построение и анализ вычислительных алгоритмов", авторы Ахо, Ульман, Хопкрофт, в народе известна так же как "Драконья книга".
PS: Народ, кто знает, почему ANTLR не закачивается? Пытаюсь скачать, но после первых 400 Кб загрузка останавливается.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, konsoletyper, Вы писали:
K>Могу порекомендовать "Построение и анализ вычислительных алгоритмов", авторы Ахо, Ульман, Хопкрофт, в народе известна так же как "Драконья книга".
Э-э-э... Это я не с того места название скопировал. "Компиляторы: принципы, технологии и инструменты.", авторы Ахо, Ульман, Сети.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>