Home
Name Modified Size InfoDownloads / Week
README.txt 2013-03-14 2.2 kB
tavutus.l 2013-03-14 3.0 kB
tolow.h 2013-03-14 1.4 kB
Yytoken.java 2013-03-14 151 Bytes
morfo.l 2013-03-14 6.8 kB
sanat.l 2013-03-14 960 Bytes
JMorfo.java.flex 2013-03-14 5.1 kB
Makefile 2013-03-14 796 Bytes
morfo.h 2013-03-14 1.4 kB
Totals: 9 Items   21.9 kB 0
Etsi sanan vartalo sekä tavutus.
Kokeellinen flex, jflex projekti.


Modulit:
1. Taivutus (morfo.l):
	Lähde:
		http://www.finnlectura.fi/verkkosuomi/aloitus.htm
		http://scripta.kotus.fi/visk/etusivu.php
		
	SANA				KANTA JOHDIN TUNNUS PAATE LIITE

	KANTA				// tätä etsitään
	JOHDIN
						{JOHDIN}
	TUNNUS
		NOMINI	LUKU	[ijt]		// Tässä: sisältyy SIJA(_M):aan
		VERBI_FINIITTI	{PASSIIVI}({TEMPUS} tai {MODUS})
		VERBI_EIFINIIT	{PASSIIVI}({INFINIITTI} tai {PARTISIIPPI})
	PAATE
		NOMINI			{SIJA}
		VERBI_FINIITTI	{PERSOONA}	// Tässä: vain VERBI:lle
	LIITE
		Omistusliitteet	{POS}		// Tässä: vain NOMINI:lle
		Liitepartikkeli	{LP}

2. Tavutus(tavutus.l):
	Lähde:
		http://www.cse.hut.fi/fi/opinnot/t1061215/2013_external/harjoitukset/kierros_2/harj_1/index.html
		
	Suomen kielen tavuttaminen seuraa melko suoraviivaisesti seuraavia sääntöjä:

	2.1. Konsonanttisääntö: 
		Jos tavuun kuuluvaa vokaalia seuraa yksi tai useampia konsonantteja,
		joita vielä seuraa vokaali, tavuraja sijoittuu välittömästi ennen viimeistä konsonanttia.
		Esimerkkejä:
			lef-fas-sa ki-vaa kah-del-le:
			tra-giik-kaa se-kä hork-ka-ti-lo-ja

	2.2. Vokaalisääntö: 
		Jos tavun ensimmäistä vokaalia seuraa toinen vokaali, niiden väliin tulee tavuraja, 
		ellei
			2.2.1) edellinen vokaali ole sama kuin jälkimmäinen (pitkä vokaali).
			2.2.2) jälkimmäinen vokaali ole i (i:hin loppuva diftongi).
			2.2.3) kysymyksessä ole jokin vokaalipareista au, eu, ey, ie, iu, ou, uo, yö, äy tai öy (muu diftongi).
		Esimerkkejä:
			lu-en-to Aa-si-an kää-pi-ö-puo-lu-eis-ta

	2.3. Diftongisääntö: 
		Jos tavun kuuluvaa diftongia tai pitkää vokaalia seuraa vokaali,
		tähän väliin tulee aina tavuraja.
		Esimerkkejä:
			raa-is-tu-nut maa-il-ma, liu-ot-ti-met lau-an-tai-na tau-ot-ta leu-an al-la

3. Pääohjelma (sanat.l)
		Jakaa annetun syötteen (stringin, tiedoston, ..) sanoihin ja kutsuu edellä olevia.
		
4. Työkaluja
		4.1 tolow.h
			Muutta isot kirjaimet pieniksi
		4.1 Makefile

5. Java
	Uteliasuuttani kokeilin Java Flex (JFLEX) ohjelmaa
	5.1 JMorfo.flex
		JFlex implementaatio morfo.l:stä
	5.2 Yytoken.java
		JFlex tuotoksen tarvitsema luokka
		
Source: README.txt, updated 2013-03-14