|
Как сделать парсер по заданому выражению BNF?
|
|||
---|---|---|---|
#18+
Добрый день. Уважаемые форумчане, кто имел дело с таким вопрсом. Дайте пожалуйста хоть какую то информацию Нужно сделать такое задание http://prnt.sc/ed5zbs С чего начать? (в википедии уже читал что такое BNF, также загуглил примеры, но ничего толкового не нашел) Я так понимаю что это будет функция которая, будет принимать выражение в виде строки '2+2*3', к примеру, а на выходе мы должны получить ее результат. Может есть у кого то какой то пример? Буду благодарен за любую информацию? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2017, 14:40 |
|
Как сделать парсер по заданому выражению BNF?
|
|||
---|---|---|---|
#18+
а на каком языке программирования предлагается сделать сей парсер? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 02:45 |
|
Как сделать парсер по заданому выражению BNF?
|
|||
---|---|---|---|
#18+
GrozaUmnikam aka tarasdj, В чем конкретно проблема? Из готового есть Обратная польская нотация. можно найти, почитать об этом, там и алгоритм разбора есть. взять за основу и сделать чтото похожее. Можно не чиатть это, а сделать с нуля свой велосипед, а-ля стековый автомат. парсим посимвольно, строим в памяти структуру, потом вычисляем исходя из приоритета операций и групп. Можно парсить регулярками, итеративно вычисляя все что можно вычислитьь на данном этапе, постепенно упрощая выражение и приходя к финалу. Можно тупо отсылать пример гуглу, и получать результат. благо его строка поиска может работать как калькулятор.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 08:54 |
|
|
start [/forum/topic.php?fid=23&msg=39410146&tid=1460740]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 117ms |
0 / 0 |