Стани премиум член и добиј попуст на 2000+ производи и куп други бенефити!

Parse Tree

DEXTER

hello world
27 март 2009
95
1
Дали некој има правено програма за правење на Парсирачко дрво ? , ако може да ми објасни што всушност се добива со него ????
 

Petkovsky

hello world
7 декември 2009
323
31
Со парсирачко дрво можеш да провериш дали некоја граматика генерира одредена низа. Кажи што точно ти треба, постојат многу видови на парсери.

Да не те збунам само еве еден пример
Имаш граматика:

S -> aSb
S -> c

доколку сакаш да провериш дали низата aaacbbb е во зададената граматика, можеш да изградиш вакво дрво:
______S
___a__S___b
_a____S____b
a_____S_____b
______c

Листовите во дрвото се завршните знакови . Читајки лево-доле-десно-горе добиваме aaacbbb. Низата е во зададената граматика.
 

DEXTER

hello world
27 март 2009
95
1
Незна ни јас точно сега барам низ интернет , на пример top-down !
 

Petkovsky

hello world
7 декември 2009
323
31
Ок топ даун, или од врв према дно, се гради рекурзивно и техниката се вика рекурзивен спуст. За секој незавршен знак пишуваш посебна функција и така ја проверуваш низата.

Пример за граматиката погоре, ке напишеш ваква функција.
Код:
S()
{
    procitaj znak
    ako (procitaniot znak = c)
        vrati se od funkcijata

    ako (procitaniot znak != a)
        vrati false

   S();
 
   procitaj znak
   ako (procitaniot znak != b)
        vrati false


}

Оваа функција ти вреди само за S знакот. Доколку имаш повеќе продукции, т.е. незавршни знакови, треба да напишеш за сите по една ваква функција. Идејата е таа, доколку имаш конкретен пример би можел да ти помогнам повеќе.
 
членови онлајн
мислења
теми
членови

Последни огласи

IT.mk/market понуда

Бесплатна достава на 3000 производи
На врв Дно