InggrisPerancisSpanyol

Ad


favorit OnWorks

genparse - Online di Cloud

Jalankan genparse di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah genparse yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa stasiun kerja online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


genparse - generator pengurai baris perintah

RINGKASAN


genparse [Pilihan] arsip...

DESKRIPSI


genparse adalah generator parser baris perintah generik. Dari sederhana dan ringkas
file spesifikasi, Anda dapat menentukan parameter baris perintah dan sakelar yang Anda inginkan
ingin dapat lulus ke program Anda. Genparse membuat kode C, C++ atau Java dari
pengurai untuk Anda.

Genparse mengasumsikan bahwa GNU dapatkan opt_long(3) fungsi dibangun ke dalam perpustakaan C Anda. Untuk
Java Anda mungkin harus menentukan file jar yang sesuai untuk compiler Java Anda.

PILIHAN


genparse menerima opsi ini:

-c, --cptext perpanjangan
Ekstensi File C++. (default = cc)

-d Aktifkan pencatatan.

-f, --file log nama
Nama file log. (default = genparse.log)

-h, --membantu
Menampilkan informasi bantuan.

-g, --gnulib
Gunakan Pustaka Kompatibilitas GNU (Gnulib, lihat http://www.gnu.org/software/gnulib/).
Hanya tersedia untuk output C. Mengizinkan beberapa jenis lagi (unsigned long, intmax_t, dll.)
yang Gnulib menyediakan fungsi konversi.

-i, --menginternasionalisasikan
Letakkan makro internasionalisasi _() di sekitar output teks sehingga program yang dihasilkan
dapat diinternasionalkan menggunakan perintah gettext GNU. Saat ini hanya dilaksanakan
untuk keluaran C.

-l, --bahasa lang
Bahasa keluaran. Hanya C, C++ dan Java yang didukung. Salah satu dari berikut ini
menunjukkan C++: "c++", "cpp", "cc", dan "cxx". Untuk Java gunakan: "java" atau "Java".
(standar = c)

-o, --file keluar nama
Nama file keluaran. (default = parse_cl)

-m, --anggota lama
Gunakan opsi panjang untuk anggota kelas parser (struct). Standarnya adalah untuk
gunakan representasi pendek kecuali jika hanya ada representasi panjang yang ditentukan
dalam file genparse. Jika opsi ini disetel, maka perilaku akan dikembalikan. Itu
representasi panjang digunakan maka kecuali jika hanya ada representasi pendek
didefinisikan.

-o, --file keluar nama file
Nama root dari file keluaran. Ekstensi akan ditentukan oleh bahasa keluaran
dan mungkin dengan opsi lain. Misalnya, ketika bahasa keluarannya adalah C, berikan
opsi ini argumen "file" akan menghasilkan nama file keluaran "file.h",
"file.c" dan "file_cb.c" masing-masing untuk file header, parser, dan panggilan balik.
Nilai default adalah "parse_cl".

-p, --parsefunc fungsi
Nama fungsi/kelas parsing. Opsi ini memungkinkan pengguna untuk menentukan nama
dari fungsi (untuk C) atau kelas (untuk C++ dan Java) yang melakukan perintah yang sebenarnya
penguraian baris (default = "Cmdline").

-P, --banyak cetakan
Keluarkan teks bantuan untuk setiap parameter baris perintah dalam perintah cetak terpisah.

-q, --diam
Mode senyap - tidak ada output di layar.

-s, --static-header
Pertahankan tajuk deskriptif di atas file yang dihasilkan statis. Tanpa ini
opsi genparse mencetak tanggal dan waktu pembuatan, versi kernel Linux, versi kernel
waktu, nama arsitektur komputer, nama host dan nama pengguna.

-v, --Versi: kapan
Versi keluaran.

-D, --direktori
Direktori untuk menyimpan hasil.

INPUT FILE


File spesifikasi genparse (biasanya hanya disebut 'file genparse') terdiri dari nomor
entri, satu per parameter baris perintah, dalam bentuk:

nama_pendek[*|!] [/ nama panjang[*|!][=opt_name]] mengetik [ Pilihan ]

A nama pendek adalah karakter tunggal (kecil atau kapital) atau satu digit. nama panjang adalah
nama opsi yang lebih panjang (lebih deskriptif). Pada baris perintah nama pendek akan didahului
dengan tanda hubung tunggal (misalnya '-a') dan versi panjang akan didahului oleh dua tanda hubung (misalnya
'--semua'). Jika nama parameter yang panjang tidak diperlukan, Anda dapat menentukan hanya yang pendek saja
(dan garis miring tidak perlu muncul). Untuk menentukan parameter yang hanya memiliki panjang
set nama nama_pendek untuk NONE. Dimungkinkan untuk memiliki beberapa opsi pendek, jadi untuk
contoh pengaturan nama pendek untuk 'aA' dan nama panjang untuk 'semua' akan memungkinkan untuk menentukan
beralih baris perintah sebagai '-a' atau '-A' atau '--semua', semuanya melakukan hal yang sama.

A * setelah nama pendek or nama panjang membuat argumen opsional. Ini dapat ditentukan untuk
opsi pendek dan panjang secara terpisah.

A ! setelah nama pendek or nama panjang membuat opsi menjadi boolean. Hal ini memungkinkan seseorang untuk menggabungkan
opsi pendek boolean dengan opsi panjang dengan argumen opsional atau wajib atau to
menggabungkan opsi panjang boolean dengan opsi pendek dengan argumen opsional atau wajib.
A ! tidak masuk akal jika jenis opsinya adalah bendera.

mengetik harus menjadi salah satu int mengapung tangki tali or bendera. Empat yang pertama harus mandiri
jelas. Yang terakhir adalah opsi "beralih" yang tidak memerlukan argumen. Untuk keluaran C dan jika
--gnulib diatur pada baris perintah tambahan jenis berikut ini diperbolehkan: panjang
(untuk int panjang), ulong (untuk int panjang yang tidak ditandatangani), intmax (untuk intmax_t, didefinisikan dalam Gnulib),
uintmax (untuk uintmax_t), dua kali lipat.

Berikut ini Pilihan didukung. Mereka dapat muncul dalam urutan apa pun dan kecuali untuk
deskripsi hanya satu dari setiap bidang yang dapat ditentukan per opsi.

A kegagalan nilai untuk parameternya. Untuk string ini hanyalah default biasa
nilai, apapun itu. Untuk string, default harus ditentukan dalam kurung kurawal dan
tanda kutip, dan mungkin menyertakan spasi, misalnya {"nilai default saya"}. Untuk sebuah char
parameter itu harus diapit oleh tanda kutip tunggal, misalnya 'a' atau '\n'.

A jarak dari nilai-nilai dalam tanda kurung. Nilai rendah dan tinggi ditentukan antara a
penentu rentang (baik '...' atau '..'). Baik nilai tinggi atau rendah mungkin
dihilangkan untuk rentang yang dibatasi pada satu sisi saja. Parameter akan diperiksa ke
pastikan bahwa itu terletak dalam kisaran ini.

A Telepon kembali fungsi. Fungsi ini dipanggil setelah pemeriksaan jangkauan adalah
dilakukan. Tujuan dari panggilan balik untuk melakukan pemeriksaan validitas yang lebih
rumit daripada yang dapat ditentukan dalam file genparse. Misalnya, Anda mungkin
tulis program yang membutuhkan input berupa bilangan prima, string tertentu
panjang, dll.

A deskripsi dalam tanda kutip ganda. Itu dicetak oleh penggunaan() fungsi. Jika satu
baris tidak cukup maka tentukan beberapa deskripsi, satu per baris dan masing-masing
mereka dalam tanda kutip ganda. Jika deskripsi dimulai di kolom 1 di Genparse
file maka itu juga akan dicetak di kolom 1 di penggunaan() fungsi.

A #gp_include direktif akan menginstruksikan genparse untuk memasukkan file genparse lain,
mis. #gp_include lain.gp. Hanya definisi parameter yang diizinkan dalam yang disertakan
file, tidak ada arahan global.

An __ERR_MSG__(err_txt) pengarahan. Menentukan pesan kesalahan yang dicetak
ketika argumen tidak dapat dikonversi. Contoh: __ERR_MSG__("%s: tidak sah
argumen"). Pesan ini akan dicetak ketika salah satu fungsi konversi
gagal atau ketika argumen berada di luar jangkauan. Asumsikan mengandung satu %s yang akan
diganti dengan agrument yang tidak dapat dikonversi. Hanya tersedia ketika
Genparse dipanggil dengan --gnulib, diabaikan sebaliknya.

Secara opsional, fungsi konversi dapat ditambahkan sebagai argumen kedua, mis
__ERR_MSG__("%s: tidak sah argumen", kutipan). Ini akan menyebabkan pesan kesalahan
'like' kesalahan (EXIT_FAILURE, 0, "%S: tidak sah argumen", kutipan (pilih)).

An __TAMBAHKAN_FLAG__ pengarahan. Masuk akal hanya jika parameter baris perintah tidak
sudah menjadi flag, dalam hal ini parameter flag tambahan ditambahkan yang akan menjadi
set jika parameter baris perintah ditentukan pada baris perintah. Pilihan ini
secara otomatis diatur jika parameter memiliki argumen opsional.

A __CODE__(pernyataan) pengarahan. Pernyataan kode yang ditentukan disalin
secara harfiah. Contoh: __CODE__(cetakf ("Parameter x adalah mengatur");). Kode yang ditentukan
dapat diperpanjang lebih dari satu baris. Untuk memberi Genparse kesempatan untuk
indentasi kode dengan benar, jangan campur spasi dan lekukan tab menjadi satu __KODE__
pernyataan.

A __STORE_LONGINDEX__ pengarahan. Menginstruksikan Genparse untuk menambahkan bidang tipe interer
ke kelas hasil yang akan disetel ke variabel longindex (argumen terakhir di
panggilan ke @code{getopt_long()}). Bidang baru ini akan mendapatkan nama yang sama dengan
bidang hasil yang terkait dengannya tetapi dengan _li perbaikan akhir.

Berikut ini global arahan didukung. Mereka mungkin muncul dalam urutan apa pun.

An #include direktif akan menginstruksikan genparse untuk menyalin pernyataan include tersebut
ke dalam kode C atau C++ yang dihasilkan oleh genparse, tetapi bukan file header atau panggilan balik
file.

A #wajib direktif dapat digunakan itu membuat penggunaan () fungsi memanggil lebih bagus. Ini memungkinkan
Anda untuk menentukan parameter baris perintah wajib yang mungkin mengikuti sakelar. Catatan
bahwa Genparse tidak memeriksa parameter wajib, mereka hanya dicetak di
pemakaian () fungsi dengan __WAJIB__ Directive. Tidak digunakan lagi: menambahkan wajib
parameter in itu #penggunaan bagian sebagai gantinya.

An #keluar_nilai direktif yang menentukan nilai keluar jika terjadi kesalahan.
Standarnya adalah EXIT_FAILURE.

A #break_lines direktif yang menentukan lebar garis yang akan dipatahkan
pada layar bantuan. Jika tidak #break_lines direktif ditentukan maka garis akan menjadi
dicetak persis seperti yang diberikan dalam file genparse.

If #no_struktur ditentukan maka tidak ada struct yang akan ditentukan yang akan diisi dengan
parameter baris perintah di parser yang dihasilkan. Ini mungkin berguna jika Anda
ingin menambahkan kode Anda sendiri dengan __KODE__ pernyataan sebagai gantinya. Hanya didukung untuk C
output.

A #export_long_options pengarahan. Jika #export_long_options didefinisikan maka
fungsi #get_long_options() ditambahkan yang mengekspor larik opsi panjang yang digunakan oleh
#getopt_long(). Arahan ini hanya tersedia untuk output C, untuk bahasa lain
itu diabaikan.

A global Telepon kembali fungsi. Fungsi ini berguna untuk memeriksa saling ketergantungan
antar parameter. Saling ketergantungan tidak dapat diperiksa dalam setiap individu
fungsi panggilan balik karena urutan pemanggilan fungsi ini bervariasi,
tergantung pada urutan parameter pada baris perintah.

Genparse juga menghasilkan penggunaan() fungsi yang mencetak teks bantuan ke stdout tentang
penggunaan program di mana Genparse menghasilkan parser. Itu dapat disesuaikan dengan:
menentukan bagian penggunaan di bagian bawah file Genparse. Jika tidak ada bagian seperti itu
ditentukan secara default ke

#penggunaan_begin
penggunaan: __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__GLOSARIUM__
#penggunaan_akhir

Bagian penggunaan dimulai dengan #penggunaan_begin dan diakhiri dengan #penggunaan_akhir. Teks apa pun di antara is
dicetak kata demi kata kecuali untuk kata kunci berikut, yang akan diganti seperti yang tercantum
di bawah ini:

__NAMA PROGRAM__: Nama program. Dalam C dan C++ nama program diberikan dalam
argv[0].

__OPTIONS_SHORT__: Daftar opsi formulir pendek yang tersedia, misalnya [ -abc ].

__WAJIB__: Daftar semua parameter wajib seperti yang didefinisikan dengan #mandatory
perintah. Tidak digunakan lagi: Daftar wajib parameter di sini langsung.

__GLOSARIUM__: Deskripsi semua opsi baris perintah. Ini dia informasinya
diberikan untuk definisi parameter dalam bentuk yang dapat dibaca manusia. Ini termasuk
jenis parameter, default, rentang, dan komentar apa pun. Sebuah baris yang berisi
__GLOSARIUM__ digantikan oleh glosarium parameter, teks lain apa pun di
baris yang sama diabaikan.

__GLOSARY_GNU__: Sama dengan __GLOSARIUM__ tetapi dalam gaya GNU. Opsional diikuti oleh
integer dalam tanda kurung yang menentukan indentasi teks deskriptif (mis
__GLOSARIUM__(30)). Indentasi default adalah 24.

__STRING__(s): Konstanta string, dalam C mungkin makro string yang didefinisikan dengan
#define perintah praprosesor. Makro ini dapat diimpor dari file lain menggunakan
direktif include dalam file genparse. Diabaikan saat menghasilkan keluaran Java.

__INT__(x): Konstanta bilangan bulat, dalam C mungkin makro bilangan bulat yang didefinisikan dengan
#define perintah praprosesor. Makro ini dapat diimpor dari file lain menggunakan
direktif include dalam file genparse. Diabaikan saat menghasilkan keluaran Java.

__CODE__(pernyataan): Sama seperti untuk opsi parameter, lihat di atas.

__DO_NOT_DOKUMEN__: Setiap baris yang berisi makro ini tidak akan dicetak di
penggunaan() fungsi. Dapat digunakan untuk mengimplementasikan parameter baris perintah tanpa
daftar mereka di layar bantuan.

__NL__: Garis baru. Berguna untuk memutus garis secara manual saat pemutusan garis otomatis
aktif (lihat #break_lines). Diabaikan saat menghasilkan keluaran Java.

__BARU_PRINT__: Tutup perintah cetak aktif dan mulai yang baru.

__COMMENT__(teks): Komentari kode untuk mencetak teks penggunaan.

opsi panjang dapat diikuti dengan tanda = dan penunjukan opsional opt_name yang dapat
dirujuk dalam uraian berikut. Ini akan digunakan dalam penggunaan() fungsi
hanya. Misalnya baris genparse berikut

s / block-size=SIZE int "gunakan blok SIZE-byte"

akan mengarah ke baris berikut di layar bantuan

[ -s ] [ --block-size=SIZE ] (tipe=INTEGER)
gunakan blok SIZE-byte

dalam gaya genpar (__GLOSARIUM__) atau

-s, --block-size=SIZE gunakan blok SIZE-byte

dalam gaya GNU (__GLOSARY_GNU__).

Dimungkinkan juga untuk menempatkan kurung siku di sekitar nama opsional untuk menunjukkan
bahwa argumen itu opsional. Namun ini tidak memiliki arti untuk parser yang dihasilkan. Menggunakan
* postfix untuk membuat argumen opsional.

s* / blok*[=SIZE] int "gunakan blok."
"Jika SIZE tidak diberikan maka mereka akan mendapatkan ukuran 1kB."

akan mengarah ke baris berikut di layar bantuan

-s, --block[=SIZE] gunakan blok.
Jika SIZE tidak diberikan maka mereka akan mendapatkan ukuran 1kB.

CONTOH


Berikut ini adalah contoh file genparse:

#termasuk

/* komentar */
panggilan balik_saya()

i / iterasi int 100 [10...1000] iter_callback()
"Jumlah iterasi untuk dijalankan."

/*
* Komentar
*/

n / string nama {"mike"} name_cb() "Nama pengguna"
s / str string "string uji"
f bendera "bendera bodoh!"

#penggunaan_begin
penggunaan: __PROGRAM_NAME__ __OPTIONS_SHORT__ nama file
Ini hanya program tes bodoh.
__GLOSARIUM__
#penggunaan_akhir

Gunakan genparse online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad