@@ -78,10 +78,12 @@ function sentence(
7878 case "simple" : {
7979 let startingAdverb : IterableResult < null | English . Word > ;
8080 let startingConjunction : null | English . Word ;
81+ let contextClauses : ReadonlyArray < TokiPona . ContextClause > ;
8182 if ( sentence . startingParticle != null ) {
8283 const { startingParticle } = sentence ;
8384 const emphasis = startingParticle . emphasis != null ;
8485 const reduplicationCount = getReduplicationCount ( startingParticle ) ;
86+ contextClauses = sentence . contextClauses ;
8587 switch ( sentence . startingParticle . word as "taso" | "kin" | "anu" ) {
8688 case "taso" :
8789 startingAdverb = IterableResult . single ( null ) ;
@@ -108,9 +110,22 @@ function sentence(
108110 } ) ;
109111 break ;
110112 }
113+ } else if (
114+ sentence . contextClauses . length > 0 &&
115+ sentence . contextClauses [ 0 ] . type === "anu"
116+ ) {
117+ const anu = sentence . contextClauses [ 0 ] ;
118+ startingAdverb = IterableResult . single ( null ) ;
119+ startingConjunction = word ( {
120+ reduplicationCount : getReduplicationCount ( anu . anu ) ,
121+ emphasis : anu . anu . emphasis != null ,
122+ word : "or" ,
123+ } ) ;
124+ contextClauses = sentence . contextClauses . slice ( 1 ) ;
111125 } else {
112126 startingAdverb = IterableResult . single ( null ) ;
113127 startingConjunction = null ;
128+ contextClauses = sentence . contextClauses ;
114129 }
115130 const useAnuSeme = nullableAsArray ( sentence . anuSeme )
116131 . map ( ( seme ) : English . Clause => ( {
@@ -122,7 +137,7 @@ function sentence(
122137 } ) ,
123138 } ) ) ;
124139 const interjectionClause : IterableResult < English . Clause > =
125- sentence . contextClauses . length === 0 &&
140+ contextClauses . length === 0 &&
126141 sentence . startingParticle == null
127142 ? IterableResult . fromArray (
128143 nullableAsArray ( unwrapSingleWord ( sentence . finalClause ) ) ,
@@ -143,7 +158,7 @@ function sentence(
143158 : IterableResult . empty ( ) ;
144159 const clauses = IterableResult . combine (
145160 startingAdverb ,
146- IterableResult . combine ( ...sentence . contextClauses . map ( contextClause ) )
161+ IterableResult . combine ( ...contextClauses . map ( contextClause ) )
147162 . map ( ( clause ) => clause . flat ( ) ) ,
148163 IterableResult . concat ( interjectionClause , clause ( sentence . finalClause ) ) ,
149164 )
0 commit comments