Ad

EnglishFrenchSpanyol

Editor percuma dalam talian | DOC > | XLS > | PPT >


Favicon OffiDocs

Semakan Tatabahasa Komponen Linguistik

OffiDocs menyediakan OpenOffice dalam talian supaya kami berminat dengan Pemeriksaan Tatabahasa Komponen Lingu yang matlamatnya adalah untuk mereka bentuk, membangun dan melaksanakan penyemak Tatabahasa untuk bahasa Inggeris dan bahasa lain yang disokong. API penyemak tatabahasa telah tersedia dalam OpenOffice.org sejak versi 3.0.

Semakan tatabahasa dilihat sebagai pelaksanaan tertentu proses lelaran dan penandaan teks, proses lelaran/penanda lain seperti semakan ejaan atau penandaan pintar pada asasnya boleh berfungsi dengan cara yang sama (walaupun pada masa ini ia tidak dilaksanakan seperti ini). Jika semakan tatabahasa disebut dalam dokumentasi berikut ini boleh dilihat sebagai pemegang tempat untuk tugas penanda teks yang lebih umum. Memandangkan objek yang menjalankan lelaran teks menyedari proses penandaan tertentu yang digunakan, ia pada asasnya mungkin untuk memperhalusi lelaran untuk keperluan proses tersebut.

Proses penyemakan tatabahasa terdiri daripada

- satu atau lebih dokumen untuk disemak

- satu atau lebih pelaksanaan penyemak tatabahasa, setiap satu menyokong sekurang-kurangnya satu bahasa.

- satu atau lebih dialog semakan tatabahasa (paling banyak satu contoh setiap dokumen)

- satu menu konteks apabila mengklik pada teks yang ditandai sebagai tidak betul

- iterator semakan tatabahasa global (biasa kepada semua dokumen) dilaksanakan sebagai tunggal, menyemak satu ayat (daripada dokumen sewenang-wenangnya) pada satu masa.

- satu objek benang setiap penyemak tatabahasa yang digunakan untuk melakukan semakan tanpa menyekat GUI

- objek yang berulang melalui teks dokumen, satu objek yang mewakili satu tugas menyemak tatabahasa yang diminta

- objek yang mewakili blok teks dalam dokumen teks ("perenggan rata") yang abstrak daripada struktur konkrit dokumen dan menyediakan akses kepada teks dengan rentetan teks ringkas dan nilai integer yang menerangkan kedudukan dan panjang sub rentetan.

 

Objek dan antara muka mereka

Kami mempunyai tiga bahagian yang bekerjasama. Bahagian pertama datang daripada dokumen yang disemak dan ia merupakan pelaksanaan yang khusus untuk jenis dokumen tertentu (cth Writer atau Calc). Ia merangkum akses kepada teks dokumen. Dokumen yang ingin disemak untuk kesilapan tatabahasa mesti menyokong antara muka com.sun.star.text.XFlatParagraphIteratorProvider. Melalui antara muka ini ia mesti dapat menyediakan objek yang melaksanakan com.sun.star.text.XFlatParagraphIterator yang sendiri mengembalikan objek yang melaksanakan com.sun.star.text.XFlatParagraph. Antara muka yang terakhir diperoleh daripada com.sun.star.text.XTextMarkup. Dalam perkara berikut, kami akan memanggil objek ini "peulang perenggan rata" (FPIterator) dan "perenggan rata" (FP). Jika perkataan "perenggan" digunakan ini juga akan menandakan "FP", bukan perenggan sebenar dalam dokumen kerana tidak selalu kedua-duanya adalah sama.

FP tidak semestinya perenggan seperti dalam konteks dokumen, ia boleh menjadi koleksi mereka (cth senarai) dan ia bukan sahaja mengandungi teks aliran tetapi juga kandungan teks lain seperti bingkai teks, pengepala dan pengaki dll. Kerana hanya teras dokumen boleh mengendalikan objek objek FP sedemikian dengan cekap ini adalah pelaksanaan khusus dokumen. FP tidak mendedahkan struktur teks dalaman yang lengkap atau atributnya, kandungannya hanya boleh diakses sebagai rentetan yang mengandungi blok teks lengkap.

FPIterator ialah objek yang membenarkan untuk melelaran melalui semua objek FP yang bersama-sama membentuk kandungan teks dokumen. Susunan perenggan diulang adalah sewenang-wenangnya dan butiran pelaksanaan FPIterator. Kandungan teks "biasa" biasanya harus disediakan dalam arah bacaan, tetapi cara teks lain seperti pengepala dan pengaki (yang wujud sekali sahaja tetapi diulang pada setiap halaman) atau bingkai teks (yang mungkin dibenamkan ke dalam teks aliran) sesuai adalah tidak ditentukan terlebih dahulu. Mengulang melalui teks sentiasa diberikan kepada proses penanda teks yang akan mengendalikan keseluruhan dokumen. Oleh itu, lelaran akan membungkus di hujung dokumen dan ia tidak akan berakhir sebelum semua perenggan telah ditandakan sebagai "disemak" untuk proses penandaan tertentu (seperti pemeriksaan tatabahasa). Perenggan yang ditandai sebagai "disemak" akan dilangkau dalam lelaran. Jadi untuk pelanggan FPIterator mudah untuk menggunakannya: minta objek FP baharu sehingga tiada yang dikembalikan dan tidak mengambil berat tentang cara ia dilaksanakan.

Bahagian kedua ialah penyemak tatabahasa. Penyemak tatabahasa ialah komponen yang melaksanakan antara muka com.sun.star.linguistic2.XGrammarChecker. Bagi setiap bahasa mungkin terdapat komponen tertentu yang dapat menyemak kesilapan tatabahasa dalam bahasa ini. Konfigurasi akan memberitahu komponen mana yang bertanggungjawab untuk bahasa apa. Pelaksanaan com.sun.star.linguistic2.XGrammarChecker yang mewakili komponen tertentu akan merangkum API "peribadi" komponen semakan tatabahasa ini. API peribadi ini boleh berasaskan UNO atau Java tulen, antara muka CLI atau COM, API C dan lain-lain, segala-galanya yang boleh digunakan atau disambungkan ke dalam pelaksanaan antara muka UNO. Memandangkan antara muka agak kecil, ia sepatutnya tidak terlalu rumit untuk membungkus penyemak tatabahasa sedia ada untuk menggunakannya dalam OpenOffice.org.

Di tengah terletak komponen ketiga, yang menjadi pengantara antara dua yang lain. Ia melaksanakan "logik" proses semakan tatabahasa. Memandangkan ia bercakap dengan dua bahagian lain dengan API UNO yang ditakrifkan, hanya bahagian tengah ini bebas daripada jenis dokumen atau komponen semakan tatabahasa tertentu. Perkhidmatan UNO yang dipanggil com.sun.star.linguistic2.GrammarCheckingIterator ialah komponen yang sebenarnya menjalankan proses semakan tatabahasa untuk semua senario yang disokong. Ia adalah singleton yang mengawal semua proses semakan tatabahasa yang dijalankan dan dengan itu juga mengetahui semua komponen semakan tatabahasa sedia ada. Ia melaksanakan antara muka com.sun.star.linguistic2.XGrammarCheckingIterator dan juga menyediakan objek yang melaksanakan com.sun.star.linguistic2.XGrammarCheckingResultListener. Dalam perkara berikut objek ini akan dipanggil GCIterator.


Main Chrome Extensions

Ad