Skip to content

Commit 1dc894b

Browse files
committed
preposition clause are context only
1 parent 7de7334 commit 1dc894b

File tree

6 files changed

+21
-24
lines changed

6 files changed

+21
-24
lines changed

src/parser/ast.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ export type Clause =
7474
type: "o clause";
7575
subjects: null | MultiplePhrases;
7676
predicates: Predicate;
77-
}>
78-
| Readonly<
79-
{ type: "prepositions"; prepositions: ReadonlyArray<Preposition> }
80-
>;
77+
}>;
8178
export type ContextClause =
8279
| Clause
80+
| Readonly<
81+
{ type: "prepositions"; prepositions: ReadonlyArray<Preposition> }
82+
>
8383
| (Readonly<{ type: "nanpa" }> & Nanpa)
8484
| (Readonly<{ type: "anu"; anu: HeadedWordUnit }>);
8585
export type Sentence =

src/parser/composer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,12 +171,12 @@ export function clause(clause: Clause): string {
171171
multiplePredicates(clause.predicates, "o"),
172172
]
173173
.join(" ");
174-
case "prepositions":
175-
return clause.prepositions.map(preposition).join(" ");
176174
}
177175
}
178176
export function contextClause(contextClause: ContextClause): string {
179177
switch (contextClause.type) {
178+
case "prepositions":
179+
return contextClause.prepositions.map(preposition).join(" ");
180180
case "nanpa":
181181
return nanpa(contextClause);
182182
case "anu":

src/parser/extract.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,14 @@ export function everyWordUnitInClause(clause: Clause): ReadonlyArray<WordUnit> {
9494
.flatMap(everyWordUnitInMultiplePhrases),
9595
...everyWordUnitInMultiplePredicates(clause.predicates),
9696
];
97-
case "prepositions":
98-
return clause.prepositions.flatMap(everyWordUnitInPreposition);
9997
}
10098
}
10199
export function everyWordUnitInContextClause(
102100
contextClause: ContextClause,
103101
): ReadonlyArray<WordUnit> {
104102
switch (contextClause.type) {
103+
case "prepositions":
104+
return contextClause.prepositions.flatMap(everyWordUnitInPreposition);
105105
case "nanpa":
106106
return everyWordUnitInNanpa(contextClause);
107107
case "anu":

src/parser/filter.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,6 @@ export const CLAUSE_RULE: ReadonlyArray<(clause: Clause) => boolean> = [
261261
return true;
262262
}
263263
break;
264-
case "prepositions":
265-
return true;
266264
}
267265
if (
268266
everyPhraseInMultiplePhrases(phrases).some(hasPrepositionInPhrase)

src/parser/parser.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -559,18 +559,6 @@ const clause = choice<Clause>(
559559
predicates,
560560
explicitLi: false,
561561
})),
562-
sequence(
563-
preposition,
564-
many(optionalComma.with(preposition)),
565-
)
566-
.map(
567-
([preposition, morePreposition]) => [preposition, ...morePreposition],
568-
)
569-
.sortBy((prepositions) => -prepositions.length)
570-
.map((prepositions) => ({
571-
type: "prepositions",
572-
prepositions,
573-
})),
574562
subjectPhrases
575563
.map((phrases) => ({ type: "phrases", phrases })),
576564
subjectPhrases
@@ -605,6 +593,18 @@ const clause = choice<Clause>(
605593
)
606594
.filter(filter(CLAUSE_RULE));
607595
const contextClause = choice<ContextClause>(
596+
sequence(
597+
preposition,
598+
many(optionalComma.with(preposition)),
599+
)
600+
.map(
601+
([preposition, morePreposition]) => [preposition, ...morePreposition],
602+
)
603+
.sortBy((prepositions) => -prepositions.length)
604+
.map((prepositions) => ({
605+
type: "prepositions",
606+
prepositions,
607+
})),
608608
nanpa.map((nanpa) => ({ ...nanpa, type: "nanpa" })),
609609
wordUnit(new Set(["anu"]), '"anu"').map((anu) => ({ type: "anu", anu })),
610610
clause,

src/translator/clause.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,14 +200,13 @@ export function clause(clause: TokiPona.Clause): ArrayResult<English.Clause> {
200200
return liClause(clause);
201201
case "o clause":
202202
return oClause(clause);
203-
case "prepositions":
204-
return new ArrayResult(new TranslationTodoError(clause.type));
205203
}
206204
}
207205
export function contextClause(
208206
contextClause: TokiPona.ContextClause,
209207
): ArrayResult<English.Clause> {
210208
switch (contextClause.type) {
209+
case "prepositions":
211210
case "nanpa":
212211
case "anu":
213212
return new ArrayResult(

0 commit comments

Comments
 (0)