Narzędzia użytkownika

Narzędzia witryny


spirit

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
spirit [2008/04/16 23:45]
bwojcies
spirit [2008/04/17 00:26] (aktualna)
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 239: Linia 239:
  
 ==== Zbierzmy wszystko razem ==== ==== Zbierzmy wszystko razem ====
 +Po tych podstawach, przydałoby się napisać krótki program ilustrujący faktyczne działanie biblioteki Spirit. Podany program zamienia formatowanie w stylu wiki na dokument html. Aby rozpocząc wprowadzanie należy otworzyć klamrę { a po zakończonym wprowadzaniu zamknąć klamrą }. Podobnie jak w wiki nagłówki oznacza się za pomocą symboli "​="​ linki tak jak w wiki, kod za pomocą tagów <​coding>​ </​coding>​. Program jest bardzo uproszczony,​ ale latwo mozna dodac więcej rozpoznawanych przez niego tagów.
  
-Po tych podstawach, przydałoby się napisać krótki program ilustrujący faktyczne działanie biblioteki Spirit. Podany program zamienia formatowanie w stylu wiki na dokument html. Aby rozpocząc wprowadzanie należy otworzyć klamrę { a po zakończonym wprowadzaniu zamknąć klamrą }. Podobnie jak w wiki nagłówki oznacza się za pomocą symboli "​="​ linki: "​[[jakis link | nazwa ]]" 
  
  
 <code cpp> <code cpp>
 +
 +
 #include <​boost/​spirit/​core.hpp>​ #include <​boost/​spirit/​core.hpp>​
 #include <​iostream>​ #include <​iostream>​
Linia 315: 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]
             | (str_p("​="​)>>​(*(~ch_p('​='​)))>>​str_p("​="​))[&​h4Action]             | (str_p("​="​)>>​(*(~ch_p('​='​)))>>​str_p("​="​))[&​h4Action]
-            | (str_p("<​code>"​)>>​*(anychar_p-str_p("</​code>"​))>>​str_p("</​code>"​))[&​code] ​           +            | (str_p("<​coding>"​)>>​*(anychar_p-str_p("</​coding>"​))>>​str_p("</​coding>"​))[&​code] ​          
             | (str_p("​[["​)>>​(*((~ch_p('​]'​))-ch_p('​|'​)))>>​ch_p('​|'​)>>​(*(~ch_p('​]'​)))>>​str_p("​]]"​))[&​href];​             | (str_p("​[["​)>>​(*((~ch_p('​]'​))-ch_p('​|'​)))>>​ch_p('​|'​)>>​(*(~ch_p('​]'​)))>>​str_p("​]]"​))[&​href];​
             document             document
Linia 375: Linia 379:
     }     }
  
 +</​code>​
  
 ==== O bibliotece Spirit w sieci ==== ==== O bibliotece Spirit w sieci ====
spirit.1208382342.txt.gz · ostatnio zmienione: 2008/04/16 23:45 przez bwojcies