Skip to content

Commit e2247c1

Browse files
author
Hubert De La Jonquiere
committed
Fix german training
1 parent 01e66d0 commit e2247c1

File tree

2 files changed

+33
-16
lines changed

2 files changed

+33
-16
lines changed

grammar/de/src/rules.rs

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ pub fn rules_time(b: &mut RuleSetBuilder<Dimension>) -> RustlingResult<()> {
541541
|_| helpers::month_day(12, 24)
542542
);
543543
b.rule_1_terminal("three wise men",
544-
b.reg(r#"(?:den )?heiligen? drei k[öo]nigen?"#)?,
544+
b.reg(r#"(?:den )heiligen? drei k[öo]nigen?"#)?,
545545
|_| helpers::month_day(1, 6)
546546
);
547547
b.rule_1_terminal("new year's eve",
@@ -955,11 +955,30 @@ pub fn rules_time(b: &mut RuleSetBuilder<Dimension>) -> RustlingResult<()> {
955955
ordinal_check!(|ordinal: &OrdinalValue| 1 <= ordinal.value && ordinal.value <= 31),
956956
|time, ordinal| time.value().intersect(&helpers::day_of_month(ordinal.value().value as u32)?)
957957
);
958-
// b.rule_2("<named-month> <day-of-month> (non ordinal)",
959-
// time_check!(form!(Form::Month(_))),
960-
// integer_check_by_range!(1, 31),
961-
// |time, integer| time.value().intersect(&helpers::day_of_month(integer.value().value as u32)?)
962-
// );
958+
b.rule_3("<named-month> <day-of-month> (non ordinal) <time>",
959+
time_check!(form!(Form::Month(_))),
960+
integer_check_by_range!(1, 31),
961+
time_check!(),
962+
|month, integer, time| month.value()
963+
.intersect(&helpers::day_of_month(integer.value().value as u32)?)?
964+
.intersect(time.value())
965+
);
966+
b.rule_3("<time> <named-month> <day-of-month> (non ordinal)",
967+
time_check!(),
968+
time_check!(form!(Form::Month(_))),
969+
integer_check_by_range!(1, 31),
970+
|time, month, integer| month.value()
971+
.intersect(&helpers::day_of_month(integer.value().value as u32)?)?
972+
.intersect(time.value())
973+
);
974+
b.rule_3("<day-of-week> <named-month> <day-of-month> (non ordinal)",
975+
time_check!(form!(Form::DayOfWeek{..})),
976+
time_check!(form!(Form::Month(_))),
977+
integer_check_by_range!(1, 31),
978+
|dow, month, integer| month.value()
979+
.intersect(&helpers::day_of_month(integer.value().value as u32)?)?
980+
.intersect(dow.value())
981+
);
963982
b.rule_3("<day-of-month> (non ordinal) of <named-month>",
964983
integer_check_by_range!(1, 31),
965984
b.reg(r#"vom|von|im"#)?,

grammar/de/src/training.rs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,28 +58,26 @@ pub fn examples_time(v: &mut Vec<::rustling::train::Example<Dimension>>) {
5858
example!(v, check_moment!(c, [2013, 2, 11]), "gestern");
5959
example!(v, check_moment!(c, [2013, 2, 13]), "morgen");
6060
example!(v, check_moment!(c, [2013, 2, 18]), "montag", "mo.", "diesen montag");
61-
example!(v, check_moment!(c, [2013, 2, 18]), "Montag, Feb 18", "Montag, Februar 18");
61+
example!(v, check_moment!(c, [2013, 2, 18]), "Montag Feb 18", "Montag Februar 18");
6262
example!(v, check_moment!(c, [2013, 2, 19]), "dienstag");
6363
example!(v, check_moment!(c, [2013, 2, 14]), "donnerstag", "do", "do.");
6464
example!(v, check_moment!(c, [2013, 2, 15]), "freitag", "fr.");
6565
example!(v, check_moment!(c, [2013, 2, 16]), "samstag", "sa.");
6666
example!(v, check_moment!(c, [2013, 2, 17]), "sonntag", "so.");
6767
example!(v, check_moment!(c, [2013, 3, 1]), "1 märz", "erster märz");
68-
example!(v, check_moment!(c, [2013, 3, 3]), "märz 3");
6968
example!(v, check_moment!(c, [2015, 3, 3]), "märz 3 2015");
7069
example!(v, check_moment!(c, [2013, 2, 15]), "am 15ten");
71-
example!(v, check_moment!(c, [2013, 2, 15]), "15. februar", "februar 15", "15te februar", "15.2.", "am 15.2.", "februar 15");
72-
example!(v, check_moment!(c, [2013, 8, 8]), "Aug 8");
70+
example!(v, check_moment!(c, [2013, 2, 15]), "15. februar", "15te februar", "15.2.", "am 15.2.");
7371
example!(v, check_moment!(c, [2014, 10]), "Oktober 2014");
7472
example!(v, check_moment!(c, [1974, 10, 31]), "31.10.1974", "31.10.74");
75-
example!(v, check_moment!(c, [2015, 4, 14]), "14 april 2015", "April 14, 2015", "14te April 15");
73+
example!(v, check_moment!(c, [2015, 4, 14]), "14 april 2015", "April 14 2015", "14te April 15");
7674
example!(v, check_moment!(c, [2013, 2, 19]), "nächsten dienstag");
7775
example!(v, check_moment!(c, [2013, 2, 22]), "übernächsten freitag");
7876
example!(v, check_moment!(c, [2013, 3]), "nächsten marz");
7977
example!(v, check_moment!(c, [2014, 3]), "übernächsten marz");
80-
example!(v, check_moment!(c, [2013, 2, 10]), "Sonntag, Feb 10");
81-
example!(v, check_moment!(c, [2013, 2, 13]), "Mittwoch, Feb 13");
82-
example!(v, check_moment!(c, [2013, 2, 18]), "Montag, Feb 18");
78+
example!(v, check_moment!(c, [2013, 2, 10]), "Sonntag Feb 10");
79+
example!(v, check_moment!(c, [2013, 2, 13]), "Mittwoch Feb 13");
80+
example!(v, check_moment!(c, [2013, 2, 18]), "Montag Feb 18");
8381
example!(v, check_moment!(c, [2013, 2, 11], Grain::Week), "diese woche");
8482
example!(v, check_moment!(c, [2013, 2, 18], Grain::Week), "kommende woche");
8583
example!(v, check_moment!(c, [2013, 2, 4], Grain::Week), "letzte woche");
@@ -194,8 +192,8 @@ pub fn examples_time(v: &mut Vec<::rustling::train::Example<Dimension>>) {
194192
example!(v, check_moment_span!(c, [2013, 3], [2013, 6]), "nächsten 3 monaten", "nächste drei monate", "kommenden drei monaten");
195193
example!(v, check_moment_span!(c, [2011], [2013]), "letzten 2 jahren", "letzten zwei jahre", "vergangenen zwei jahren");
196194
example!(v, check_moment_span!(c, [2014], [2017]), "nächsten 3 jahren", "kommenden drei jahren", "nächste drei jahre");
197-
example!(v, check_moment_span!(c, [2013, 7, 13], [2013, 7, 16]), "13. - 15. Juli", "13ter bis 15ter Juli", "13 bis 15 Juli", "13 - 15 Juli", "Juli 13 - Juli 15");
198-
example!(v, check_moment_span!(c, [2013, 8, 8], [2013, 8, 13]), "Aug 8 - Aug 12");
195+
example!(v, check_moment_span!(c, [2013, 7, 13], [2013, 7, 16]), "13. - 15. Juli", "13ter bis 15ter Juli", "13 bis 15 Juli", "13 - 15 Juli", "13 Juli - 15 Juli");
196+
example!(v, check_moment_span!(c, [2013, 8, 8], [2013, 8, 13]), "8 Aug - 12 Aug");
199197
example!(v, check_moment_span!(c, [2013, 2, 12, 9, 30], [2013, 2, 12, 11, 1]), "9:30 - 11:00");
200198
example!(v, check_moment_span!(c, [2013, 2, 14, 9, 30], [2013, 2, 14, 11, 1]),"am Donnerstag von 9:30 - 11:00", "am Donnerstag zwischen 9:30 und 11:00", "Donnerstag 9:30 - 11:00", "am Donnerstag nach 9:30 aber vor 11:00", "Donnerstag von 9:30 bis 11:00");
201199
example!(v, check_moment_span!(c, [2013, 2, 14, 9], [2013, 2, 14, 12]), "Donnerstag Vormittag von 9 bis 11");

0 commit comments

Comments
 (0)