Skip to content

Commit

Permalink
#23: no sentence break between date and hyphen followed by an upperca…
Browse files Browse the repository at this point in the history
…se letter
  • Loading branch information
mivan committed Feb 23, 2017
1 parent 61fc53f commit 703045f
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 7 deletions.
9 changes: 8 additions & 1 deletion src/quex_modules/definitions.qx
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,8 @@ define {
// SNTBEGINCHR: mondatkezdő karakter (pont is lehet, pl. a ".hu vita a
// neten.")
// TODO: whitespace karaktereket megadni rendesen!!!
// ENDPAR: zaro zarojelek
// ENDQUO: zaro idezojelek
// ENDQUOPAR: záró záró- és idézőjelek
// Ez a régi: ("\""|"''"|"'"|")"|"]")
// Megj.: mondathatár (BOUNDARY) után is következhetnek (l. SNTEND)
Expand Down Expand Up @@ -321,7 +323,12 @@ define {
SNTBEGINCHR [: difference( {BASE_CLASS}, union([?!], {WSPACE}) ) :]
ENDQUOPAR [: intersection( {BASE_CLASS}, ["'\)\]] ) :]
ENDPAR [: intersection( {BASE_CLASS}, [\)\]}] ) :]
ENDQUO [: intersection( {BASE_CLASS}, ["'”’] ) :]
ENDQUOPAR [: union( {ENDQUO}, {ENDPAR} ) :]
/* ENDQUOPAR [: intersection( {BASE_CLASS}, ["'\)\]] ) :] */

INPARENTCHR [: intersection( {BASE_CLASS}, difference([^.!?\)], {NEWLINECHAR}) ) :]

Expand Down
22 changes: 17 additions & 5 deletions src/quex_modules/snt.qx
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,25 @@ define {
// \n\n már paragrafus törésnek számít, a mondat végét
// is jelenti. A mondathatároló (.?!) csak opcionális a
// mondat végén.
// SNTEND: mondat végződés
// SNTEND: mondatvegi opcionalis zarojelek es idezojelek
// INPARENT: BRACKET_PART szabályhoz a zárójelen belüli karakterek között
// megengedhető sortörések kezelése
// HYPHEN_OR_DASH: idezo- es kotojeles szabalynal a gondolatjelet is
// megengedjuk, esetleges szokozokkel egyutt

CHARINSNTN {CHARINSNT}*{NEWLINE}?{CHARINSNT}*

SNTBEGIN {SNTBEGINCHR} // [^?!\n ]

SIMPLESNT ({NEWLINE}?{SNTCHAR}+)*

SNTEND ({NEWLINE}?{SPACE}*({ENDQUOPAR}|{BOUNDARY}))?({SPACE}*({ENDQUOPAR}|{BOUNDARY}))*
/* SNTEND ({NEWLINE}?{SPACE}*({ENDPAR}|{BOUNDARY}))?({SPACE}*({ENDPAR}|{BOUNDARY}))* */
/* SNTEND ({NEWLINE}?{SPACE}*({ENDQUOPAR}|{BOUNDARY}))?({SPACE}*({ENDQUOPAR}|{BOUNDARY}))* */
SNTEND ({NEWLINE}?({ENDQUO}|({SPACE}*({ENDPAR}|{BOUNDARY}))))?({ENDQUO}|({SPACE}*({ENDPAR}|{BOUNDARY})))*

INPARENT ({INPARENTCHR}{NEWLINE}?)*

HYPHEN_OR_DASH " "?("-"|"")" "?

// Mondatrészek szabályai: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 0. Egyszerű mondat: megenged egyszeres sortöréseket a mondaton belül, de
Expand All @@ -56,7 +61,7 @@ define {
// Az egyszerű mondat ilyen szerkezetű: {SNTBEGIN}{SIMPLESNT}{SNTEND}
// Minden összetettebb esetben az SNTBEGIN után következhet valamilyen
// részmondat szerűség. Ezek lesznek itt definiálva:
// Megj.: a definíciók utáni kommentes definíciók az eredeti, BOUDARY-t
// Megj.: a definíciók utáni kommentes definíciók az eredeti, BOUNDARY-t
// tartalmazó SIMPLESNT hatását állítják helyre

// 1. Mondathatár túllépés: mondatzáró után kis betű
Expand All @@ -77,11 +82,17 @@ define {
// LOWERCASE_PART ({SIMPLESNT}{BOUNDARY}{SNTEND}{CHARINSNTN}{LOWER})
LOWERCASE_PART ({SIMPLESNT}{BOUNDARY}+{SNTEND}?{CHARINSNTN}{LOWER})

// 2. Mondatzáró után idéző- vagy kötő jel.
// 2. Mondatzáró után idézőjel (esetleg kotojel is).
// BE: A "Ne már!"-ral az a baj.
// KI: <s>A "Ne már!"-ral az a baj.</s>
// QUOTATIONMARK_PART ({SIMPLESNT}{BOUNDARY}{SNTEND}"-"{WORDCHAR})
QUOTATIONMARK_PART ({SIMPLESNT}{BOUNDARY}+{SNTEND}"-"{WORDCHAR})
QUOTATIONMARK_PART ({SIMPLESNT}{BOUNDARY}+"\""[\- ]?{LOWER})

// 2/b. Szam - kotojel - nagybetu
// BE: Januar 2. - Budapest
// KI: <s>Januar 2. - Budapest</s>
// QUOTATIONMARK_PART ({SIMPLESNT}{BOUNDARY}{SNTEND}"-"{WORDCHAR})
HYPHEN_PART ({SIMPLESNT}[0-9]"."{HYPHEN_OR_DASH}{UPPER})

// 3. Pont után közvetlenül szóalkotó karakter a pontot magát leszámítva.
// BE: A WWW.AKARMI.HU.
Expand Down Expand Up @@ -109,6 +120,7 @@ mode PROGRAM {
// egységesen kezelve
{SNTBEGIN}(({LOWERCASE_PART}
|{QUOTATIONMARK_PART}
|{HYPHEN_PART}
|{WORDCHAR_PART}
|{COMMA_PART}
|{BRACKET_PART}
Expand Down
15 changes: 14 additions & 1 deletion test/test_default_snt_boundary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,23 @@ IN : - Szia Péterkém! Holnap találkozunk - mondta Gizi.
OUT: <s>- Szia Péterkém!</s><ws> </ws><s>Holnap találkozunk - mondta Gizi.</s>


2. Mondatzáró után idéző- vagy kötő jel. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2. Mondatzáró után idézőjel, esetleg kötőjellel. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IN : A "Ne már!" után nincs mondatvég.
OUT: <s>A "Ne már!" után nincs mondatvég.</s>

IN : A "Ne már!"-ral az a baj.
OUT: <s>A "Ne már!"-ral az a baj.</s>

# kontrol
IN : Elso. "Masodik." Harmadik.
OUT: <s>Elso.</s><ws> </ws><s>"Masodik."</s><ws> </ws><s>Harmadik.</s>

2/b. Szam-kotojel-nagybetu
IN : Született: január 2. - Budapest.
OUT: <s>Született: január 2. - Budapest.</s>
IN : Született: január 2. – Budapest.
OUT: <s>Született: január 2. – Budapest.</s>


3. Pont után közvetlenül szóalkotó karakter a pontot magát leszámítva. ~~~~~~~~
IN : A WWW.AKARMI.HU.
Expand Down

0 comments on commit 703045f

Please sign in to comment.