Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
spirit [2008/04/16 23:59] bwojcies |
spirit [2008/04/17 00:26] bwojcies |
||
---|---|---|---|
Linia 6: | Linia 6: | ||
Parser, zwany także analizatorem składniowym, pozwala na analize danych wejściowych i określenie czy są zgodne z daną gramatyką. Zazwyczaj parsery są wykorzystywane przy przetwarzaniu danych zrozumialych dla czlowieka w dane najbardziej wygodne dla komputera. | Parser, zwany także analizatorem składniowym, pozwala na analize danych wejściowych i określenie czy są zgodne z daną gramatyką. Zazwyczaj parsery są wykorzystywane przy przetwarzaniu danych zrozumialych dla czlowieka w dane najbardziej wygodne dla komputera. | ||
- | Biblioteka Spirit pozwala tworzyć własne złożone parsery lub wykorzytywać te najprostsze wbudowane w bibliotekę. Szablony wyrażeń zastosowanych w bibliotece pozwalają na zapis w notcacji bardzo podobnej do EBNF (Extended Backus-Normal Form): | + | Biblioteka Spirit pozwala tworzyć własne złożone parsery lub wykorzytywać te najprostsze wbudowane w bibliotekę. Szablony wyrażeń zastosowanych w bibliotece pozwalają na zapis w notacji bardzo podobnej do EBNF (Extended Backus-Normal Form): |
\\ Gramatyka EBNF: | \\ Gramatyka EBNF: | ||
<code cpp> | <code cpp> | ||
Linia 317: | Linia 317: | ||
definition(html const& ) | definition(html const& ) | ||
{ | { | ||
- | header | + | //reguly parsowania i wywolywane przez nie akcje: |
- | = ch_p('{')[&head]; | + | |
+ | header | ||
+ | = ch_p('{')[&head]; | ||
tag | tag | ||
- | = (str_p("====")>>(*(~ch_p('=')))>>str_p("===="))[&h1Action] | + | = (str_p("====")>>(*(~ch_p('=')))>>str_p("===="))[&h1Action] |
| (str_p("===")>>(*(~ch_p('=')))>>str_p("==="))[&h2Action] | | (str_p("===")>>(*(~ch_p('=')))>>str_p("==="))[&h2Action] | ||
| (str_p("==")>>(*(~ch_p('=')))>>str_p("=="))[&h3Action] | | (str_p("==")>>(*(~ch_p('=')))>>str_p("=="))[&h3Action] |