11import { nullableAsArray , throwError } from "../../misc/misc.ts" ;
2- import { ArrayResult } from "../compound.ts" ;
2+ import { IterableResult } from "../compound.ts" ;
33import * as TokiPona from "../parser/ast.ts" ;
44import * as English from "./ast.ts" ;
55import { FilteredError , TranslationTodoError } from "./error.ts" ;
@@ -71,7 +71,7 @@ function phraseClause(phrases: TokiPona.MultiplePhrases) {
7171 } ) ;
7272}
7373function liClause ( clause : TokiPona . Clause & { type : "li clause" } ) {
74- return ArrayResult . combine (
74+ return IterableResult . combine (
7575 multiplePhrasesAsNoun ( {
7676 phrases : clause . subjects ,
7777 place : "subject" ,
@@ -134,27 +134,25 @@ function oClause(clause: TokiPona.Clause & { type: "o clause" }) {
134134 includeGerund : true ,
135135 andParticle : "en" ,
136136 } )
137- : new ArrayResult ( [
138- {
139- type : "simple" ,
140- determiner : [ ] ,
141- adjective : [ ] ,
142- noun : noEmphasis ( "you" ) ,
143- quantity : "plural" ,
144- perspective : "second" ,
145- postAdjective : null ,
146- postCompound : null ,
147- preposition : [ ] ,
148- emphasis : false ,
149- } ,
150- ] ) ;
151- return ArrayResult . combine ( subject , predicate ( clause . predicates , "o" ) )
137+ : IterableResult . single ( {
138+ type : "simple" ,
139+ determiner : [ ] ,
140+ adjective : [ ] ,
141+ noun : noEmphasis ( "you" ) ,
142+ quantity : "plural" ,
143+ perspective : "second" ,
144+ postAdjective : null ,
145+ postCompound : null ,
146+ preposition : [ ] ,
147+ emphasis : false ,
148+ } ) ;
149+ return IterableResult . combine ( subject , predicate ( clause . predicates , "o" ) )
152150 . flatMap ( ( [ subject , predicate ] ) => {
153151 const subjectPerspective = perspective ( subject ) ;
154- return ArrayResult . concat (
152+ return IterableResult . concat (
155153 verb ( predicate , subjectPerspective , subject . quantity )
156154 . map ( ( verb ) => iWish ( subject , verb ) ) ,
157- ArrayResult . from ( ( ) =>
155+ IterableResult . from ( ( ) =>
158156 verb (
159157 addModalToAll (
160158 noAdverbs ( noEmphasis ( "should" ) ) ,
@@ -173,7 +171,9 @@ function oClause(clause: TokiPona.Clause & { type: "o clause" }) {
173171 ) ;
174172 } ) ;
175173}
176- export function clause ( clause : TokiPona . Clause ) : ArrayResult < English . Clause > {
174+ export function clause (
175+ clause : TokiPona . Clause ,
176+ ) : IterableResult < English . Clause > {
177177 switch ( clause . type ) {
178178 case "phrases" :
179179 return phraseClause ( clause . phrases ) ;
@@ -200,10 +200,12 @@ export function clause(clause: TokiPona.Clause): ArrayResult<English.Clause> {
200200}
201201export function contextClause (
202202 contextClause : TokiPona . ContextClause ,
203- ) : ArrayResult < ReadonlyArray < English . Clause > > {
203+ ) : IterableResult < ReadonlyArray < English . Clause > > {
204204 switch ( contextClause . type ) {
205205 case "prepositions" :
206- return ArrayResult . combine ( ...contextClause . prepositions . map ( preposition ) )
206+ return IterableResult . combine (
207+ ...contextClause . prepositions . map ( preposition ) ,
208+ )
207209 . map ( ( prepositions ) =>
208210 prepositions . map ( ( preposition ) => ( {
209211 ...preposition ,
@@ -220,12 +222,14 @@ export function contextClause(
220222 emphasis : false ,
221223 } ] ) ;
222224 case "anu" :
223- return ArrayResult . errors ( [
225+ return IterableResult . errors ( [
224226 new TranslationTodoError ( `${ contextClause . type } context clause` ) ,
225227 ] ) ;
226228 default :
227- return ArrayResult . concat < ReadonlyArray < English . Clause > > (
228- new ArrayResult ( nullableAsArray ( unwrapSingleWord ( contextClause ) ) )
229+ return IterableResult . concat < ReadonlyArray < English . Clause > > (
230+ IterableResult . fromArray (
231+ nullableAsArray ( unwrapSingleWord ( contextClause ) ) ,
232+ )
229233 . flatMap ( ( wordUnit ) =>
230234 fromSimpleDefinition (
231235 wordUnit ,
0 commit comments