Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

genparse - Online w chmurze

Uruchom genparse u dostawcy darmowego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

Jest to genparse poleceń, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu Mac OS

PROGRAM:

IMIĘ


genparse - generator parsera wiersza poleceń

STRESZCZENIE


genpars [Opcje] pliki...

OPIS


genpars to ogólny generator parsera wiersza poleceń. Od prostego i zwięzłego
pliku specyfikacji, możesz zdefiniować parametry wiersza poleceń i przełączniki, które chcesz
chciałbyś móc przejść do twojego programu. Genparse tworzy kod C, C++ lub Java
parser dla Ciebie.

Genparse zakłada, że ​​GNU getopt_long(3) funkcja jest wbudowana w twoją bibliotekę C. Do
Java może być konieczne określenie odpowiedniego pliku jar w kompilatorze Java.

OPCJE


genpars akceptuje te opcje:

-c, --cppext rozbudowa
Rozszerzenie pliku C++. (domyślnie = DW)

-d Włącz rejestrowanie.

-f, --plik dziennika Nazwa
Nazwa pliku dziennika. (domyślnie = genparse.log)

-h, --help
Wyświetl informacje pomocy.

-g, --gnulib
Użyj biblioteki zgodności GNU (Gnulib, zobacz http://www.gnu.org/software/gnulib/).
Dostępne tylko dla wyjścia C. Dopuszcza więcej typów (unsigned long, intmax_t itp.)
dla których Gnulib zapewnia funkcje konwersji.

-i, --internacjonalizować
Umieść makro internacjonalizacji _() wokół tekstu wyjściowego, aby wygenerowany program
można umiędzynarodowić za pomocą polecenia GNU gettext. Obecnie tylko wdrożone
dla wyjścia C.

-l, --język lang
Język wyjściowy. Obsługiwane są tylko C, C++ i Java. Dowolny z poniższych
wskazać C++: „c++”, „cpp”, „cc” i „cxx”. W przypadku Javy: „java” lub „Java”.
(domyślnie = c)

-o, --plik wyjściowy Nazwa
Nazwa pliku wyjściowego. (domyślnie = parse_cl)

-m, --długie członkostwo
Użyj długich opcji dla członków klasy parsera (struct). Wartość domyślna to
użyj krótkiej reprezentacji, chyba że zdefiniowano tylko długą reprezentację
w pliku genparse. Jeśli ta opcja jest ustawiona, zachowanie jest cofane. ten
wtedy używana jest długa reprezentacja, chyba że istnieje tylko krótka reprezentacja
zdefiniowane.

-o, --plik wyjściowy filename
Nazwa główna pliku wyjściowego. Rozszerzenie zostanie określone przez język wyjściowy
i ewentualnie innymi opcjami. Na przykład, gdy językiem wyjściowym jest C, dając
ta opcja argument "file" spowoduje nazwy plików wyjściowych "file.h",
„file.c” i „file_cb.c” odpowiednio dla plików nagłówka, parsera i wywołań zwrotnych.
Wartość domyślna to „parse_cl”.

-p, --parsefunc funkcjonować
Nazwa funkcji / klasy parsującej. Ta opcja pozwala użytkownikowi określić nazwę
funkcji (dla C) lub klasy (dla C++ i Java), która wykonuje właściwe polecenie
parsowanie linii (domyślnie = "Cmdline").

-P, --wiele odbitek
Wypisz tekst pomocy dla każdego parametru wiersza poleceń w oddzielnym poleceniu drukowania.

-q, --cichy
Tryb cichy - brak wyjścia na ekranie.

-s, --statyczne-nagłówki
Zachowaj opisowy nagłówek nad wygenerowanymi plikami statycznie. Bez tego
opcja genparse wyświetla datę i godzinę utworzenia, wersję jądra Linux, kompilację jądra
czas, nazwę architektury komputera, nazwę hosta i nazwę użytkownika.

-v, --wersja
Wersja wyjściowa.

-D, --informator
Katalog do przechowywania wyników.

WEJŚCIE FILE


Plik specyfikacji genparse (zwykle nazywany „plikiem genparse”) składa się z liczby
wpisów, po jednym na parametr wiersza poleceń, w postaci:

krótkie_nazwy[*|!] [/ długie imię[*|!][=nazwa_opcji]] rodzaj [ Opcje ]

A krótkie imię to pojedynczy znak (mały lub duży) lub pojedyncza cyfra. długie imię jest
dłuższa (bardziej opisowa) nazwa opcji. W wierszu poleceń poprzedzona zostanie skrócona nazwa
pojedynczą kreską (np. '-a'), a długa wersja będzie poprzedzona dwoma myślnikami (np.
'--wszystko'). Jeśli długa nazwa parametru nie jest konieczna, możesz podać tylko krótką
(a ukośnik nie musi się pojawiać). Aby określić parametr, który ma tylko długi
zestaw nazw krótkie_nazwy do BRAK. Możliwe jest posiadanie wielu krótkich opcji, więc dla
przykładowe ustawienie krótkie imię do „aA” i długie imię do 'all' pozwoliłoby określić
przełącznik wiersza poleceń jako '-a' lub '-A' lub '--all', wszystkie robią to samo.

A * po krótkie imię or długie imię sprawia, że ​​argument jest opcjonalny. Można to określić dla
opcje krótkie i długie osobno.

A ! po krótkie imię or długie imię czyni opcję logiczną. Pozwala to łączyć
boolean short z opcją long z opcjonalnym lub obowiązkowym argumentem lub to
połącz długą opcję logiczną z krótką opcją z opcjonalnym lub obowiązkowym argumentem.
A ! nie ma sensu, jeśli typ opcji to flaga.

rodzaj musi być jednym z int unosić się zwęglać ciąg or flaga. Pierwsze cztery powinny być samo-
wyjaśniający. Ostatnia to opcja „switch”, która nie przyjmuje żadnych argumentów. Dla wyjścia C i jeśli
--gnulib jest ustawione w wierszu poleceń dodatkowo dozwolone są następujące typy: długie
(przez długi czas), ulong (dla unsigned long int), intmaks (dla intmax_t, zdefiniowane w Gnulib),
uintmax (dla uintmax_t), Podwójna.

Poniższy Opcje są obsługiwane. Mogą pojawiać się w dowolnej kolejności i z wyjątkiem
Opisy tylko jedno z każdego pola może być zdefiniowane w opcji.

A domyślnym wartość dla parametru. Dla ciągu jest to po prostu zwykłe ustawienie domyślne
wartość, cokolwiek to jest. W przypadku ciągów wartość domyślna musi być określona w nawiasach klamrowych i
cudzysłowy i mogą zawierać spacje, np. {"moja wartość domyślna"}. za char
parametr musi być ujęty w pojedyncze cudzysłowy, np. 'a' lub '\n'.

A zasięg wartości w nawiasach. Niskie i wysokie wartości są określone pomiędzy a
specyfikator zakresu (albo '...' lub '..'). Może być wysoka lub niska wartość
pominięte dla zakresu ograniczonego tylko z jednej strony. Parametr zostanie sprawdzony, aby
upewnij się, że mieści się w tym zakresie.

A oddzwonić funkcjonować. Ta funkcja jest wywoływana po każdym sprawdzeniu zakresu
wykonywane. Celem wywołania zwrotnego jest sprawdzenie poprawności, które jest więcej
skomplikowane niż można określić w pliku genparse. Na przykład możesz
napisać program, który wymaga, aby dane wejściowe były liczbami pierwszymi, łańcuchami o określonej wartości
długość itp.

A opis w podwójnych cudzysłowach. Jest drukowany przez stosowanie() funkcjonować. Gdyby jeden
linia nie wystarczy, podaj wiele opisów, po jednym na linię i każdy z
je w podwójnych cudzysłowach. Jeśli opis zaczyna się w pierwszej kolumnie w Genparse
pliku, to zostanie on również wydrukowany w pierwszej kolumnie w stosowanie() funkcja.

A #gp_include dyrektywa poinstruuje genparse, aby dołączył inny plik genparse,
na przykład #gp_include inny.gp. W zestawie dozwolone są tylko definicje parametrów
plik, bez dyrektyw globalnych.

An __ERR_MSG__(err_txt) dyrektywa. Określa komunikat o błędzie, który jest drukowany
kiedy argument nie mógł zostać przekonwertowany. Przykład: __ERR_MSG__("%s: nieważny
argument"). Ten komunikat zostanie wydrukowany, gdy funkcja konwersji
nie powiodło się lub gdy argument był poza zasięgiem. Zakłada, że ​​zawiera jeden %s , które będą
być zastąpione agumentem, którego nie można było nawrócić. Dostępne tylko wtedy, gdy
Genparse jest wywoływany z --gnulib, w przeciwnym razie ignorowane.

Opcjonalnie można dodać funkcję konwersji jako drugi argument, np.
__ERR_MSG__("%s: nieważny argument", cytat). Doprowadziłoby to do komunikatu o błędzie
lubić błąd (EXIT_FAILURE, 0, "%s: nieważny argument", cytatarg (zdecydować)).

An __ADD_FLAG__ dyrektywa. Ma sens tylko wtedy, gdy parametr wiersza poleceń nie jest
już flaga, w tym przypadku dodawany jest dodatkowy parametr flagi, który będzie
ustaw, jeśli parametr wiersza poleceń został określony w wierszu poleceń. Ta opcja
jest automatycznie ustawiana, jeśli parametr ma opcjonalny argument.

A __KOD__(wyciągi) dyrektywa. Określone instrukcje kodu są kopiowane
dosłownie. Przykład: __KOD__(drukuj ("Parametr x była ustawić");). Określony kod
może rozciągać się na więcej niż jedną linię. Aby dać Genparse szansę na:
wciąć kod poprawnie, nie mieszaj wcięć spacji i tabulatorów w jednym __KOD__
komunikat.

A __SKLEP_LONGINDEX__ dyrektywa. Nakazuje Genparse dodać pole typu interer
do klasy wynikowej, która zostanie ustawiona na zmienną longindex (ostatni argument w
wywołanie @code{getopt_long()}). To nowe pole otrzyma taką samą nazwę jak
pole wynikowe, z którym jest powiązany, ale z _li przyrostek.

Poniższy światowy Dyrektywy są obsługiwane. Mogą pojawiać się w dowolnej kolejności.

An #zawierać dyrektywa poinstruuje genparse, aby skopiował wspomnianą instrukcję include
do kodu C lub C++ generowanego przez genparse, ale nie do żadnych plików nagłówkowych ani wywołań zwrotnych
akta.

A #obowiązkowy można użyć dyrektywy, aby wywołania funkcji use() były przyjemniejsze. To pozwala
określić obowiązkowe parametry wiersza poleceń, które mogą występować po przełącznikach. Notatka
że Genparse nie sprawdza parametrów obowiązkowych, są one drukowane tylko w
zwyczaj () funkcja z __OBOWIĄZKI__ Dyrektywa. Wycofane: Dodaj obowiązkowe
parametry in dotychczasowy #stosowanie Sekcja zamiast.

An #wartość_wyjścia dyrektywa określająca wartość wyjścia w przypadku błędu.
Wartość domyślna to EXIT_FAILURE.

A #linie_przerwy dyrektywa określająca szerokość do jakiej należy łamać linie
na ekranie pomocy. Jeśli nie #linie_przerwy dyrektywa jest określona, ​​wtedy wiersze będą
wydrukowane dokładnie tak, jak podano w pliku genparse.

If #brak_struktury jest określony, nie zostanie zdefiniowana żadna struktura, która zostanie wypełniona
parametry wiersza poleceń w wygenerowanym parserze. Może to być przydatne, jeśli
chcesz dodać własny kod za pomocą __KOD__ zamiast tego oświadczenia. Obsługiwane tylko dla C
wyjście.

A #export_long_options dyrektywa. Gdyby #export_long_options jest zdefiniowany wtedy a
funkcjonować #get_long_options() dodany, który eksportuje tablicę longoptions używaną przez
#getopt_long(). Ta dyrektywa jest dostępna tylko dla wyjścia C, dla innych języków
jest ignorowane.

A światowy oddzwonić funkcjonować. Ta funkcja jest przydatna do sprawdzania współzależności
między parametrami. Współzależności nie można sprawdzić w obrębie każdej osoby
funkcja zwrotna, ponieważ kolejność, w jakiej te funkcje będą wywoływane, jest różna,
w zależności od kolejności parametrów w wierszu poleceń.

Genparse generuje również stosowanie() funkcja, która wypisuje tekst pomocy na standardowe wyjście na temat
użycie programu, dla którego Genparse generuje parser. Można go dostosować przez
określenie sekcji użycia na dole pliku Genparse. Jeśli nie ma takiej sekcji
określone, że domyślnie to

#rozpoczęcie_użytkowania
użycie: __NAZWA_PROGRAMU__ __OPCJE_SHORT__ __WYMAGANIA__
__SŁOWNICZEK__
#koniec_użytkowania

Sekcja użytkowania zaczyna się od #rozpoczęcie_użytkowania i kończy się na #koniec_użytkowania. Dowolny tekst pomiędzy jest
drukowane dosłownie z wyjątkiem następujących słów kluczowych, które zostaną zastąpione zgodnie z listą
poniżej:

__NAZWA PROGRAMU__: nazwa programu. W C i C++ nazwa programu jest podana w
argv[0].

__OPTIONS_SHORT__: Lista dostępnych krótkich opcji formularza, np. [ -abc ].

__OBOWIĄZKI__: Lista wszystkich obowiązkowych parametrów zdefiniowanych za pomocą #obowiązkowe
Polecenia. Wycofane: Lista obowiązkowe parametry tutaj bezpośrednio.

__SŁOWNICZEK__: Opis wszystkich opcji wiersza poleceń. To jest informacja
podane dla definicji parametrów w formie czytelnej dla człowieka. Obejmuje to
typ parametru, wartość domyślna, zakres i wszelkie komentarze. Linia, która zawiera
__SŁOWNICZEK__ zastępuje się słowniczek parametrów, każdy inny tekst w
ta sama linia jest ignorowana.

__GLOSARIUSZ_GNU__: Taki sam jak __SŁOWNICZEK__ ale w stylu GNU. Opcjonalnie, po którym następuje
liczba całkowita w nawiasach określająca wcięcie tekstu opisowego (np
__SŁOWNICZEK__(30)). Wcięcie domyślne to 24.

__Smyczki): Stała łańcuchowa, w C prawdopodobnie makro łańcuchowe zdefiniowane za pomocą
#define polecenie preprocesora. To makro można zaimportować z innego pliku za pomocą
dyrektywa include w pliku genparse. Ignorowane podczas generowania danych wyjściowych Java.

__INT__(x): Stała całkowita, w C prawdopodobnie makro liczby całkowitej zdefiniowane za pomocą
#define polecenie preprocesora. To makro można zaimportować z innego pliku za pomocą
dyrektywa include w pliku genparse. Ignorowane podczas generowania danych wyjściowych Java.

__KOD__(wyciągi): Tak samo jak w przypadku opcji parametrów, patrz powyżej.

__DO_NOT_DOKUMENT__: Żadna linia zawierająca to makro nie zostanie wydrukowana w
stosowanie() funkcjonować. Może być używany do implementacji parametrów wiersza poleceń bez
wyświetlając je na ekranie pomocy.

__NL__: Nowa linia. Przydatne do ręcznego łamania linii podczas automatycznego łamania linii
jest włączony (patrz #linie_przerwy). Ignorowane podczas generowania danych wyjściowych Java.

__NOWOŚĆ_DRUKUJ__: Zamknij aktywne polecenie drukowania i rozpocznij nowe.

__KOMENTARZ__(tekst): Komentarz w kodzie do drukowania tekstu użycia.

po długich opcjach może występować znak = i opcjonalne oznaczenie nazwa_opcji który może
o których mowa w poniższym opisie. Będzie używany w stosowanie() funkcjonować
tylko. Na przykład następująca linia genparse

s / block-size=ROZMIAR int "użyj SIZE-bajtowych bloków"

doprowadzi do następującego wiersza na ekranie pomocy

[ -s ] [ --block-size=ROZMIAR ] (typ=LICZBA CAŁKOWITA)
użyj bloków SIZE-bajtowych

w stylu genparse (__SŁOWNICZEK__) lub

-s, --block-size=ROZMIAR użyj bloków ROZMIAR-bajtów

w stylu GNU (__GLOSARIUSZ_GNU__).

Możliwe jest również umieszczenie nawiasów kwadratowych wokół opcjonalnej nazwy w celu wskazania:
argument jest opcjonalny. Nie ma to jednak znaczenia dla wygenerowanego parsera. Posługiwać się
* przyrostki w celu uczynienia argumentu opcjonalnym.

s* / block*[=ROZMIAR] int "użyj bloków".
"Jeśli nie podano ROZMIARU, otrzymają rozmiar 1kB."

doprowadzi do następującego wiersza na ekranie pomocy

-s, --block[=ROZMIAR] używa bloków.
Jeśli SIZE nie zostanie podane, otrzymają rozmiar 1kB.

PRZYKŁAD


Oto przykładowy plik genparse:

#włączać

/* komentarz */
moje_oddzwonienie()

i / iteracje int 100 [10...1000] iter_callback()
„Liczba iteracji do uruchomienia”.

/*
* Komentarz
*/

n / name string {"mike"} name_cb() "Nazwa użytkownika"
s / str ciąg „ciąg testowy”
f flaga "głupa flaga!"

#rozpoczęcie_użytkowania
użycie: __NAZWA_PROGRAMU__ __OPCJE_SHORT__ nazwa pliku
To tylko głupi program testowy.
__SŁOWNICZEK__
#koniec_użytkowania

Korzystaj z genparse online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad