ObjectHTML
Wstęp - geneza, zastosowania |
Kompilator ObjectHTML tworzy tylko zwykłe pliki zawierające kod HTML. Nie jest możliwe łatwe zintegrowanie ObjectHTML z istniejącymi serwerami WWW tak aby kompilator przetwarzał parametry pochodzące z zapytania protokołu HTTP i dynamicznie generował stronę w odpowiedzi. Na początku pracy napisałem, że ObjectHTML powinien być używany do pracy nad większymi projektami. Nieodzowną częścią wielu takich projektów są strony generowane dynamicznie. Wygląd wszystkich stron dynamicznych i statycznych powinien być taki sam, więc logiczne jest użycie jednego narzędzia do stworzenia układu. Rozwiązaniem tego problemu jest stworzenie układu strony i plików statycznych w ObjectHTML i użycie narzędzia makedefs pozwalającego na łatwą integrację wyników pracy kompilatora z narzędziami takim jak ASP, PHP. Właściwie dodawanie nowego modułu do kompilatora rozszerzającego go o możliwość dynamicznej generacji stron nie jest rozsądnym pomysłem. Technologie ASP i PHP są wysoko rozwinięte i nie ma potrzeby pisania czegoś co jest już zrobione. Makedefs służy do tworzenia plików nagłówkowych języków programowania: C, C++, PHP, ASP. Pliki te są konwertowane z stron wygenerowanych przez kompilator OHTML. Do generowanej strony należy dołączyć pary instrukcji sterujących pełniących funkcję nawiasów. Makedefs p rzetwarza pliki w poszukiwaniu instrukcji sterujących, a po znalezieniu pary do pliku wynikowego dodaje instrukcję definiującą stałą tekstową z tekstem znajdującym się w nawiasach.Każda z instrukcji sterujących powinna zaczynać się w pierwszym znaku nowej linii.Ich postać jest następująca (iden jest dowolnym identyfikatorem): <!--MYDEF iden--> <!--ENDMYDEF--> Dodatkowo powyższe instrukcje mają formę komentarzy języka HTML. Dzięki temu stronę mającą ulec konwersji można bez żadnych przeszkód obejrzeć w przeglądarce, a instrukcje makedefs zostaną zignorowane. Można więc dopracować wygląd stron dynamicznych bez potrzeby testowania ich w rzeczywistym środowisku. Tekst przypisany na stałą musi być odpowiednio sformatowany tak aby docelowy kompilator nie miał problemów ze znalezieniem początku i końca stałej. W przypadku konwersji do plików nagłówkowych języków C, C++ zostaną przeprowadzone następujące konwersje:
|