"""02a — Temel Dil Bilgisi Kavramları (Türkçe müfredat eksiği için)"""
import sys; sys.path.insert(0, '.')
from _helpers import *

doc = new_doc()
heading(doc, "DİL BİLGİSİ KAVRAMLARI", 14)
body(doc, "Bu bölüm, İngilizce öğrenirken ihtiyaç duyacağın temel dil bilgisi terimlerini açıklar.")
body(doc, "Türkçe dersinde bu kavramlar artık öğretilmediği için burada kısaca tanıtıyoruz.")

# ── İsim ──
subhead(doc, "İsim (Noun)")
body(doc, "Varlıkları, kavramları, yerleri, kişileri adlandıran kelimelerdir.")
tip(doc, '  Örnek: kitap, okul, masa, Ali, Lefkoşa, kedi, su, sevgi')
tip(doc, '  "book", "school", "table", "Ali", "Nicosia" → hepsi birer isimdir.')
tip(doc, "  İsimler cümlede özne, nesne veya dolaylı tümleç olabilir.")

# ── Fiil ──
subhead(doc, "Fiil (Verb)")
body(doc, "Bir eylemi, oluşu veya durumu bildiren kelimelerdir. Cümlenin yüklemidir.")
tip(doc, '  Örnek: koşmak, yemek, uyumak, olmak, sevmek')
tip(doc, '  "run", "eat", "sleep", "be (olmak)", "love" → hepsi birer fiildir.')
tip(doc, '  "I am a student." → "am" fiildir, "olmak" anlamındadır.')
tip(doc, '  "She reads a book." → "reads" fiildir, "okumak" eylemidir.')

# ── İş Cümlesi vs Oluş Cümlesi ──
subhead(doc, "İş Cümlesi ve Oluş Cümlesi (Action vs State)")
body(doc, "İngilizce'de iki tür cümle vardır. Bunları ayırt etmek ÇOK önemlidir "
    "çünkü soru ve olumsuz yapıları tamamen farklıdır.")

body(doc, "1. Oluş Cümlesi (State Sentence)")
body(doc, "Bir durumu, hali, kimliği anlatır. Cümlede \"am, is, are\" (to be) fiili vardır.")
body(doc, "Bu cümlelerde bir EYLEM yoktur — sadece bir DURUM vardır.")
tip(doc, '  Olumlu:  She is happy.     I am a student.     They are tired.')
tip(doc, '  Olumsuz: She is not happy.  I am not a student.  They are not tired.')
tip(doc, '  Soru:    Is she happy?      Am I a student?      Are they tired?')
tip(doc, '  KISA CEVAP: Yes, she is. / No, she isn\'t.  (sadece am/is/are kullanılır!)')
doc.add_paragraph()
body(doc, "Oluş cümlelerinde DAİMA bir sıfat, isim veya yer ifadesi bulunur:")
tip(doc, '  She is beautiful.   → sıfat (nasıl biri?)')
tip(doc, '  He is a doctor.     → isim/meslek (ne?)')
tip(doc, '  They are at school.  → yer (nerede?)')

body(doc, "2. İş Cümlesi (Action Sentence)")
body(doc, "Bir eylemi, hareketi anlatır. Cümlede bir EYLEM FİİLİ vardır (run, eat, go, read...).")
body(doc, "Bu cümlelerde \"am, is, are\" YOKTUR — onun yerine \"do/does\" kullanılır.")
tip(doc, '  Olumlu:  She reads a book.   I go to school.     They play football.')
tip(doc, '  Olumsuz: She does not read.  I do not go.         They do not play.')
tip(doc, '  Soru:    Does she read?      Do I go?             Do they play?')
tip(doc, '  KISA CEVAP: Yes, she does. / No, she doesn\'t.  (sadece do/does kullanılır!)')
doc.add_paragraph()
body(doc, "İş cümlelerinde am/is/are ile soru sorulmaz!")
tip(doc, '  ❌ Is she read a book?      →  ✅ Does she read a book?')
tip(doc, '  ❌ Are you go to school?     →  ✅ Do you go to school?')

body(doc, "⚠️ Trik Nokta: İş mi Oluş mu?")
body(doc, "Cümlede bir EYLEM fiili varsa → İŞ cümlesidir → do/does kullan.")
body(doc, "Cümlede eylem fiili YOKSA, sadece durum/sıfat/isim varsa → OLUŞ cümlesidir → am/is/are kullan.")
tip(doc, '  "She is tired."         → eylem yok, durum var  → OLUŞ → is')
tip(doc, '  "She feels tired."      → eylem var (feel)      → İŞ   → does')
tip(doc, '  "He has got a car."     → sahiplik (have got)   → ÖZEL → has/have got')
tip(doc, '  "She can swim."         → yetenek (can)         → ÖZEL → can (değişmez)')

# ── Sıfat ──
subhead(doc, "Sıfat (Adjective)")
body(doc, "İsimlerin özelliklerini, niteliklerini belirten kelimelerdir. \"Nasıl?\" sorusuna cevap verir.")
tip(doc, '  Örnek: güzel, büyük, yorgun, mutlu, sarı, soğuk')
tip(doc, '  "beautiful", "big", "tired", "happy", "yellow", "cold" → birer sıfattır.')
tip(doc, '  "She is tired." → "tired" sıfattır, öznenin durumunu anlatır.')
tip(doc, '  "It is a big house." → "big" sıfattır, "house" ismini niteler.')

# ── Zamir ──
subhead(doc, "Zamir (Pronoun)")
body(doc, "İsimlerin yerine kullanılan kelimelerdir. İsmi tekrar etmemek için kullanılır.")
tip(doc, '  "Ayşe is happy. Ayşe is 10 years old." → tekrar var!')
tip(doc, '  "Ayşe is happy. She is 10 years old." → "She" zamirdir, Ayşe\'nin yerine kullanılır.')
doc.add_paragraph()
body(doc, "İki tür zamir vardır:")
tip(doc, '  Özne zamiri (Subject Pronoun): I, you, he, she, it, we, they → cümlede ÖZNE olur')
tip(doc, '  Nesne zamiri (Object Pronoun): me, you, him, her, it, us, them → cümlede NESNE olur')

# ── Özne ──
subhead(doc, "Özne (Subject)")
body(doc, "Cümlede eylemi yapan veya durumda olan kişi ya da varlıktır. \"Kim?\" sorusuna cevap verir.")
tip(doc, '  "I am happy." → Özne: I (ben) — mutlu olan kişi')
tip(doc, '  "She reads a book." → Özne: She (o) — okuma eylemini yapan')
tip(doc, '  "The cat is sleeping." → Özne: The cat (kedi) — uyuyan varlık')

# ── Nesne ──
subhead(doc, "Nesne (Object)")
body(doc, "Cümlede eylemden etkilenen kişi ya da varlıktır. \"Kimi? Neyi?\" sorularına cevap verir.")
tip(doc, '  "I love her." → Nesne: her (onu) — sevilen kişi')
tip(doc, '  "He reads a book." → Nesne: a book (kitap) — okunan şey')
tip(doc, '  "Look at him." → Nesne: him (ona) — bakılan kişi (edattan sonra)')

# ── Edat ──
subhead(doc, "Edat (Preposition)")
body(doc, "Kelimeler arasında yer, zaman, yön gibi ilişkiler kuran kelimelerdir.")
tip(doc, '  Yer edatları: in, on, at, under, behind, near')
tip(doc, '  Zaman edatları: at, in, on, before, after')
tip(doc, '  "I am at school." → "at" edattır, konum belirtir.')
tip(doc, '  "I wake up at 7 o\'clock." → "at" edattır, zaman belirtir.')
tip(doc, '  Edattan sonra gelen isim/zamir her zaman nesne durumundadır: "Look at him" (he ❌)')

# ── Özet tablo ──
doc.add_paragraph()
subhead(doc, "Hızlı Özet")
add_table(doc,
    ["Terim", "İngilizcesi", "Görevi", "Örnek"],
    [["İsim","Noun","Varlıkları adlandırır","book, school, cat"],
     ["Fiil","Verb","Eylem/durum bildirir (yüklem)","am, is, are, read, go"],
     ["Sıfat","Adjective","İsmin özelliğini belirtir","happy, big, tired, cold"],
     ["Zamir","Pronoun","İsmin yerine geçer","I, you, he, she, him, her"],
     ["Özne","Subject","Eylemi yapan / durumda olan","I (I am happy)"],
     ["Nesne","Object","Eylemden etkilenen","her (I love her)"],
     ["Edat","Preposition","Yer/zaman ilişkisi kurar","at, in, on, before, after"],
     ["İş Cümlesi","Action Sentence","Eylem fiili vardır → do/does","She reads. Does she read?"],
     ["Oluş Cümlesi","State Sentence","Durum bildirir → am/is/are","She is happy. Is she happy?"]]
)

doc.save("02a_GrammarTerms.docx")
print("✅ 02a_GrammarTerms.docx (9 kavram açıklandı)")
