Здравствуйте, monitooa, Вы писали:
M>Помогите на бизоне сделать простенький парсер буквально по 2-м условиям.
M>А. Если предложение содержит 3 точные последовательности в произвольном порядке:
M> последовательность №1 "This document content"
M> последовательность №2 "one"
M> последовательность №3 "two"
M> -----------------
M> Если есть совпадение, то возвращается результат "1"
M>Б. Если предложение содержит 3 точные последовательности с заданными масками в заданном порядке:
M> последовательность №1 "This doc*"
M> последовательность №2 "co*nt"
M> последовательность №3 "t?o"
M> -----------------
M> Если есть совпадение, то возвращается результат "2"
M> Сам никогда с бизоном не работал, а времени вникать в тонкости бизона совсем нету!
M> Спасобо!
root: sequences ;
sequences: /*empty*/
| any_sequence sequences
;
any_sequence: seqence_comb { return 1; }
| masked_seqence_comb { return 2; }
;
seqence_comb: tSEQ tSEQ tSEQ
;
masked_seqence_comb: tMSK_SEQ tMSK_SEQ tMSK_SEQ
;
Что то вроде того. Если Я правильно понял.
Определять что у тебя есть tSEQ а что tMSK_SEQ нужно будет научить лексер FLex т.е..
Вот только что ты будешь делать если они будут идти в перемешку?
p.s.
2Moderators: сделайте пожалуста наконец-то возможность редактирования сообщений.
Это ж невозможно так 3-й раз горхать меседж что бы что то исправить.