Context-Free Grammar (CFG) Pantun
Aturan produksi formal yang digunakan oleh Recursive Descent Parser.
Pantun -> Sampiran Isi Sampiran -> Baris Baris Isi -> Baris Baris Baris -> Kalimat Kalimat -> Kata Kalimat | Kata Kata -> [a-zA-Z0-9'\-]+
Aturan Semantik Tambahan
- Jumlah baris pada satu Pantun harus tepat 4 baris.
- Jumlah kata pada setiap Baris harus berada pada rentang 4 - 12 kata.
- Baris ke-1 dan ke-2 berperan sebagai Sampiran.
- Baris ke-3 dan ke-4 berperan sebagai Isi.
- Baris tidak boleh kosong (whitespace saja dianggap tidak valid).
Penjelasan Setiap Aturan Produksi
| ID | Aturan Produksi | Keterangan |
|---|---|---|
| R1 | Pantun -> Sampiran Isi | Sebuah pantun tersusun atas Sampiran diikuti Isi. |
| R2 | Sampiran -> Baris Baris | Sampiran terdiri dari baris ke-1 dan baris ke-2. |
| R3 | Isi -> Baris Baris | Isi terdiri dari baris ke-3 dan baris ke-4. |
| R4 | Baris -> Kalimat | Setiap baris adalah satu Kalimat (rangkaian kata). |
| R5 | Kalimat -> Kata Kalimat | Kata | Kalimat didefinisikan secara rekursif: satu Kata diikuti Kalimat lain, atau berhenti pada satu Kata (basis rekursi). |
| R6 | Kata -> [a-zA-Z0-9'\-]+ | Kata adalah token dasar (terminal) hasil tokenisasi baris berdasarkan spasi. |
Contoh Pohon Penurunan (Parse Tree)
Pantun
├── Sampiran
│ ├── Baris (1) → Kalimat → Kata Kalimat → ... → Kata
│ └── Baris (2) → Kalimat → Kata Kalimat → ... → Kata
└── Isi
├── Baris (3) → Kalimat → Kata Kalimat → ... → Kata
└── Baris (4) → Kalimat → Kata Kalimat → ... → Kata
Parser menurunkan setiap Kalimat secara rekursif: setiap Kata diikuti sisa Kalimat, hingga akhirnya berhenti pada satu Kata terakhir (basis rekursi). Proses ini identik dengan definisi Kalimat → Kata Kalimat | Kata.