İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

genparse - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında genparse çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut oluşturma işlemidir.

Program:

ADI


genparse - komut satırı ayrıştırıcı üreteci

SİNOPSİS


gen ayrıştırma [seçenekleri] Dosyaları...

TANIM


gen ayrıştırma genel bir komut satırı ayrıştırıcı üreticisidir. Basit ve özlü
belirtim dosyasında, istediğiniz komut satırı parametrelerini ve anahtarları tanımlayabilirsiniz.
programınıza geçebilmek gibi. Genparse, C, C++ veya Java kodunu oluşturur.
sizin için ayrıştırıcı.

Genparse, GNU'nun getopt_long(3) işlevi C kitaplığınızda yerleşik olarak bulunur. İçin
Java, Java derleyicinize uygun bir jar dosyası belirtmeniz gerekebilir.

SEÇENEKLER


gen ayrıştırma şu seçenekleri kabul eder:

-c, --cppext uzatma
C++ dosya uzantısı. (varsayılan = cc)

-d Günlüğe kaydetmeyi açın.

-f, --log dosyası isim
Günlük dosyası adı. (varsayılan = genparse.log)

-h, --yardım et
Yardım bilgilerini görüntüleyin.

-g, --gnulib
GNU Uyumluluk Kitaplığını kullanın (Gnulib, bkz. http://www.gnu.org/software/gnulib/).
Yalnızca C çıkışı için kullanılabilir. Daha fazla türe izin verir (unsigned long, intmax_t vb.)
Gnulib bunun için dönüştürme işlevleri sağlar.

-i, --uluslararasılaştırmak
Uluslararasılaştırma makrosunu _() metin çıktısının etrafına yerleştirin, böylece oluşturulan program
GNU gettext komutu kullanılarak uluslararası hale getirilebilir. Şu anda sadece uygulanıyor
C çıkışı için.

-l, --dilim lang
Çıkış dili. Yalnızca C, C++ ve Java desteklenir. Aşağıdakilerden herhangi biri
C++'ı belirtin: "c++", "cpp", "cc" ve "cxx". Java kullanımı için: "java" veya "Java".
(varsayılan = c)

-o, --outfile isim
Çıktı dosyası adı. (varsayılan = parse_cl)

-m, --uzun üyeler
Ayrıştırıcı sınıfının (struct) üyeleri için uzun seçenekler kullanın. Varsayılan
tanımlı yalnızca uzun bir gösterim olması dışında kısa gösterimi kullanın
genparse dosyasında. Bu seçenek ayarlanırsa davranış geri alınır. NS
sadece kısa bir gösterim olması dışında uzun gösterim kullanılır
tanımladı.

-o, --outfile Dosya
Çıktı dosyasının kök adı. Uzantı, çıktı diline göre belirlenir
ve muhtemelen diğer seçeneklerle. Örneğin, çıktı dili C olduğunda,
bu seçenek, bir "dosya" argümanı, "file.h" çıktı dosyası adlarıyla sonuçlanacaktır,
Sırasıyla başlık, ayrıştırıcı ve geri arama dosyaları için "file.c" ve "file_cb.c".
Varsayılan değer "parse_cl"dir.

-p, --parsefunc func
Ayrıştırma işlevinin / sınıfının adı. Bu seçenek, kullanıcının adı belirtmesini sağlar.
asıl komutu yapan işlevin (C için) veya sınıfın (C++ ve Java için)
satır ayrıştırma (varsayılan = "Cmdline").

-P, --birçok baskı
Ayrı bir yazdırma komutunda her komut satırı parametresi için yardım metni çıktısı alın.

-q, --sessizlik
Sessiz mod - ekran çıkışı yok.

-s, --statik-başlıklar
Tanımlayıcı başlığı, oluşturulan dosyaların üzerinde statik tutun. Bu olmadan
seçenek genparse, oluşturma tarihini ve saatini, Linux çekirdek sürümünü, çekirdek yapısını yazdırır
zaman, bilgisayar mimarisi adı, ana bilgisayar adı ve kullanıcı adı.

-v, --versiyon
Çıkış sürümü.

-D, --dizin
Sonuçları depolamak için dizin.

GİRİŞ DOSYA


Bir genparse belirtim dosyası (genellikle sadece "genparse dosyası" olarak adlandırılır) bir sayıdan oluşur.
formun komut satırı parametresi başına bir giriş sayısı:

kısa_isimler[*|!] [/ uzun isim[*|!][=tercih_adı]] tip [ seçenekleri ]

A kısa adı tek bir karakter (küçük veya büyük) veya tek bir rakamdır. uzun isim bir
daha uzun (daha açıklayıcı) seçenek adı. Komut satırında kısa bir ad önce gelir
tek bir tire ile (örn. '-a') ve uzun bir versiyondan önce iki tire (örn.
'--herşey'). Uzun bir parametre adı gerekli değilse, yalnızca kısa olanı belirtebilirsiniz.
(ve eğik çizginin görünmesi gerekmez). Yalnızca uzun bir parametreye sahip bir parametre belirtmek için
isim seti kısa_isimler için YOK. Birden fazla kısa seçeneğe sahip olmak mümkündür, bu nedenle
örnek ayar kısa adı 'aA' için ve uzun isim 'tümüne' belirtmeye izin verir
komut satırı '-a' veya '-A' veya '--all' olarak değişir, hepsi aynı şeyi yapar.

A * sonra kısa adı or uzun isim argümanı isteğe bağlı hale getirir. Bu belirtilebilir
kısa ve uzun seçenekleri ayrı ayrı.

A ! sonra kısa adı or uzun isim seçeneği boole yapar. Bu, birinin bir
isteğe bağlı veya zorunlu bir argümanla uzun bir seçenekle boolean kısa seçeneği veya
bir boolean uzun seçeneği ile kısa bir seçeneği isteğe bağlı veya zorunlu bir argümanla birleştirin.
A ! seçeneğin türü ise bir anlam ifade etmiyor bayrak.

tip biri olmalı int şamandıra tank dizi or bayrak. İlk dördü kendi kendine olmalı
açıklayıcı. Sonuncusu, hiçbir argüman almayan bir "geçiş" seçeneğidir. C çıkışı için ve eğer
--gnulib komut satırında ayarlanır, ayrıca aşağıdaki türlere izin verilir: ve kazandırdı
(uzun int için), uzun (imzasız uzun int için), intmax (Gnulib'de tanımlanan intmax_t için),
uintmax (uintmax_t için), çift.

Aşağıdaki seçenekleri Desteklenmektedir. Herhangi bir sırada görünebilirler ve aşağıdakiler dışında
açıklamaları seçenek başına her alandan yalnızca biri tanımlanabilir.

A varsayılan değer parametre için. Bir dize için bu yalnızca düz varsayılandır
değer, ne olursa olsun. Dizeler için, parantez içinde bir varsayılan belirtilmelidir ve
tırnak işaretleri ve boşluk içerebilir, örneğin {"varsayılan değerim"}. bir karakter için
parametre tek tırnak içine alınmalıdır, örneğin 'a' veya '\n'.

A menzil parantez içindeki değerler. Düşük ve yüksek değerler a arasında belirtilir.
aralık belirteci ('...' veya '..'). Ya yüksek ya da düşük değer olabilir
yalnızca bir tarafta sınırlanmış bir aralık için atlanmıştır. parametre kontrol edilecek
bu aralıkta olduğundan emin olun.

A geri aramak işlev. Bu işlev, herhangi bir aralık kontrolü yapıldıktan sonra çağrılır.
gerçekleştirildi. Geri aramanın amacı, daha fazla geçerlilik kontrolü yapmaktır.
genparse dosyasında belirtilenden daha karmaşık. Örneğin,
Girdinin asal sayılar, belirli bir dizinin dizeleri olmasını gerektiren bir program yazın
uzunluk vb.

A tanım çift ​​tırnak içinde. tarafından basılmıştır. kullanım() işlev. Eğer biri
satır yeterli değil, o zaman satır başına bir tane olmak üzere birden çok açıklama belirtin ve her biri
onları çift tırnak içinde. Açıklama, Genparse'daki 1. sütunda başlıyorsa
dosyasında daha sonra 1. sütunda da yazdırılacaktır. kullanım() fonksiyonu.

A #gp_include yönerge, genparse'a başka bir genparse dosyası eklemesini söyler,
Örneğin #gp_include başka.gp. Dahil edilenlerde yalnızca parametre tanımlarına izin verilir.
dosya, genel yönerge yok.

An __ERR_MSG__(err_txt) direktif. Yazdırılan hata mesajını belirtir
argüman dönüştürülemediğinde. Örnek: __ERR_MSG__("%s: geçersiz
argüman"). Bu mesaj, dönüştürme işlevi
başarısız oldu veya bağımsız değişken aralık dışında olduğunda. Bir tane içerdiğini varsayar %s hangisi
dönüştürülemeyen agrument ile değiştirilmelidir. Yalnızca şu durumlarda kullanılabilir:
Genparse ile çağrılır --gnulib, aksi göz ardı edildi.

İsteğe bağlı olarak, ikinci bir argüman olarak bir dönüştürme işlevi eklenebilir, örn.
__ERR_MSG__("%s: geçersiz argüman", alıntı). Bu bir hata mesajına yol açar
sevmek hata (ÇIKIŞ_BAŞARISIZ, 0, "%s: geçersiz argüman", alıntı (isteğe bağlı)).

An __ADD_FLAG__ direktif. Yalnızca komut satırı parametresi değilse anlamlıdır
zaten bir bayrak, bu durumda ek bir bayrak parametresi eklenir.
komut satırı parametresi komut satırında belirtilmişse ayarlayın. Bu seçenek
bir parametrenin isteğe bağlı bir argümanı varsa otomatik olarak ayarlanır.

A __CODE__(ifadeler) direktif. Belirtilen kod ifadeleri kopyalanır
kelimenin tam anlamıyla. Örnek: __KOD__(yazdır ("Parametre x oldu Ayarlamak");). Belirtilen kod
birden fazla satıra yayılabilir. Genparse'ye bir şans vermek için
kodu doğru girinti yapın, boşluk ve sekme girintilerini tek seferde karıştırmayın __KOD__
ifadesi.

A __MAĞAZA_LONGINDEX__ direktif. Genparse'a bir interer tipi alanı eklemesini söyler
longindex değişkenine ayarlanacak olan sonuç sınıfına (içindeki son argüman
@code{getopt_long()} çağrısı). Bu yeni alan, alanla aynı adı alacaktır.
sonuç alanı ile ilgilidir ancak bir _li son düzeltme.

Aşağıdaki global direktifler Desteklenmektedir. Herhangi bir sırada görünebilirler.

An #Dahil etmek direktif, genparse'ye söz konusu içerme ifadesini kopyalaması talimatını verecektir.
genparse tarafından oluşturulan C veya C++ koduna, ancak herhangi bir başlık dosyası veya geri arama değil
dosyaları.

A #zorunlu yönergesi, use() işlev çağrılarını daha güzel hale getirmek için kullanılabilir. İzin veriyor
anahtarları takip edebilecek zorunlu komut satırı parametrelerini belirtmeniz. Not
Genparse'nin zorunlu parametreleri kontrol etmediği, yalnızca
kullanım () ile işlev __ZORUNLUKLAR__ Direktif. Kullanımdan kaldırıldı: eklemek zorunlu
parametreler in the #kullanım Bölüm yerine.

An #çıkış_değeri hata durumunda çıkış değerini belirten yönerge.
Varsayılan EXIT_FAILURE'dir.

A #break_lines çizgilerin kesileceği genişliği belirten yönerge
yardım ekranında. Eğer hayırsa #break_lines yönerge belirtilir, ardından satırlar
tam olarak genparse dosyasında verildiği gibi yazdırılır.

If #no_struct belirtilirse, doldurulacak hiçbir yapı tanımlanmaz
oluşturulan ayrıştırıcıdaki komut satırı parametreleri. Eğer bu yararlı olabilir
ile kendi kodunuzu eklemek istiyorsanız __KOD__ yerine ifadeler. Yalnızca C için desteklenir
çıktı.

A #export_long_options direktif. Eğer #export_long_options sonra tanımlanır
işlev #get_long_options() tarafından kullanılan longoptions dizisini dışa aktaran eklenir.
#getopt_long(). Bu yönerge diğer diller için yalnızca C çıktısı için geçerlidir.
göz ardı edilir.

A global geri aramak işlev. Bu işlev, karşılıklı bağımlılıkları kontrol etmek için kullanışlıdır.
parametreler arasında. Karşılıklı bağımlılıklar her bireyde kontrol edilemez
geri arama işlevi, çünkü bu işlevlerin çağrılma sırası değişir,
komut satırındaki parametrelerin sırasına bağlı olarak.

Genparse ayrıca bir kullanım() hakkında stdout'a bir yardım metni yazdıran işlev
Genparse'ın ayrıştırıcıyı ürettiği programın kullanımı. Tarafından özelleştirilebilir
Genparse dosyasının alt kısmında bir kullanım bölümü belirterek. Böyle bir bölüm yoksa
varsayılan olduğunu belirtti

#kullanım_başlangıcı
kullanım: __PROGRAM_NAME__ __OPTIONS_KISA__ __MANDATORIES__
__SÖZLÜK__
#kullanım_sonu

Kullanım bölümü ile başlar #kullanım_başlangıcı ve ile biter #kullanım_sonu. arasındaki herhangi bir metin
listelendiği gibi değiştirilecek olan aşağıdaki anahtar kelimeler dışında yazılı
Aşağıda:

__PROGRAM ADI__: Programın adı. C ve C++'da program adı şu şekilde verilir:
argv[0].

__SEÇENEKLER_KISA__: Kullanılabilir kısa form seçeneklerinin listesi, örneğin [ -abc ].

__ZORUNLUKLAR__: #mandatory ile tanımlanan tüm zorunlu parametrelerin listesi
emreder. Kullanımdan kaldırıldı: Liste zorunlu parametreler okuyun direkt olarak.

__SÖZLÜK__: Tüm komut satırı seçeneklerinin açıklaması. bilgi bu
insan tarafından okunabilir biçimde parametre tanımları için verilmiştir. şunları içerir:
parametre türü, varsayılan, aralık ve herhangi bir yorum. içeren bir çizgi
__SÖZLÜK__ parametre sözlüğü ile değiştirilir, diğer metinler
aynı satır yoksayılır.

__SÖZLÜK_GNU__: İle aynı __SÖZLÜK__ ama GNU tarzında. İsteğe bağlı olarak ardından bir
açıklayıcı metnin girintisini belirten parantez içindeki tamsayı (örn.
__SÖZLÜK__(30)). Varsayılan girinti 24'tür.

__Teller): Bir dize sabiti, C'de muhtemelen şu şekilde tanımlanmış bir dize makrosu
#define önişlemci komutu. Bu makro kullanılarak başka bir dosyadan içe aktarılabilir.
genparse dosyasındaki include yönergesi. Java çıktısı oluşturulurken yoksayılır.

__INT__(x): Bir tamsayı sabiti, C'de muhtemelen şu şekilde tanımlanmış bir tamsayı makrosu
#define önişlemci komutu. Bu makro kullanılarak başka bir dosyadan içe aktarılabilir.
genparse dosyasındaki include yönergesi. Java çıktısı oluşturulurken yoksayılır.

__CODE__(ifadeler): Parametre seçenekleriyle aynı, yukarıya bakın.

__DO_NOT_DOCUMENT__: Bu makroyu içeren herhangi bir satır yazdırılmayacaktır.
kullanım() işlev. olmadan komut satırı parametrelerinin uygulanması için kullanılabilir.
onları yardım ekranında listeler.

__NL__: Yeni hat. Otomatik satır kesme sırasında satırları manuel olarak kesmek için kullanışlıdır
açık (bkz. #break_lines). Java çıktısı oluşturulurken yoksayılır.

__YENİ_YAZDIR__: Etkin yazdırma komutunu kapatın ve yeni bir tane başlatın.

__YORUM__(metin): Kullanım metnini yazdırmak için koda yorum yapın.

uzun seçeneklerin ardından bir = işareti ve isteğe bağlı bir atama gelebilir tercih_adı hangi can
aşağıdaki açıklamada atıfta bulunulacaktır. İçinde kullanılacak kullanım() işlev
bir tek. Örneğin aşağıdaki genparse satırı

s / blok boyutu=SIZE int "SIZE baytlık blokları kullan"

yardım ekranında aşağıdaki satıra götürecektir

[ -s ] [ --block-size=SIZE ] (tür=TAMSAYI)
SIZE bayt blokları kullanın

genparse tarzında (__SÖZLÜK__) Veya

-s, --block-size=SIZE, SIZE-byte blokları kullanır

GNU tarzında (__SÖZLÜK_GNU__).

Belirtmek için isteğe bağlı adın etrafına köşeli parantezler koymak da mümkündür.
argümanın isteğe bağlı olduğunu. Ancak bunun oluşturulan ayrıştırıcı için bir anlamı yoktur. Kullanmak
* bir argümanı isteğe bağlı yapmak için postfix'ler.

s* / blok*[=SIZE] int "blokları kullan."
"BOYUT verilmezse 1 kB boyutunda olurlar."

yardım ekranında aşağıdaki satıra götürecektir

-s, --block[=SIZE] blokları kullanır.
SIZE verilmezse 1 kB boyutunda olurlar.

ÖRNEK


İşte örnek bir genparse dosyası:

#Dahil etmek

/* Yorum */
benim_geri aramam()

i / yinelemeler int 100 [10...1000] iter_callback()
"Çalıştırılacak yineleme sayısı."

/*
* Yorum Yap
*/

n / isim dizgisi {"mike"} name_cb() "Kullanıcının adı"
s / str dizesi "test dizesi"
f flag "aptal bir bayrak!"

#kullanım_başlangıcı
kullanım: __PROGRAM_NAME__ __OPTIONS_SHORT__ dosya adı
Bu sadece aptal bir test programı.
__SÖZLÜK__
#kullanım_sonu

onworks.net hizmetlerini kullanarak genparse'ı çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad