Opis języka szablonów > Opis języka szablonów

Drukuj

Opis języka szablonów

Szablon jest to uproszczony język programowania, dzięki któremu dokonywana jest interpretacja danych wejściowych i zamiana do formatu wymaganego przez program odbierający dane. Język ten składa się elementów znanych z innych języków programowania (np. polecenia, zmienne, podstawienia), oraz  z elementów unikalnych, związanych wyłącznie z procesem przetwarzania danych. Polecenia mogą być zapisane dowolną wielkością liter, więc np. While , WHILE , while   oznacza to samo. Poszczególne polecenia oddzielane są od siebie białymi znakami (spacja, tabulator, koniec linii). W skład języka szablonów wchodzą nastepujące elementy.

 

Komentarze:

Komentarz zawiera tekst pomocniczy zablokowany przed traktowaniem jako element języka podlegający interpretacji. Komentarze mogą być jednoliniowe lub wieloliniowe (blokowe):

Jednoliniowe: początek stanowią dwa znak //  (slash). Wszystko co znajduje się po tych znakach, aż do końca linii jest ignorowane podczas interpretacji.

Wieloliniowe: początek komentarza stanowią dwa znaki: /*   umieszczone na początku linii. Koniec komentarza stanowią dwa znaki */   umieszczone na początku jednej z następnych linii. Wszystko co znajduje się pomiędzy znakami początku i końca komentarza jest ignorowane podczas interpretacji.

 

Definicje:

Definicje służą do określenia stałych parametrów początkowych wczytywania danych, np. ustalenie formatu danych itp. Składnia jest następująca :

#nazwa_definicji  "wartość definicji"

 

Polecenia

Polecenia umożliwiają przetwarzanie zawartości danych wejściowych, zmiennych, pól oraz wartości bezpośrednich. Argumenty i wartości zwracana przez polecenia są zawsze tekstowa. Argumentem może być pole, zmienna, lub inna polecenie. Argumenty są umieszczone w nawiasach okrągłych, poszczególne argumenty są oddzielane przecinakami. Separatorem poleceń jest biały znak (spacja, tabulator, koniec linii).

Nazwa polecenia zawsze zaczyna się literą, po której następują litery lub cyfry. W szablonie występują wyłącznie polecenia wbudowane, nie ma możliwości tworzenia własnych poleceń  (podprogramów) wywoływanych z różnych sekcji szablonu.

 

Polecenia globalne:

Polecenia globalne wykonywane są jeden raz przed lub po wykonaniu właściwego kodu szablonu. Umożliwiają np. wczytywanie danych z wielu plików. Składnia jest następująca :

#nazwa_polecenia(  "argument polecenia", "argument polecenia" ....)

 

Sekcje szablonu:

Wszystkie polecenia szablonu poza definicjami i poleceniami globalnymi muszą być umieszczone w jakiejś sekcji. Każdy rodzaj sekcji wejściowej musi mieć swój odpowiednik w sekcji szablonu, który stanowi zbiór zasad interpretacji danych wejściowych. Zasada przetwarzania danych wejściowych jest następująca:

1.wczytywana jest sekcja danych wejściowych i określana jest jej nazwa
2.w szablonie odszukiwana jest sekcja o takiej samej nazwie jak sekcja wejściowa, a jeśli jej nie ma, to wybierana jest sekcja  o nazwie pustej.  Oznacza to, że sekcja wejściowa o określonej nazwie jest przetwarzana przez sekcję szablonu o takiej samej nazwie.
3.Tworzona jest sekcja wyjściowa o nazwie określonej w szablonie.
4.Kod odnalezionej sekcji szablonu wykonywany jest jak program, tzn. kolejne instrukcje są wykonywane w kolejności ich umieszczenia w sekcji. Dane wyjściowe tworzone w czasie przetwarzania są umieszczane w utworzonej sekcji wyjściowej
5.Jeśli w sekcji szablonu znajduje się podsekcja, wówczas w sekcji danych wejściowych odszukiwana jest podsekcja o podanej nazwie i wykonywany jest kod podsekcji szablonu (tworzona jest również podsekcja szablonu, w której umieszczane są dane wyjściowe podsekcji).

 

Pola wejściowe

Pola wejściowe reprezentują wczytane dane sekcji. Mogą być argumentami podstawienia oraz argumentami  dla funkcji szablonu. Pola są zawsze tekstowe (zawierają dane tekstowe) niezależnie od tego, czy zawierają tekst czy datę lub liczbę. Aby pobrać pole należy podać nazwę pola w nawiasach kwadratowych. Nazwy pól nie mogą przekraczać 32 znaków, a zawartość pola 300 znaków. Kolejność użycia pól wejściowych jest dowolna.

 

Przykład :

[Stawka VAT]

[1]

Uwaga: spacje z początku i końca nazwy są ignorowane, a białe znaki w środku normalizowane do jednej spacji

[    Stawka      VAT   ]    oznacza to samo co [Stawka VAT]

Pola wejściowe bez nazwy podanej explicite (np dla formatu SDF) są automatycznie nazywane kolejnymi numerami odpowiadającymi kolejności w pliku danych: [1], [2], [3]   itp

 

Zmienne

Zmienne są tworzone automatycznie w momencie pierwszego pojawienia się ich nazwy po lewej stronie znaku podstawienia. Nie potrzeba deklarować zmiennych. Zmienne są wyłącznie tekstowe. Zmienne zawsze związane są z aktualnie utworzoną sekcją wyjściową i po przetworzeniu całej sekcji są usuwane. Długość nazwy zmiennej nie może przekraczać 32 znaków, z wartość zmiennej 300 znaków.

Zmienne lokalne:

widziane są tylko w ramach bieżącej sekcji wyjściowej i po jej zamknięciu są niedostępne. Zmienne lokalne zaczynają się znakiem @ po którym następuje dowolny ciąg liter, cyfr oraz znaków podkreślenia. Np. @zmienna  @rex1

Zmienne globalne:

widziane są w głównej sekcji wyjściowej oraz we wszystkich jej podsekcjach. Zmienne globalne zaczynają się dwoma znakami @ po których następuje dowolny ciąg liter, cyfr oraz znaków podkreślenia. Np. @@zmienna  @@rex1. Każda zmienna lokalna utworzona w głównej sekcji wyjściowej jest widziana jako zmienna globalna w podsekcjach wyjściowych.

 

Pola wyjściowe:

Pola sekcji wyjściowej są tworzone automatycznie w momencie pierwszego pojawienia się ich nazwy po lewej stronie znaku podstawienia. Nie potrzeba deklarować pól wyjściowych. Pola wyjściowe są wyłącznie  tekstowe. Pola wyjściowe zawsze związane są z aktualnie utworzoną sekcją wyjściową i po przetworzeniu całej sekcji są niedostępne. Długość nazwy pola nie może przekraczać 32 znaków, z wartość pola 300 znaków. Nazwą pola może być  dowolny ciąg liter, cyfr oraz znaków podkreślenia. W przypadku gdy w nazwie pola muszą wystąpić inne znaki, wówczas należy nazwę pola ująć dodatkowo w nawiasy okrągłe

Pola bieżącej sekcji wyjściowej:

widziane są tylko w ramach bieżącej sekcji wyjściowej i po jej zamknięciu są niedostępne. Zaczynają się znakiem $ ,  np. $pole  $(data dokumentu)

Pola głównej sekcji wyjściowej:

aby mieć dostęp do pól głównej sekcji wyjściowej z dowolnej podsekcji należy nazwę pola poprzedzić dwoma znakami $$ .  Przykładowo: $$ (data dokumentu)

 

Argumenty bezpośrednie

Argumenty bezpośrednie są wyłącznie tekstowe.  Argumenty muszą być umieszczone w cudzysłowie. Wyjątek stanowią liczby, które mogą być podane bez cudzysłowu  (choć one również są przetwarzane do postaci tekstowej)  Znak \ (backslash) w tekście oznacza zignorowanie specjalnego znaczenia kolejnego znaku, a w szczególności  znaku cudzysłowu " i samego znaku \