Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_prologens [2008/11/02 17:57] miw |
pl:miw:miw08_prologens [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
**Paweł Marek**, <pmarek@student.agh.edu.pl> | **Paweł Marek**, <pmarek@student.agh.edu.pl> |
| |
===== PrologEns ===== | ===== PrologEns ===== |
Kolorowanie składni języka Prolog dla [[http://www.gnu.org/software/enscript/|GNU Enscript]]. | Kolorowanie składni języka Prolog dla [[http://www.gnu.org/software/enscript/|GNU Enscript]]. |
Patrz realizacja dla [[prolog:geshi_prolog|GeSHi]]. | Patrz realizacja dla [[pl:prolog:geshi_prolog|GeSHi]]. |
| |
====== Spotkania ====== | |
| |
===== 080408 ===== | |
przydzielenie projektu | |
| |
| |
| |
| |
| prolog.st |
<code> | <code> |
/** | /** |
*/ | */ |
</code> | </code> |
| |
| |
====== Sprawozdanie ====== | ====== Sprawozdanie ====== |
| |
| |
| ==== 1. Enscript ==== |
| Enscript konwertuje pliki tekstowe do formatu PostScript lub innego języka wyjściowego (HTML, RFT, ANSI). Program potrafi zapisać wynik swojego działania w pliku lub wysłać bezpośrednio do drukarki. Jeżeli podczas wywołania nie podano pliku wejściowego enscript przetwarza wejście standardowe (stdin). Enscript może być rozbudowywany do obsługi wielu mediów wyjściowych i posiada szereg opcji konfigurowalnych, które mogą być używane do dostosowywania wydruków do swoich potrzeb. |
| Jednym ze sposobów wykorzystania programu jest kolorowanie składni. Enscript w najnowszej swojej wersji 1.6.4 posiada obsługę kolorowania składni kilkudziesięciu języków, m.innymi: ADA95, C, C++, Delphi, Fortran, VHDL, HTML. Moim zadaniem było dopisać definicje kolorowania składni języka Prolog. |
| |
| |
| ==== 2. Highlighting rules ==== |
| Program po zainstalowaniu umieszcza swoje pliki konfiguracyjne w /usr/local/share/enscript. Zagłębiając się dalej w strukturze katalogów /usr/local/share/enscript/hl znajdują się pliki z definicjami kolorowania składni poszczególnych języków. Między nimi znajduje się główny plik kolorowania składni enscript.st w którym znaleźć można wskazówki jak należy pisać nowe reguły. |
| |
| Aby sprawdzić jakie reguły podświetlania składni podsiada Enscript należy wydać polecenie: |
| <code> |
| enscript --help-pretty-print |
| </code> |
| Wywołanie zwraca nazwę języków, krótkie opisy i autorów reguł. |
| |
| Z powodu braku dokumentacji GNU Enscript dotyczących reguł podświetlania składni podczas pisania projektu korzystałem praktycznie tylko z zaleceń zawartych w pliku enscript.st oraz z analizy istniejących już reguł dla innych języków. |
| |
| ==== 3. Instalacja dodatku ==== |
| Instalacja reguł podświetlania składni Prologu polega na skopiowaniu pliku prolog.st do katalogu /usr/local/share/enscript/hl gdzie znajdują się inne reguły. Program podczas działania sprawdza czy dane reguły są w katalogu i w razie problemów zgłasza błędy. |
| |
| |
| ==== 4. Przykładowe użycie ==== |
| Aby skorzystać z podświetlania składni Prologu należy wydać polecenie: |
| <code> |
| enscript nazwa_pliku -Eprolog --color --output=nazwa_pliku.ps |
| </code> |
| Opcja -E wskazuje jakie reguły podświetlania składni mają zostać użyte. Druga opcja --color włącza bogatsze wyniki o kolory (domyślnie wyniki są tylko pogrubiane). Ostatnia opcja --output sprawia iż wyniki zapisywane są w pliku o podanej po znaku równości nazwie. |
| |
| |
| |
| ==== 5. Testy ==== |
| |
| Przykładowe wyniki. Plik wejściowy: |
| <code> |
| /* |
| * family.pl |
| * taken from Bratko, 3rd ed, ch.1, p.17 |
| * |
| */ |
| |
| parent(pam,bob). |
| parent(tom,bob). |
| parent(tom,liz). |
| |
| female(pam). |
| female(liz). |
| female(pat). |
| |
| male(tom). |
| male(bob). |
| male(jim). |
| |
| mother(X,Y) :- |
| parent(X,Y), |
| female(X). |
| |
| father(X,Y) :- |
| parent(X,Y), |
| male(X). |
| </code> |
| |
| Plik wynikowy: |
| |
| {{:pl:miw:prologens.gif|:pl:miw:prologens.gif}} |
| |
| |
| |
| |
| |
| |
====== Materiały ====== | ====== Materiały ====== |
| * GNU Enscript Home Page [[http://www.codento.com/people/mtr/genscript/]] |
| * GNU Enscript Manual Page [[http://www.codento.com/people/mtr/genscript/enscript.man.html]] |
| * GNU Enscript v1.6.4 [[http://www.iki.fi/mtr/genscript/enscript-1.6.4.tar.gz]] |
| * Writing New Highlighting Definitions in GNU Enscript |
| [[http://lavica.fesb.hr/cgi-bin/info2html?(enscript)Writing%20New%20Highlighting%20Definitions]] |
| * Output Languages in GNU Enscript |
| [[http://lavica.fesb.hr/cgi-bin/info2html?(enscript)Output%20Languages]] |
| * Guildelines for writing new highlighting rules for the GNU Enscript |
| /usr/local/share/enscript/hl/enscript.st |
| |
| |
| |
| |
| |
| |