source: project/release/4/jbogenturfahi/trunk/gerna.peg

Last change on this file was 27406, checked in by alanpost, 3 years ago

jbogenturfa'i: add code for statement terminal in grammar.

split out statement, statement-prenex, fill in arguments for each.

File size: 54.4 KB
Line 
1text <- intro-null
2        NAI-clause*
3        text-part-2
4        ( !text-1 joik-jek )?
5        text-1?
6        faho-clause
7        EOF?
8     -> text
9
10intro-null <- `spaces?
11              su-clause*
12              intro-si-clause
13           -> intro-null
14
15text-part-2 <- ( CMENE-clause+ / indicators? )
16               free*
17            -> text-part-2
18
19intro-si-clause <- si-clause? SI-clause*
20                -> intro-si-clause
21
22faho-clause <- ( FAhO-clause `.* )?
23            -> faho-clause
24
25; Please note that the "text-1" item in the text-1 production does
26; *not* match the BNF. This is due to a bug in the BNF.  The change
27; here was made to match grammar.300
28text-1 <- I-clause
29          ( jek / joik )?
30          ( stag? BO-clause )?
31          free*
32          text-1?
33       -> text-1-I
34        / NIhO-clause+
35          free*
36          su-clause*
37          paragraphs?
38       -> text-1-NIhO
39        / paragraphs
40       -> text-1-paragraphs
41
42paragraphs <- paragraph
43              ( NIhO-clause+ free* su-clause* paragraphs )?
44           -> paragraphs
45
46paragraph <- ( statement
47             / fragment )
48             ( I-clause
49               !jek
50               !joik
51               !joik-jek
52               free*
53               ( statement / fragment )? )*
54          -> paragraph
55
56statement <- statement-1
57          -> statement
58           / prenex statement
59          -> statement-prenex
60
61statement-1 <- statement-2 ( I-clause joik-jek statement-2? )*
62            -> statement-1
63
64statement-2 <- statement-3
65               ( I-clause ( jek / joik )? stag? BO-clause free* statement-2? )?
66            -> statement-2
67
68statement-3 <- sentence
69            -> statement-3
70             / tag? TUhE-clause free* text-1 TUhU-clause? free*
71            -> statement-3-TUhE
72
73fragment <- prenex
74         -> fragment-prenex
75          / terms VAU-clause? free*
76         -> fragment-terms
77          / ek free*
78         -> fragment-ek
79          / gihek free*
80         -> fragment-gihek
81          / quantifier
82         -> fragment-quantifier
83          / NA-clause !JA-clause free*
84         -> fragment-NA
85          / relative-clauses
86         -> fragment-relative-clauses
87          / links
88         -> fragment-links
89          / linkargs
90         -> fragment-linkargs
91
92prenex <- terms ZOhU-clause free*
93       -> prenex
94
95sentence <- ( terms bridi-tail-sa* CU-clause? free* )?
96            bridi-tail-sa*
97            bridi-tail
98         -> sentence
99
100sentence-sa <- sentence-start
101               ( !sentence-start ( sa-word / SA-clause !sentence-start ) )*
102               SA-clause
103               &text-1
104            -> sentence-sa
105
106sentence-start <- I-pre
107               -> sentence-start-I
108                / NIhO-pre
109               -> sentence-start-NIhO
110
111subsentence <- sentence
112            -> subsentence
113             / prenex subsentence
114            -> subsentence-prenex
115
116bridi-tail <- bridi-tail-1
117              ( gihek
118                stag?
119                KE-clause
120                free*
121                bridi-tail
122                KEhE-clause?
123                free*
124                tail-terms )?
125           -> bridi-tail
126
127bridi-tail-sa <- bridi-tail-start
128                 ( term
129                 / !bridi-tail-start
130                   ( sa-word
131                   / SA-clause
132                     !bridi-tail-start ) )*
133                 SA-clause
134                 &bridi-tail
135              -> bridi-tail-sa
136
137bridi-tail-start <- ME-clause
138                 -> bridi-tail-start-ME
139                  / NUhA-clause
140                 -> bridi-tail-start-NUhA
141                  / NU-clause
142                 -> bridi-tail-start-NU
143                  / NA-clause !KU-clause
144                 -> bridi-tail-start-NA
145                  / NAhE-clause !BO-clause
146                 -> bridi-tail-start-NAhE
147                  / selbri
148                 -> bridi-tail-start-selbri
149                  / tag bridi-tail-start
150                 -> bridi-tail-start-tag
151                  / KE-clause bridi-tail-start
152                 -> bridi-tail-start-KE
153                  / bridi-tail
154                 -> bridi-tail-start
155
156bridi-tail-1 <- bridi-tail-2
157                ( gihek
158                  !( stag? BO-clause )
159                  !( stag? KE-clause )
160                  free*
161                  bridi-tail-2
162                  tail-terms )*
163             -> bridi-tail-1
164
165bridi-tail-2 <- bridi-tail-3
166                ( gihek
167                  stag?
168                  BO-clause
169                  free*
170                  bridi-tail-2
171                  tail-terms )?
172             -> bridi-tail-2
173
174bridi-tail-3 <- selbri tail-terms
175             -> bridi-tail-3-selbri
176              / gek-sentence
177             -> bridi-tail-3-gek
178
179gek-sentence <- gek
180                subsentence
181                gik
182                subsentence
183                tail-terms
184             -> gek-sentence
185              / tag?
186                KE-clause
187                free*
188                gek-sentence
189                KEhE-clause?
190                free*
191             -> gek-sentence-KE
192              / NA-clause
193                free*
194                gek-sentence
195             -> gek-sentence-NA
196
197tail-terms <- terms? VAU-clause? free*
198           -> tail-terms
199
200terms <- terms-1+
201      -> terms
202
203terms-1 <- terms-2 ( pehe-sa* PEhE-clause free* joik-jek terms-2 )*
204        -> terms-1
205
206terms-2 <- term ( cehe-sa* CEhE-clause free* term )*
207        -> terms-2
208
209pehe-sa <- PEhE-clause
210           ( !PEhE-clause
211             ( sa-word
212             / SA-clause !PEhE-clause ) )*
213           SA-clause
214        -> pehe-sa
215
216cehe-sa <- CEhE-clause
217           ( !CEhE-clause
218             ( sa-word
219             / SA-clause !CEhE-clause ) )*
220           SA-clause
221        -> cehe-sa
222
223term <- term-sa* term-1
224     -> term
225
226term-1 <- sumti
227       -> term-1-sumti
228        / !gek
229          ( tag              -> term-1-FA-tag
230          / FA-clause free*  -> term-1-FA-clause )
231          ( sumti            -> term-1-FA-sumti
232          / KU-clause? free* -> term-1-FA-KU )
233       -> term-1-FA
234        / termset
235       -> term-1-termset
236        / NA-clause
237          KU-clause
238          free*
239       -> term-1-NA
240
241term-sa <- term-start
242           ( !term-start
243             ( sa-word / SA-clause !term-start ) )*
244           SA-clause
245           &term-1
246        -> term-sa
247
248term-start <- term-1
249           -> term-start
250            / LA-clause
251           -> term-start-LA
252            / LE-clause
253           -> term-start-LE
254            / LI-clause
255           -> term-start-LI
256            / LU-clause
257           -> term-start-LU
258            / LAhE-clause
259           -> term-start-LAhE
260            / quantifier term-start
261           -> term-start-quantifier
262            / gek sumti gik
263           -> term-start-gek
264            / FA-clause
265           -> term-start-FA
266            / tag term-start
267           -> term-start-tag
268
269termset <- gek-termset
270        -> termset
271         / NUhI-clause
272           free*
273           gek
274           terms
275           NUhU-clause?
276           free*
277           gik
278           terms
279           NUhU-clause?
280           free*
281        -> termset-gek
282         / NUhI-clause
283           free*
284           terms
285           NUhU-clause?
286           free*
287        -> termset-terms
288
289gek-termset <- gek terms-gik-terms
290            -> gek-termset
291
292terms-gik-terms <- term ( gik / terms-gik-terms ) term
293                -> terms-gik-terms
294
295sumti <- sumti-1 ( VUhO-clause free* relative-clauses )?
296      -> sumti
297
298sumti-1 <- sumti-2 ( joik-ek stag? KE-clause free* sumti KEhE-clause? free* )?
299        -> sumti-1
300
301sumti-2 <- sumti-3 ( joik-ek sumti-3 )*
302        -> sumti-2
303
304sumti-3 <- sumti-4 ( joik-ek stag? BO-clause free* sumti-3 )?
305        -> sumti-3
306
307sumti-4 <- sumti-5
308        -> sumti-4
309         / gek sumti gik sumti-4
310        -> sumti-4-gek
311
312sumti-5 <- quantifier? sumti-6 relative-clauses?
313        -> sumti-5
314         / quantifier selbri KU-clause? free* relative-clauses?
315        -> sumti-5-selbri
316
317sumti-6 <- ZO-clause free*
318        -> sumti-6-ZO
319         / ZOI-clause free*
320        -> sumti-6-ZOI
321         / LOhU-clause free*
322        -> sumti-6-LOhU
323         / lerfu-string !MOI-clause BOI-clause? free*
324        -> sumti-6-BOI
325         / LU-clause text LIhU-clause? free*
326        -> sumti-6-LU
327         / ( LAhE-clause free*           -> sumti-6-LAhE-clause
328           / NAhE-clause BO-clause free* -> sumti-6-LAhE-NAhE )
329           relative-clauses?
330           sumti
331           LUhU-clause?
332           free*
333        -> sumti-6-LAhE
334         / KOhA-clause free*
335        -> sumti-6-KOhA
336         / LA-clause free* relative-clauses? CMENE-clause+ free*
337        -> sumti-6-LA
338         / ( LA-clause / LE-clause ) free* sumti-tail KU-clause? free*
339        -> sumti-6-LE
340         / LI-clause free* mex LOhO-clause? free*
341        -> sumti-6-LI
342
343sumti-tail <- ( sumti-6 relative-clauses? )? sumti-tail-1
344           -> sumti-tail-sumti-6
345            / relative-clauses sumti-tail-1
346           -> sumti-tail
347
348sumti-tail-1 <- quantifier? selbri relative-clauses?
349             -> sumti-tail-1-selbri
350              / quantifier sumti
351             -> sumti-tail-1-sumti
352
353relative-clauses <- relative-clause ( ZIhE-clause free* relative-clause )*
354                 -> relative-clauses
355
356relative-clause <- relative-clause-sa* relative-clause-1
357                -> relative-clause
358
359relative-clause-sa <- relative-clause-start
360                      ( !relative-clause-start
361                        ( sa-word / SA-clause !relative-clause-start ) )*
362                      SA-clause
363                      &relative-clause-1
364                   -> relative-clause-sa
365
366relative-clause-1 <- GOI-clause free* term GEhU-clause? free*
367                  -> relative-clause-1-GOI
368                   / NOI-clause free* subsentence KUhO-clause? free*
369                  -> relative-clause-1-NOI
370
371relative-clause-start <- GOI-clause
372                      -> relative-clause-start
373                       / NOI-clause
374                      -> relative-clause-start
375
376selbri <- tag? selbri-1
377       -> selbri
378
379selbri-1 <- selbri-2
380         -> selbri-1
381          / NA-clause free* selbri
382         -> selbri-1-NA
383
384selbri-2 <- selbri-3 ( CO-clause free* selbri-2 )?
385         -> selbri-2
386
387selbri-3 <- selbri-4+
388         -> selbri-3
389
390selbri-4 <- selbri-5
391            ( joik-jek
392              selbri-5     -> selbri-4-joik-jek
393            / joik
394              stag?
395              KE-clause
396              free*
397              selbri-3
398              KEhE-clause?
399              free*        -> selbri-4-joik )*
400         -> selbri-4
401
402selbri-5 <- selbri-6
403            ( ( jek / joik ) stag? BO-clause free* selbri-5 )?
404         -> selbri-5
405
406selbri-6 <- tanru-unit
407            ( BO-clause free* selbri-6 )?
408         -> selbri-6
409          / NAhE-clause? free* guhek selbri gik selbri-6
410         -> selbri-6-NAhE
411
412
413tanru-unit <- tanru-unit-1 ( CEI-clause free* tanru-unit-1 )*
414           -> tanru-unit
415
416tanru-unit-1 <- tanru-unit-2 linkargs?
417             -> tanru-unit-1
418
419; ** zei is part of BRIVLA-clause
420tanru-unit-2 <- BRIVLA-clause
421                free*
422             -> tanru-unit-2-BRIVLA
423              / GOhA-clause
424                RAhO-clause?
425                free*
426             -> tanru-unit-2-GOhA
427              / KE-clause
428                free*
429                selbri-3
430                KEhE-clause?
431                free*
432             -> tanru-unit-2-KE
433              / ME-clause
434                free*
435                ( sumti / lerfu-string )
436                MEhU-clause?
437                free*
438                MOI-clause?
439                free*
440             -> tanru-unit-2-ME
441              / ( number / lerfu-string )
442                MOI-clause
443                free*
444             -> tanru-unit-2-MOI
445              / NUhA-clause
446                free*
447                mex-operator
448             -> tanru-unit-2-NUhA
449              / SE-clause
450                free*
451                tanru-unit-2
452             -> tanru-unit-2-SE
453              / JAI-clause
454                free*
455                tag?
456                tanru-unit-2
457             -> tanru-unit-2-JAI
458              / NAhE-clause
459                free*
460                tanru-unit-2
461             -> tanru-unit-2-NAhE
462              / NU-clause
463                NAI-clause?
464                free*
465                ( joik-jek NU-clause NAI-clause? free* )*
466                subsentence
467                KEI-clause?
468                free*
469             -> tanru-unit-2-NU
470
471linkargs <- linkargs-sa* linkargs-1
472         -> linkargs
473
474linkargs-1 <- BE-clause free* term links? BEhO-clause? free*
475           -> linkargs-1
476
477linkargs-sa <- linkargs-start
478               ( !linkargs-start ( sa-word / SA-clause !linkargs-start ) )*
479               SA-clause
480               &linkargs-1
481            -> linkargs-sa
482
483linkargs-start <- BE-clause
484               -> linkargs-start
485
486links <- links-sa* links-1
487      -> links
488
489links-sa <- links-start
490            ( !links-start ( sa-word / SA-clause !links-start ) )*
491            SA-clause
492            &links-1
493         -> links-sa
494
495links-1 <- BEI-clause free* term links?
496        -> links-1
497
498links-start <- BEI-clause
499            -> links-start
500
501quantifier <- number
502              !MOI-clause
503              BOI-clause?
504              free*
505           -> quantifier-BOI
506            / VEI-clause
507              free*
508              mex
509              VEhO-clause?
510              free*
511           -> quantifier-VEI
512
513mex <- mex-sa* mex-0
514    -> mex
515
516mex-sa <- mex-start
517          ( !mex-start ( sa-word / SA-clause !mex-start ) )*
518          SA-clause
519          &mex-0
520       -> mex-sa
521
522mex-0 <- mex-1 ( operator mex-1 )*
523      -> mex-0
524       / rp-clause
525      -> mex-0-rp
526
527mex-start <- FUhA-clause
528          -> mex-start-FUhA
529           / PEhO-clause
530          -> mex-start-PEhO
531           / operand-start
532          -> mex-start
533
534rp-clause <- FUhA-clause free* rp-expression
535          -> rp-clause
536
537mex-1 <- mex-2 ( BIhE-clause free* operator mex-1 )?
538      -> mex-1
539
540mex-2 <- operand
541      -> mex-2
542       / mex-forethought
543      -> mex-2
544
545
546; This is just to make for clearer parse trees
547mex-forethought <- PEhO-clause?
548                   free*
549                   operator
550                   fore-operands
551                   KUhE-clause?
552                   free*
553                -> mex-forethought
554
555fore-operands <- mex-2+
556              -> fore-operands
557
558;li fu'a reboi ci pi'i voboi mu pi'i su'i reboi ci vu'u su'i du li rexa
559;rp-expression <- rp-operand rp-operand operator
560;rp-operand <- operand / rp-expression
561; AKA (almost; this one allows a single operand; above does not.
562;rp-expression <- rp-expression rp-expression operator / operand
563
564; Right recursive version.
565rp-expression <- operand rp-expression-tail
566              -> rp-expression
567rp-expression-tail <- ( rp-expression operator rp-expression-tail )?
568                   -> rp-expression-tail
569
570operator <- operator-sa*
571            operator-0
572         -> operator
573
574operator-sa <- operator-start
575               ( !operator-start
576                 ( sa-word / SA-clause !operator-start ) )*
577               SA-clause
578               &operator-0
579            -> operator-sa
580
581operator-0 <- operator-1
582              ( joik-jek
583                operator-1   -> operator-0-joik-jek
584              / joik
585                stag?
586                KE-clause
587                free*
588                operator
589                KEhE-clause?
590                free*        -> operator-0-joik )*
591           -> operator-0
592
593operator-start <- guhek
594               -> operator-start
595                / KE-clause
596               -> operator-start-KE
597                / SE-clause? NAhE-clause
598               -> operator-start-NAhE
599                / SE-clause? MAhO-clause
600               -> operator-start-MAhO
601                / SE-clause? VUhU-clause
602               -> operator-start-VUhU
603
604operator-1 <- operator-2
605           -> operator-1
606            / guhek operator-1 gik operator-2
607           -> operator-gukek
608            / operator-2 ( jek / joik ) stag? BO-clause free* operator-1
609           -> operator-jek
610
611operator-2 <- mex-operator
612           -> operator-2
613            / KE-clause free* operator KEhE-clause? free*
614           -> operator-2-KE
615
616mex-operator <- SE-clause
617                free*
618                mex-operator
619             -> mex-operator
620              / NAhE-clause free* mex-operator
621             -> mex-operator-NAhE
622              / MAhO-clause free* mex TEhU-clause? free*
623             -> mex-operator-MAhO
624              / NAhU-clause free* selbri TEhU-clause? free*
625             -> mex-operator-NAhU
626              / VUhU-clause free*
627             -> mex-operator-VUhU
628
629operand <- operand-sa* operand-0
630        -> operand
631
632operand-0 <- operand-1
633             ( joik-ek stag? KE-clause free* operand KEhE-clause? free* )?
634          -> operand-0
635
636operand-sa <- operand-start
637              ( !operand-start ( sa-word / SA-clause !operand-start ) )*
638              SA-clause &operand-0
639           -> operand-sa
640
641operand-start <- quantifier
642              -> operand-start-quantifier
643               / lerfu-word
644              -> operand-start-lerfu-word
645               / NIhE-clause
646              -> operand-start-NIhE
647               / MOhE-clause
648              -> operand-start-MOhE
649               / JOhI-clause
650              -> operand-start-JOhI
651               / gek
652              -> operand-start-gek
653               / LAhE-clause
654              -> operand-start-LAhE
655               / NAhE-clause
656              -> operand-start-NAhE
657
658operand-1 <- operand-2 ( joik-ek operand-2 )*
659          -> operand-1
660
661operand-2 <- operand-3 ( joik-ek stag? BO-clause free* operand-2 )?
662          -> operand-2
663
664operand-3 <- quantifier
665          -> operand-3
666           / lerfu-string !MOI-clause BOI-clause? free*
667          -> operand-3-BOI
668           / NIhE-clause free* selbri TEhU-clause? free*
669          -> operand-3-NIhE
670           / MOhE-clause free* sumti TEhU-clause? free*
671          -> operand-3-MOhE
672           / JOhI-clause free* mex-2+ TEhU-clause? free*
673          -> operand-3-JOhI
674           / gek operand gik operand-3
675          -> operand-3-gek
676           / LAhE-clause free* operand LUhU-clause? free*
677          -> operand-3-LAhE
678           / NAhE-clause BO-clause free* operand LUhU-clause? free*
679          -> operand-3-NAhE
680
681number <- PA-clause ( PA-clause / lerfu-word )*
682       -> number
683
684lerfu-string <- lerfu-word ( PA-clause / lerfu-word )*
685             -> lerfu-string
686
687; ** BU clauses are part of BY-clause
688lerfu-word <- BY-clause
689           -> lerfu-word-BY
690            / LAU-clause lerfu-word
691           -> lerfu-word-LAU
692            / TEI-clause lerfu-string FOI-clause
693           -> lerfu-word-TEI
694
695ek <- NA-clause? SE-clause? A-clause NAI-clause?
696   -> ek
697
698gihek <- gihek-sa* gihek-1
699      -> gihek
700
701gihek-sa <- gihek-1
702            ( !gihek-1 ( sa-word / SA-clause !gihek-1 ) )*
703            SA-clause
704            &gihek
705         -> gihek-sa
706
707gihek-1 <- NA-clause? SE-clause? GIhA-clause NAI-clause?
708        -> gihek-1
709
710jek <- NA-clause? SE-clause? JA-clause NAI-clause?
711    -> jek
712
713joik <- SE-clause? JOI-clause NAI-clause?
714     -> joik-JOI
715      / interval
716     -> joik-interval
717      / GAhO-clause interval GAhO-clause
718     -> joik-GAhO
719
720interval <- SE-clause? BIhI-clause NAI-clause?
721         -> interval
722
723joik-ek <- joik-ek-sa* joik-ek-1
724        -> joik-ek
725
726joik-ek-sa <- joik-ek-1
727              ( !joik-ek-1 ( sa-word / SA-clause !joik-ek-1 ) )*
728              SA-clause
729              &joik-ek
730           -> joik-ek-sa
731
732joik-ek-1 <- joik free*
733          -> joik-ek-1-joik
734           / ek free*
735          -> joik-ek-1-ek
736
737joik-jek <- joik free*
738         -> joik-jek
739          / jek free*
740         -> joik-jek
741
742gek <- SE-clause? GA-clause NAI-clause? free*
743    -> gek-GA
744     / joik GI-clause free*
745    -> gek-GI
746     / stag gik
747    -> gek-gik
748
749guhek <- SE-clause? GUhA-clause NAI-clause? free*
750      -> guhek
751
752gik <- GI-clause NAI-clause? free*
753    -> gik
754
755tag <- tense-modal ( joik-jek tense-modal )*
756    -> tag
757
758stag <- simple-tense-modal ( ( jek / joik ) simple-tense-modal )*
759     -> stag-simple-tense
760      / tense-modal ( joik-jek tense-modal )*
761     -> stag-tense
762
763tense-modal <- simple-tense-modal free*
764            -> tense-modal-simple-tense
765             / FIhO-clause free* selbri FEhU-clause? free*
766            -> tense-modal-FIhO
767
768simple-tense-modal <- NAhE-clause?
769                      SE-clause?
770                      BAI-clause
771                      NAI-clause?
772                      KI-clause?
773                   -> simple-tense-modal-BAI
774                    / NAhE-clause?
775                      ( ( time space? / space time? ) CAhA-clause
776                     -> simple-tense-modal-time-space-CAhA
777                      / ( time space? / space time? )
778                     -> simple-tense-modal-time-space
779                      / CAhA-clause
780                     -> simple-tense-modal-CAhA )
781                      KI-clause?
782                   -> simple-tense-modal
783                    / KI-clause
784                   -> simple-tense-modal-KI
785                    / CUhE-clause
786                   -> simple-tense-modal-CUhE
787
788time <- ZI-clause
789        time-offset*
790        ( ZEhA-clause ( PU-clause NAI-clause? )? )?
791        interval-property*
792     -> time-ZI
793      / ZI-clause?
794        time-offset+
795        ( ZEhA-clause ( PU-clause NAI-clause? )? )?
796        interval-property*
797     -> time-ZI
798      / ZI-clause?
799        time-offset*
800        ZEhA-clause
801        ( PU-clause NAI-clause? )?
802        interval-property*
803     -> time-ZI
804      / ZI-clause?
805        time-offset*
806        ( ZEhA-clause ( PU-clause NAI-clause? )? )?
807        interval-property+
808     -> time-ZI
809
810time-offset <- PU-clause NAI-clause? ZI-clause?
811            -> time-offset
812
813space <- VA-clause
814         space-offset*
815         space-interval?
816         ( MOhI-clause space-offset )?
817      -> space
818       / VA-clause?
819         space-offset+
820         space-interval?
821         ( MOhI-clause space-offset )?
822      -> space
823       / VA-clause?
824         space-offset*
825         space-interval
826         ( MOhI-clause space-offset )?
827      -> space
828       / VA-clause?
829         space-offset*
830         space-interval?
831         MOhI-clause
832         space-offset
833      -> space
834
835space-offset <- FAhA-clause
836                NAI-clause?
837                VA-clause?
838             -> space-offset
839
840space-interval <- ( VEhA-clause VIhA-clause? -> space-interval-VEhA
841                  / VIhA-clause              -> space-interval-VIhA )
842                  ( FAhA-clause NAI-clause? )?
843                  space-int-props?
844               -> space-interval-VEhA-VIhA
845                / space-int-props
846               -> space-interval
847
848space-int-props <- ( FEhE-clause interval-property )+
849                -> space-int-props
850
851interval-property <- number ROI-clause NAI-clause?
852                  -> interval-property
853                   / TAhE-clause NAI-clause?
854                  -> interval-property-TAhE
855                   / ZAhO-clause NAI-clause?
856                  -> interval-property-ZAhO
857
858free <- SEI-clause
859        free*
860        ( terms CU-clause? free* )?
861        selbri
862        SEhU-clause?
863     -> free-SEI
864      / SOI-clause
865        free*
866        sumti
867        sumti?
868        SEhU-clause?
869     -> free-SOI
870      / vocative
871        relative-clauses?
872        selbri
873        relative-clauses?
874        DOhU-clause?
875     -> free-vocative-selbri
876      / vocative
877        relative-clauses?
878        CMENE-clause+
879        free*
880        relative-clauses?
881        DOhU-clause?
882     -> free-vocative-cmene
883      / vocative
884        sumti?
885        DOhU-clause?
886     -> free-vocative-sumti
887      / ( number / lerfu-string ) MAI-clause
888     -> free-MAI
889      / TO-clause
890        text
891        TOI-clause?
892     -> free-TO
893      / xi-clause
894
895xi-clause <- XI-clause free* ( number / lerfu-string ) BOI-clause?
896          -> xi-clause-BOI
897           / XI-clause free* VEI-clause free* mex VEhO-clause?
898          -> xi-clause-VEI
899
900vocative <- ( COI-clause NAI-clause? )* DOI-clause
901         -> vocative
902          / ( COI-clause NAI-clause? )+
903         -> vocative
904
905indicators <- FUhE-clause? indicator+
906           -> indicators
907
908indicator <- ( ( UI-clause / CAI-clause ) NAI-clause?
909             / DAhO-clause
910             / FUhO-clause )
911             !BU-clause
912          -> indicator
913
914
915; ****************
916; Magic Words
917; ****************
918
919zei-clause <- pre-clause zei-clause-no-pre
920           -> zei-clause
921zei-clause-no-pre <- pre-zei-bu ( zei-tail? bu-tail )* zei-tail post-clause
922                  -> zei-clause-no-pre
923
924bu-clause <- pre-clause bu-clause-no-pre
925          -> bu-clause
926
927bu-clause-no-pre <- pre-zei-bu ( bu-tail? zei-tail )* bu-tail post-clause
928                 -> bu-clause-no-pre
929
930zei-tail <- ( ZEI-clause any-word `spaces? )+
931         -> zei-tail
932bu-tail <- BU-clause+
933        -> bu-tail
934
935pre-zei-bu <- ( !SI-clause
936                !SA-clause
937                !FAhO-clause
938                any-word-SA )
939              si-clause?
940           -> pre-zei-bu
941
942; -- General Morphology Issues
943;
944; 1.  Spaces (including '.y') and UI are eaten *after* a word.
945;
946; 3.  BAhE is eaten *before* a word.
947
948; Handling of what can go after a cmavo
949post-clause <- si-clause? !ZEI-clause !BU-clause indicators*
950            -> post-clause
951
952pre-clause <- BAhE-clause?
953           -> pre-clause
954
955any-word-SA <- BRIVLA-pre
956             / A-pre
957             / BAI-pre
958             / BAhE-pre
959             / BE-pre
960             / BEI-pre
961             / BEhO-pre
962             / BIhE-pre
963             / BIhI-pre
964             / BO-pre
965             / BOI-pre
966             / BU-clause
967             / BY-pre
968             / CAI-pre
969             / CAhA-pre
970             / CEI-pre
971             / CEhE-pre
972             / CO-pre
973             / COI-pre
974             / CU-pre
975             / CUhE-pre
976             / DAhO-pre
977             / DOI-pre
978             / DOhU-pre
979             / FA-pre
980             / FAhA-pre
981             / FEhE-pre
982             / FEhU-pre
983             / FIhO-pre
984             / FOI-pre
985             / FUhA-pre
986             / FUhE-pre
987             / FUhO-pre
988             / GA-pre
989             / GAhO-pre
990             / GEhU-pre
991             / GI-pre
992             / GIhA-pre
993             / GOI-pre
994             / GOhA-pre
995             / GUhA-pre
996             / I-pre
997             / JA-pre
998             / JAI-pre
999             / JOI-pre
1000             / JOhI-pre
1001             / KE-pre
1002             / KEI-pre
1003             / KEhE-pre
1004             / KI-pre
1005             / KOhA-pre
1006             / KU-pre
1007             / KUhE-pre
1008             / KUhO-pre
1009             / LA-pre
1010             / LAU-pre
1011             / LAhE-pre
1012             / LE-pre
1013             / LEhU-pre
1014             / LI-pre
1015             / LIhU-pre
1016             / LOhO-pre
1017             / LOhU-pre
1018            -> any-word-SA-LOhU
1019             / LU-pre
1020             / LUhU-pre
1021             / MAI-pre
1022             / MAhO-pre
1023             / ME-pre
1024             / MEhU-pre
1025             / MOI-pre
1026             / MOhE-pre
1027             / MOhI-pre
1028             / NA-pre
1029             / NAI-pre
1030             / NAhE-pre
1031             / NAhU-pre
1032             / NIhE-pre
1033             / NIhO-pre
1034             / NOI-pre
1035             / NU-pre
1036             / NUhA-pre
1037             / NUhI-pre
1038             / NUhU-pre
1039             / PA-pre
1040             / PEhE-pre
1041             / PEhO-pre
1042             / PU-pre
1043             / RAhO-pre
1044             / ROI-pre
1045             / SA-pre
1046             / SE-pre
1047             / SEI-pre
1048             / SEhU-pre
1049             / SI-clause
1050             / SOI-pre
1051             / SU-pre
1052             / TAhE-pre
1053             / TEI-pre
1054             / TEhU-pre
1055             / TO-pre
1056             / TOI-pre
1057             / TUhE-pre
1058             / TUhU-pre
1059             / UI-pre
1060             / VA-pre
1061             / VAU-pre
1062             / VEI-pre
1063             / VEhA-pre
1064             / VEhO-pre
1065             / VIhA-pre
1066             / VUhO-pre
1067             / VUhU-pre
1068             / XI-pre
1069             / ZAhO-pre
1070             / ZEI-pre
1071             / ZEhA-pre
1072             / ZI-pre
1073             / ZIhE-pre
1074             / ZO-pre
1075            -> any-word-SA-ZO
1076             / ZOI-pre
1077            -> any-word-SA-ZOI
1078             / ZOhU-pre
1079             / CMAVO-clause
1080             / CMENE-pre
1081
1082
1083; SU clauses
1084su-clause <- ( erasable-clause / su-word )* SU-clause
1085          -> su-clause
1086
1087; Handling of SI and interactions with zo and lo'u...le'u
1088
1089si-clause <- ( ( erasable-clause / si-word / SA-clause )
1090               si-clause?
1091               SI-clause )+
1092          -> si-clause
1093
1094erasable-clause <- bu-clause-no-pre
1095                   !ZEI-clause
1096                   !BU-clause
1097                -> erasable-clause-bu
1098                 / zei-clause-no-pre
1099                   !ZEI-clause
1100                   !BU-clause
1101                -> erasable-clause-zei
1102
1103sa-word <- pre-zei-bu
1104        -> sa-word
1105
1106si-word <- pre-zei-bu
1107        -> si-word
1108
1109su-word <- !NIhO-clause
1110           !LU-clause
1111           !TUhE-clause
1112           !TO-clause
1113           !SU-clause
1114           !FAhO-clause
1115           any-word-SA
1116        -> su-word
1117
1118BRIVLA-clause <- BRIVLA-pre BRIVLA-post
1119              -> BRIVLA-clause
1120               / zei-clause
1121              -> BRIVLA-clause-zei
1122BRIVLA-pre    <- pre-clause BRIVLA `spaces?
1123              -> BRIVLA-pre
1124BRIVLA-post   <- post-clause
1125              -> BRIVLA-post
1126
1127CMENE-clause <- CMENE-pre CMENE-post
1128             -> CMENE-clause
1129CMENE-pre    <- pre-clause CMENE `spaces?
1130             -> CMENE-pre
1131CMENE-post   <- post-clause
1132             -> CMENE-post
1133
1134CMAVO-clause <- pre-clause CMAVO `spaces?
1135             -> CMAVO-clause
1136
1137;         eks; basic afterthought logical connectives
1138A-clause    <- A-pre A-post
1139            -> A-clause
1140A-pre       <- pre-clause A `spaces?
1141            -> A-pre
1142A-post      <- post-clause
1143            -> A-post
1144
1145;         modal operators
1146BAI-clause  <- BAI-pre BAI-post
1147            -> BAI-clause
1148BAI-pre     <- pre-clause BAI `spaces?
1149            -> BAI-pre
1150BAI-post    <- post-clause
1151            -> BAI-post
1152
1153;         next word intensifier
1154BAhE-clause <- ( BAhE-pre BAhE-post )+
1155            -> BAhE-clause
1156BAhE-pre    <- BAhE `spaces?
1157            -> BAhE-pre
1158BAhE-post   <- si-clause? !ZEI-clause !BU-clause
1159            -> BAhE-post
1160
1161;         sumti link to attach sumti to a selbri
1162BE-clause   <- BE-pre BE-post
1163            -> BE-clause
1164BE-pre      <- pre-clause BE `spaces?
1165            -> BE-pre
1166BE-post     <- post-clause
1167            -> BE-post
1168
1169;         multiple sumti separator between BE, BEI
1170BEI-clause  <- BEI-pre BEI-post
1171            -> BEI-clause
1172BEI-pre     <- pre-clause BEI `spaces?
1173            -> BEI-pre
1174BEI-post    <- post-clause
1175            -> BEI-post
1176
1177;         terminates BEBEI specified descriptors
1178BEhO-clause <- BEhO-pre BEhO-post
1179            -> BEhO-clause
1180BEhO-pre    <- pre-clause BEhO `spaces?
1181            -> BEhO-pre
1182BEhO-post   <- post-clause
1183            -> BEhO-post
1184
1185;         prefix for high-priority MEX operator
1186BIhE-clause <- BIhE-pre BIhE-post
1187            -> BIhE-clause
1188BIhE-pre    <- pre-clause BIhE `spaces?
1189            -> BIhE-pre
1190BIhE-post   <- post-clause
1191            -> BIhE-post
1192
1193;         interval component of JOI
1194BIhI-clause <- BIhI-pre BIhI-post
1195            -> BIhI-clause
1196BIhI-pre    <- pre-clause BIhI `spaces?
1197            -> BIhI-pre
1198BIhI-post   <- post-clause
1199            -> BIhI-post
1200
1201;         joins two units with shortest scope
1202BO-clause   <- BO-pre BO-post
1203            -> BO-clause
1204BO-pre      <- pre-clause BO `spaces?
1205            -> BO-pre
1206BO-post     <- post-clause
1207            -> BO-post
1208
1209;         number or lerfu-string terminator
1210BOI-clause  <- BOI-pre BOI-post
1211            -> BOI-clause
1212BOI-pre     <- pre-clause BOI `spaces?
1213            -> BOI-pre
1214BOI-post    <- post-clause
1215            -> BOI-post
1216
1217;         turns any word into a BY lerfu word
1218BU-clause   <- pre-clause BU `spaces?
1219            -> BU-clause
1220
1221;         individual lerfu words
1222BY-clause   <- BY-pre BY-post
1223            -> BY-clause
1224             / bu-clause
1225            -> BY-clause-bu
1226BY-pre      <- pre-clause BY `spaces?
1227            -> BY-pre
1228BY-post     <- post-clause
1229            -> BY-post
1230
1231
1232;         specifies actualitypotentiality of tense
1233CAhA-clause <- CAhA-pre CAhA-post
1234            -> CAhA-clause
1235CAhA-pre    <- pre-clause CAhA `spaces?
1236            -> CAhA-pre
1237CAhA-post   <- post-clause
1238            -> CAhA-post
1239
1240;         afterthought intensity marker
1241CAI-clause  <- CAI-pre CAI-post
1242            -> CAI-clause
1243CAI-pre     <- pre-clause CAI `spaces?
1244            -> CAI-pre
1245CAI-post    <- post-clause
1246            -> CAI-post
1247
1248;         pro-bridi assignment operator
1249CEI-clause  <- CEI-pre CEI-post
1250            -> CEI-clause
1251CEI-pre     <- pre-clause CEI `spaces?
1252            -> CEI-pre
1253CEI-post    <- post-clause
1254            -> CEI-post
1255
1256;         afterthought term list connective
1257CEhE-clause <- CEhE-pre CEhE-post
1258            -> CEhE-clause
1259CEhE-pre    <- pre-clause CEhE `spaces?
1260            -> CEhE-pre
1261CEhE-post   <- post-clause
1262            -> CEhE-post
1263
1264;         names; require consonant end, then pause no
1265;           LA or DOI selma'o embedded, pause before if
1266;           vowel initial and preceded by a vowel
1267
1268;         tanru inversion
1269CO-clause   <- CO-pre CO-post
1270            -> CO-clause
1271CO-pre      <- pre-clause CO `spaces?
1272            -> CO-pre
1273CO-post     <- post-clause
1274            -> CO-post
1275
1276COI-clause  <- COI-pre COI-post
1277            -> COI-clause
1278COI-pre     <- pre-clause COI `spaces?
1279            -> COI-pre
1280COI-post    <- post-clause
1281            -> COI-post
1282
1283;         vocative marker permitted inside names; must
1284;           always be followed by pause or DOI
1285
1286;         separator between head sumti and selbri
1287CU-clause   <- CU-pre CU-post
1288            -> CU-clause
1289CU-pre      <- pre-clause CU `spaces?
1290            -> CU-pre
1291CU-post     <- post-clause
1292            -> CU-post
1293
1294;         tensemodal question
1295CUhE-clause <- CUhE-pre CUhE-post
1296            -> CUhE-clause
1297CUhE-pre    <- pre-clause CUhE `spaces?
1298            -> CUhE-pre
1299CUhE-post   <- post-clause
1300            -> CUhE-post
1301
1302;         cancel anaphoracataphora assignments
1303DAhO-clause <- DAhO-pre DAhO-post
1304            -> DAhO-clause
1305DAhO-pre    <- pre-clause DAhO `spaces?
1306            -> DAhO-pre
1307DAhO-post   <- post-clause
1308            -> DAhO-post
1309
1310;         vocative marker
1311DOI-clause  <- DOI-pre DOI-post
1312            -> DOI-clause
1313DOI-pre     <- pre-clause DOI `spaces?
1314            -> DOI-pre
1315DOI-post    <- post-clause
1316            -> DOI-post
1317
1318;         terminator for DOI-marked vocatives
1319DOhU-clause <- DOhU-pre DOhU-post
1320            -> DOhU-clause
1321DOhU-pre    <- pre-clause DOhU `spaces?
1322            -> DOhU-pre
1323DOhU-post   <- post-clause
1324            -> DOhU-post
1325
1326;         modifier head generic case tag
1327FA-clause   <- FA-pre FA-post
1328            -> FA-clause
1329FA-pre      <- pre-clause FA `spaces?
1330            -> FA-pre
1331FA-post     <- post-clause
1332            -> FA-post
1333
1334;         superdirections in space
1335FAhA-clause <- FAhA-pre FAhA-post
1336            -> FAhA-clause
1337FAhA-pre    <- pre-clause FAhA `spaces?
1338            -> FAhA-pre
1339FAhA-post   <- post-clause
1340            -> FAhA-post
1341
1342;         normally elided 'done pause' to indicate end
1343;           of utterance string
1344
1345FAhO-clause <- pre-clause FAhO `spaces?
1346            -> FAhO-clause
1347
1348;         space interval mod flag
1349FEhE-clause <- FEhE-pre FEhE-post
1350            -> FEhE-clause
1351FEhE-pre    <- pre-clause FEhE `spaces?
1352            -> FEhE-pre
1353FEhE-post   <- post-clause
1354            -> FEhE-post
1355
1356;         ends bridi to modal conversion
1357FEhU-clause <- FEhU-pre FEhU-post
1358            -> FEhU-clause
1359FEhU-pre    <- pre-clause FEhU `spaces?
1360            -> FEhU-pre
1361FEhU-post   <- post-clause
1362            -> FEhU-post
1363
1364;         marks bridi to modal conversion
1365FIhO-clause <- FIhO-pre FIhO-post
1366            -> FIhO-clause
1367FIhO-pre    <- pre-clause FIhO `spaces?
1368            -> FIhO-pre
1369FIhO-post   <- post-clause
1370            -> FIhO-post
1371
1372;         end compound lerfu
1373FOI-clause  <- FOI-pre FOI-post
1374            -> FOI-clause
1375FOI-pre     <- pre-clause FOI `spaces?
1376            -> FOI-pre
1377FOI-post    <- post-clause
1378            -> FOI-post
1379
1380;         reverse Polish flag
1381FUhA-clause <- FUhA-pre FUhA-post
1382            -> FUhA-clause
1383FUhA-pre    <- pre-clause FUhA `spaces?
1384            -> FUhA-pre
1385FUhA-post   <- post-clause
1386            -> FUhA-post
1387
1388;         open long scope for indicator
1389FUhE-clause <- FUhE-pre FUhE-post
1390            -> FUhE-clause
1391FUhE-pre    <- pre-clause FUhE `spaces?
1392            -> FUhE-pre
1393; XXX: ?interaction between ! and spaces?
1394FUhE-post   <- !BU-clause `spaces? !ZEI-clause !BU-clause
1395            -> FUhE-post
1396
1397;         close long scope for indicator
1398FUhO-clause <- FUhO-pre FUhO-post
1399            -> FUhO-clause
1400FUhO-pre    <- pre-clause FUhO `spaces?
1401            -> FUhO-pre
1402FUhO-post   <- post-clause
1403            -> FUhO-post
1404
1405;         geks; forethought logical connectives
1406GA-clause   <- GA-pre GA-post
1407            -> GA-clause
1408GA-pre      <- pre-clause GA `spaces?
1409            -> GA-pre
1410GA-post     <- post-clause
1411            -> GA-post
1412
1413;         openclosed interval markers for BIhI
1414GAhO-clause <- GAhO-pre GAhO-post
1415            -> GAhO-clause
1416GAhO-pre    <- pre-clause GAhO `spaces?
1417            -> GAhO-pre
1418GAhO-post   <- post-clause
1419            -> GAhO-post
1420
1421;         marker ending GOI relative clauses
1422GEhU-clause <- GEhU-pre GEhU-post
1423            -> GEhU-clause
1424GEhU-pre    <- pre-clause GEhU `spaces?
1425            -> GEhU-pre
1426GEhU-post   <- post-clause
1427            -> GEhU-post
1428
1429;         forethought medial marker
1430GI-clause   <- GI-pre GI-post
1431            -> GI-clause
1432GI-pre      <- pre-clause GI `spaces?
1433            -> GI-pre
1434GI-post     <- post-clause
1435            -> GI-post
1436
1437;         logical connectives for bridi-tails
1438GIhA-clause <- GIhA-pre GIhA-post
1439            -> GIhA-clause
1440GIhA-pre    <- pre-clause GIhA `spaces?
1441            -> GIhA-pre
1442GIhA-post   <- post-clause
1443            -> GIhA-post
1444
1445;         attaches a sumti modifier to a sumti
1446GOI-clause  <- GOI-pre GOI-post
1447            -> GOI-clause
1448GOI-pre     <- pre-clause GOI `spaces?
1449            -> GOI-pre
1450GOI-post    <- post-clause
1451            -> GOI-post
1452
1453;         pro-bridi
1454GOhA-clause <- GOhA-pre GOhA-post
1455            -> GOhA-clause
1456GOhA-pre    <- pre-clause GOhA `spaces?
1457            -> GOhA-pre
1458GOhA-post   <- post-clause
1459            -> GOhA-post
1460
1461;         GEK for tanru units, corresponds to JEKs
1462GUhA-clause <- GUhA-pre GUhA-post
1463            -> GUhA-clause
1464GUhA-pre    <- pre-clause GUhA `spaces?
1465            -> GUhA-pre
1466GUhA-post   <- post-clause
1467            -> GUhA-post
1468
1469;         sentence link
1470I-clause    <- sentence-sa* I-pre I-post
1471            -> I-clause
1472I-pre       <- pre-clause I `spaces?
1473            -> I-pre
1474I-post      <- post-clause
1475            -> I-post
1476
1477;         jeks; logical connectives within tanru
1478JA-clause   <- JA-pre JA-post
1479            -> JA-clause
1480JA-pre      <- pre-clause JA `spaces?
1481            -> JA-pre
1482JA-post     <- post-clause
1483            -> JA-post
1484
1485;         modal conversion flag
1486JAI-clause  <- JAI-pre JAI-post
1487            -> JAI-clause
1488JAI-pre     <- pre-clause JAI `spaces?
1489            -> JAI-pre
1490JAI-post    <- post-clause
1491            -> JAI-post
1492
1493;         flags an array operand
1494JOhI-clause <- JOhI-pre JOhI-post
1495            -> JOhI-clause
1496JOhI-pre    <- pre-clause JOhI `spaces?
1497            -> JOhI-pre
1498JOhI-post   <- post-clause
1499            -> JOhI-post
1500
1501;         non-logical connectives
1502JOI-clause  <- JOI-pre JOI-post
1503            -> JOI-clause
1504JOI-pre     <- pre-clause JOI `spaces?
1505            -> JOI-pre
1506JOI-post    <- post-clause
1507            -> JOI-post
1508
1509;         left long scope marker
1510KE-clause   <- KE-pre KE-post
1511            -> KE-clause
1512KE-pre      <- pre-clause KE `spaces?
1513            -> KE-pre
1514KE-post     <- post-clause
1515            -> KE-post
1516
1517;         right terminator for KE groups
1518KEhE-clause <- KEhE-pre KEhE-post
1519            -> KEhE-clause
1520KEhE-pre    <- pre-clause KEhE `spaces?
1521            -> KEhE-pre
1522KEhE-post   <- post-clause
1523            -> KEhE-post
1524
1525;         right terminator, NU abstractions
1526KEI-clause  <- KEI-pre KEI-post
1527            -> KEI-clause
1528KEI-pre     <- pre-clause KEI `spaces?
1529            -> KEI-pre
1530KEI-post    <- post-clause
1531            -> KEI-post
1532
1533;         multiple utterance scope for tenses
1534KI-clause   <- KI-pre KI-post
1535            -> KI-clause
1536KI-pre      <- pre-clause KI `spaces?
1537            -> KI-pre
1538KI-post     <- post-clause
1539            -> KI-post
1540
1541;         sumti anaphora
1542KOhA-clause <- KOhA-pre KOhA-post
1543            -> KOhA-clause
1544KOhA-pre    <- pre-clause KOhA `spaces?
1545            -> KOhA-pre
1546KOhA-post   <- post-clause
1547            -> KOhA-post
1548
1549;         right terminator for descriptions, etc.
1550KU-clause   <- KU-pre KU-post
1551            -> KU-clause
1552KU-pre      <- pre-clause KU `spaces?
1553            -> KU-pre
1554KU-post     <- post-clause
1555            -> KU-post
1556
1557;         MEX forethought delimiter
1558KUhE-clause <- KUhE-pre KUhE-post
1559            -> KUhE-clause
1560KUhE-pre    <- pre-clause KUhE `spaces?
1561            -> KUhE-pre
1562KUhE-post   <- post-clause
1563            -> KUhE-post
1564
1565;         right terminator, NOI relative clauses
1566KUhO-clause <- KUhO-pre KUhO-post
1567            -> KUhO-clause
1568KUhO-pre    <- pre-clause KUhO `spaces?
1569            -> KUhO-pre
1570KUhO-post   <- post-clause
1571            -> KUhO-post
1572
1573;         name descriptors
1574LA-clause   <- LA-pre LA-post
1575            -> LA-clause
1576LA-pre      <- pre-clause LA `spaces?
1577            -> LA-pre
1578LA-post     <- post-clause
1579            -> LA-post
1580
1581;         lerfu prefixes
1582LAU-clause  <- LAU-pre LAU-post
1583            -> LAU-clause
1584LAU-pre     <- pre-clause LAU `spaces?
1585            -> LAU-pre
1586LAU-post    <- post-clause
1587            -> LAU-post
1588
1589;         sumti qualifiers
1590LAhE-clause <- LAhE-pre LAhE-post
1591            -> LAhE-clause
1592LAhE-pre    <- pre-clause LAhE `spaces?
1593            -> LAhE-pre
1594LAhE-post   <- post-clause
1595            -> LAhE-post
1596
1597;         sumti descriptors
1598LE-clause   <- LE-pre LE-post
1599            -> LE-clause
1600LE-pre      <- pre-clause LE `spaces?
1601            -> LE-pre
1602LE-post     <- post-clause
1603            -> LE-post
1604
1605;         possibly ungrammatical text right quote
1606LEhU-clause <- LEhU-pre
1607            -> LEhU-clause
1608LEhU-pre    <- pre-clause LEhU `spaces?
1609            -> LEhU-pre
1610
1611;         convert number to sumti
1612LI-clause   <- LI-pre LI-post
1613            -> LI-clause
1614LI-pre      <- pre-clause LI `spaces?
1615            -> LI-pre
1616LI-post     <- post-clause
1617            -> LI-post
1618
1619;         grammatical text right quote
1620LIhU-clause <- LIhU-pre LIhU-post
1621            -> LIhU-clause
1622LIhU-pre    <- pre-clause LIhU `spaces?
1623            -> LIhU-pre
1624LIhU-post   <- post-clause
1625            -> LIhU-post
1626
1627;         elidable terminator for LI
1628LOhO-clause <- LOhO-pre LOhO-post
1629            -> LOhO-clause
1630LOhO-pre    <- pre-clause LOhO `spaces?
1631            -> LOhO-pre
1632LOhO-post   <- post-clause
1633            -> LOhO-post
1634
1635;         possibly ungrammatical text left quote
1636LOhU-clause <- LOhU-pre LOhU-post
1637            -> LOhU-clause
1638LOhU-pre    <- pre-clause
1639               LOhU
1640               `spaces?
1641               ( !LEhU any-word `spaces? )*
1642               LEhU-clause
1643            -> LOhU-pre
1644LOhU-post   <- post-clause
1645            -> LOhU-post
1646
1647;         grammatical text left quote
1648LU-clause   <- LU-pre LU-post
1649            -> LU-clause
1650LU-pre      <- pre-clause LU `spaces?
1651            -> LU-pre
1652LU-post     <- post-clause
1653            -> LU-post
1654
1655;         LAhE close delimiter
1656LUhU-clause <- LUhU-pre LUhU-post
1657            -> LUhU-clause
1658LUhU-pre    <- pre-clause LUhU `spaces?
1659            -> LUhU-pre
1660LUhU-post   <- post-clause
1661            -> LUhU-post
1662
1663
1664;         change MEX expressions to MEX operators
1665MAhO-clause <- MAhO-pre MAhO-post
1666            -> MAhO-clause
1667MAhO-pre    <- pre-clause MAhO `spaces?
1668            -> MAhO-pre
1669MAhO-post   <- post-clause
1670            -> MAhO-post
1671
1672;         change numbers to utterance ordinals
1673MAI-clause  <- MAI-pre MAI-post
1674            -> MAI-clause
1675MAI-pre     <- pre-clause MAI `spaces?
1676            -> MAI-pre
1677MAI-post    <- post-clause
1678            -> MAI-post
1679
1680;         converts a sumti into a tanru_unit
1681ME-clause   <- ME-pre ME-post
1682            -> ME-clause
1683ME-pre      <- pre-clause ME `spaces?
1684            -> ME-pre
1685ME-post     <- post-clause
1686            -> ME-post
1687
1688;         terminator for ME
1689MEhU-clause <- MEhU-pre MEhU-post
1690            -> MEhU-clause
1691MEhU-pre    <- pre-clause MEhU `spaces?
1692            -> MEhU-pre
1693MEhU-post   <- post-clause
1694            -> MEhU-post
1695
1696;         change sumti to operand, inverse of LI
1697MOhE-clause <- MOhE-pre MOhE-post
1698            -> MOhE-clause
1699MOhE-pre    <- pre-clause MOhE `spaces?
1700            -> MOhE-pre
1701MOhE-post   <- post-clause
1702            -> MOhE-post
1703
1704;         motion tense marker
1705MOhI-clause <- MOhI-pre MOhI-post
1706            -> MOhI-clause
1707MOhI-pre    <- pre-clause MOhI `spaces?
1708            -> MOhI-pre
1709MOhI-post   <- post-clause
1710            -> MOhI-post
1711
1712;         change number to selbri
1713MOI-clause  <- MOI-pre MOI-post
1714            -> MOI-clause
1715MOI-pre     <- pre-clause MOI `spaces?
1716            -> MOI-pre
1717MOI-post    <- post-clause
1718            -> MOI-post
1719
1720;         bridi negation
1721NA-clause   <- NA-pre NA-post
1722            -> NA-clause
1723NA-pre      <- pre-clause NA `spaces?
1724            -> NA-pre
1725NA-post     <- post-clause
1726            -> NA-post
1727
1728;         attached to words to negate them
1729NAI-clause  <- NAI-pre NAI-post
1730            -> NAI-clause
1731NAI-pre     <- pre-clause NAI `spaces?
1732            -> NAI-pre
1733NAI-post    <- post-clause
1734            -> NAI-post
1735
1736;         scalar negation
1737NAhE-clause <- NAhE-pre NAhE-post
1738            -> NAhE-clause
1739NAhE-pre    <- pre-clause NAhE `spaces?
1740            -> NAhE-pre
1741NAhE-post   <- post-clause
1742            -> NAhE-post
1743
1744;         change a selbri into an operator
1745NAhU-clause <- NAhU-pre NAhU-post
1746            -> NAhU-clause
1747NAhU-pre    <- pre-clause NAhU `spaces?
1748            -> NAhU-pre
1749NAhU-post   <- post-clause
1750            -> NAhU-post
1751
1752;         change selbri to operand; inverse of MOI
1753NIhE-clause <- NIhE-pre NIhE-post
1754            -> NIhE-clause
1755NIhE-pre    <- pre-clause NIhE `spaces?
1756            -> NIhE-pre
1757NIhE-post   <- post-clause
1758            -> NIhE-post
1759
1760;         new paragraph; change of subject
1761NIhO-clause <- sentence-sa* NIhO-pre NIhO-post
1762            -> NIhO-clause
1763NIhO-pre    <- pre-clause NIhO `spaces?
1764            -> NIhO-pre
1765NIhO-post   <- su-clause* post-clause
1766            -> NIhO-post
1767
1768;         attaches a subordinate clause to a sumti
1769NOI-clause  <- NOI-pre NOI-post
1770            -> NOI-clause
1771NOI-pre     <- pre-clause NOI `spaces?
1772            -> NOI-pre
1773NOI-post    <- post-clause
1774            -> NOI-post
1775
1776;         abstraction
1777NU-clause   <- NU-pre NU-post
1778            -> NU-clause
1779NU-pre      <- pre-clause NU `spaces?
1780            -> NU-pre
1781NU-post     <- post-clause
1782            -> NU-post
1783
1784;         change operator to selbri; inverse of MOhE
1785NUhA-clause <- NUhA-pre NUhA-post
1786            -> NUhA-clause
1787NUhA-pre    <- pre-clause NUhA `spaces?
1788            -> NUhA-pre
1789NUhA-post   <- post-clause
1790            -> NUhA-post
1791
1792;         marks the start of a termset
1793NUhI-clause <- NUhI-pre NUhI-post
1794            -> NUhI-clause
1795NUhI-pre    <- pre-clause NUhI `spaces?
1796            -> NUhI-pre
1797NUhI-post   <- post-clause
1798            -> NUhI-post
1799
1800;         marks the middle and end of a termset
1801NUhU-clause <- NUhU-pre NUhU-post
1802            -> NUhU-clause
1803NUhU-pre    <- pre-clause NUhU `spaces?
1804            -> NUhU-pre
1805NUhU-post   <- post-clause
1806            -> NUhU-post
1807
1808;         numbers and numeric punctuation
1809PA-clause   <- PA-pre PA-post
1810            -> PA-clause
1811PA-pre      <- pre-clause PA `spaces?
1812            -> PA-pre
1813PA-post     <- post-clause
1814            -> PA-post
1815
1816;         afterthought termset connective prefix
1817PEhE-clause <- PEhE-pre PEhE-post
1818            -> PEhE-clause
1819PEhE-pre    <- pre-clause PEhE `spaces?
1820            -> PEhE-pre
1821PEhE-post   <- post-clause
1822            -> PEhE-post
1823
1824;         forethought (Polish) flag
1825PEhO-clause <- PEhO-pre PEhO-post
1826            -> PEhO-clause
1827PEhO-pre    <- pre-clause PEhO `spaces?
1828            -> PEhO-pre
1829PEhO-post   <- post-clause
1830            -> PEhO-post
1831
1832;         directions in time
1833PU-clause   <- PU-pre PU-post
1834            -> PU-clause
1835PU-pre      <- pre-clause PU `spaces?
1836            -> PU-pre
1837PU-post     <- post-clause
1838            -> PU-post
1839
1840;         flag for modified interpretation of GOhI
1841RAhO-clause <- RAhO-pre RAhO-post
1842            -> RAhO-clause
1843RAhO-pre    <- pre-clause RAhO `spaces?
1844            -> RAhO-pre
1845RAhO-post   <- post-clause
1846            -> RAhO-post
1847
1848;         converts number to extensional tense
1849ROI-clause  <- ROI-pre ROI-post
1850            -> ROI-clause
1851ROI-pre     <- pre-clause ROI `spaces?
1852            -> ROI-pre
1853ROI-post    <- post-clause
1854            -> ROI-post
1855
1856SA-clause   <- SA-pre
1857            -> SA-clause
1858SA-pre      <- pre-clause SA `spaces?
1859            -> SA-pre
1860
1861;         metalinguistic eraser to the beginning of
1862;           the current utterance
1863
1864;         conversions
1865SE-clause   <- SE-pre SE-post
1866            -> SE-clause
1867SE-pre      <- pre-clause SE `spaces?
1868            -> SE-pre
1869SE-post     <- post-clause
1870            -> SE-post
1871
1872;         metalinguistic bridi insert marker
1873SEI-clause  <- SEI-pre SEI-post
1874            -> SEI-clause
1875SEI-pre     <- pre-clause SEI `spaces?
1876            -> SEI-pre
1877SEI-post    <- post-clause
1878            -> SEI-post
1879
1880;         metalinguistic bridi end marker
1881SEhU-clause <- SEhU-pre SEhU-post
1882            -> SEhU-clause
1883SEhU-pre    <- pre-clause SEhU `spaces?
1884            -> SEhU-pre
1885SEhU-post   <- post-clause
1886            -> SEhU-post
1887
1888;         metalinguistic single word eraser
1889SI-clause   <- SI `spaces?
1890            -> SI-clause
1891
1892;         reciprocal sumti marker
1893SOI-clause  <- SOI-pre SOI-post
1894            -> SOI-clause
1895SOI-pre     <- pre-clause SOI `spaces?
1896            -> SOI-pre
1897SOI-post    <- post-clause
1898            -> SOI-post
1899
1900;         metalinguistic eraser of the entire text
1901SU-clause   <- SU-pre SU-post
1902            -> SU-clause
1903SU-pre      <- pre-clause SU `spaces?
1904            -> SU-pre
1905SU-post     <- post-clause
1906            -> SU-post
1907
1908;         tense interval properties
1909TAhE-clause <- TAhE-pre TAhE-post
1910            -> TAhE-clause
1911TAhE-pre    <- pre-clause TAhE `spaces?
1912            -> TAhE-pre
1913TAhE-post   <- post-clause
1914            -> TAhE-post
1915
1916;         closing gap for MEX constructs
1917TEhU-clause <- TEhU-pre TEhU-post
1918            -> TEhU-clause
1919TEhU-pre    <- pre-clause TEhU `spaces?
1920            -> TEhU-pre
1921TEhU-post   <- post-clause
1922            -> TEhU-post
1923
1924;         start compound lerfu
1925TEI-clause  <- TEI-pre TEI-post
1926            -> TEI-clause
1927TEI-pre     <- pre-clause TEI `spaces?
1928            -> TEI-pre
1929TEI-post    <- post-clause
1930            -> TEI-post
1931
1932;         left discursive parenthesis
1933TO-clause   <- TO-pre TO-post
1934            -> TO-clause
1935TO-pre      <- pre-clause TO `spaces?
1936            -> TO-pre
1937TO-post     <- post-clause
1938            -> TO-post
1939
1940;         right discursive parenthesis
1941TOI-clause  <- TOI-pre TOI-post
1942            -> TOI-clause
1943TOI-pre     <- pre-clause TOI `spaces?
1944            -> TOI-pre
1945TOI-post    <- post-clause
1946            -> TOI-post
1947
1948;         multiple utterance scope mark
1949TUhE-clause <- TUhE-pre TUhE-post
1950            -> TUhE-clause
1951TUhE-pre    <- pre-clause TUhE `spaces?
1952            -> TUhE-pre
1953TUhE-post   <- su-clause* post-clause
1954            -> TUhE-post
1955
1956;         multiple utterance end scope mark
1957TUhU-clause <- TUhU-pre TUhU-post
1958            -> TUhU-clause
1959TUhU-pre    <- pre-clause TUhU `spaces?
1960            -> TUhU-pre
1961TUhU-post   <- post-clause
1962            -> TUhU-post
1963
1964;         attitudinals, observationals, discursives
1965UI-clause   <- UI-pre UI-post
1966            -> UI-clause
1967UI-pre      <- pre-clause UI `spaces?
1968            -> UI-pre
1969UI-post     <- post-clause
1970            -> UI-post
1971
1972;         distance in space-time
1973VA-clause   <- VA-pre VA-post
1974            -> VA-clause
1975VA-pre      <- pre-clause VA `spaces?
1976            -> VA-pre
1977VA-post     <- post-clause
1978            -> VA-post
1979
1980;         end simple bridi or bridi-tail
1981VAU-clause  <- VAU-pre VAU-post
1982            -> VAU-clause
1983VAU-pre     <- pre-clause VAU `spaces?
1984            -> VAU-pre
1985VAU-post    <- post-clause
1986            -> VAU-post
1987
1988;         left MEX bracket
1989VEI-clause  <- VEI-pre VEI-post
1990            -> VEI-clause
1991VEI-pre     <- pre-clause VEI `spaces?
1992            -> VEI-pre
1993VEI-post    <- post-clause
1994            -> VEI-post
1995
1996;         right MEX bracket
1997VEhO-clause <- VEhO-pre VEhO-post
1998            -> VEhO-clause
1999VEhO-pre    <- pre-clause VEhO `spaces?
2000            -> VEhO-pre
2001VEhO-post   <- post-clause
2002            -> VEhO-post
2003
2004;         MEX operator
2005VUhU-clause <- VUhU-pre VUhU-post
2006            -> VUhU-clause
2007VUhU-pre    <- pre-clause VUhU `spaces?
2008            -> VUhU-pre
2009VUhU-post   <- post-clause
2010            -> VUhU-post
2011
2012;         space-time interval size
2013VEhA-clause <- VEhA-pre VEhA-post
2014            -> VEhA-clause
2015VEhA-pre    <- pre-clause VEhA `spaces?
2016            -> VEhA-pre
2017VEhA-post   <- post-clause
2018            -> VEhA-post
2019
2020;         space-time dimensionality marker
2021VIhA-clause <- VIhA-pre VIhA-post
2022            -> VIhA-clause
2023VIhA-pre    <- pre-clause VIhA `spaces?
2024            -> VIhA-pre
2025VIhA-post   <- post-clause
2026            -> VIhA-post
2027
2028VUhO-clause <- VUhO-pre VUhO-post
2029            -> VUhO-clause
2030VUhO-pre    <- pre-clause VUhO `spaces?
2031            -> VUhO-pre
2032VUhO-post   <- post-clause
2033            -> VUhO-post
2034
2035; glue between logically connected sumti and relative clauses
2036
2037;         subscripting operator
2038XI-clause   <- XI-pre XI-post
2039            -> XI-clause
2040XI-pre      <- pre-clause XI `spaces?
2041            -> XI-pre
2042XI-post     <- post-clause
2043            -> XI-post
2044
2045;         hesitation
2046; Very very special case.  Handled in the morphology section.
2047; Y-clause    <- Y `spaces?
2048;             -> Y-clause
2049
2050;         event properties - inchoative, etc.
2051ZAhO-clause <- ZAhO-pre ZAhO-post
2052            -> ZAhO-clause
2053ZAhO-pre    <- pre-clause ZAhO `spaces?
2054            -> ZAhO-pre
2055ZAhO-post   <- post-clause
2056            -> ZAhO-post
2057
2058;         time interval size tense
2059ZEhA-clause <- ZEhA-pre ZEhA-post
2060            -> ZEhA-clause
2061ZEhA-pre    <- pre-clause ZEhA `spaces?
2062            -> ZEhA-pre
2063ZEhA-post   <- post-clause
2064            -> ZEhA-post
2065
2066;         lujvo glue
2067ZEI-clause  <- ZEI-pre
2068            -> ZEI-clause
2069ZEI-pre     <- pre-clause ZEI `spaces?
2070            -> ZEI-pre
2071
2072;         time distance tense
2073ZI-clause   <- ZI-pre ZI-post
2074            -> ZI-clause
2075ZI-pre      <- pre-clause ZI `spaces?
2076            -> ZI-pre
2077ZI-post     <- post-clause
2078            -> ZI-post
2079
2080;         conjoins relative clauses
2081ZIhE-clause <- ZIhE-pre ZIhE-post
2082            -> ZIhE-clause
2083ZIhE-pre    <- pre-clause ZIhE `spaces?
2084            -> ZIhE-pre
2085ZIhE-post   <- post-clause
2086            -> ZIhE-post
2087
2088;         single word metalinguistic quote marker
2089ZO-clause   <- ZO-pre ZO-post
2090            -> ZO-clause
2091ZO-pre      <- pre-clause ZO `spaces? any-word `spaces?
2092            -> ZO-pre
2093ZO-post     <- post-clause
2094            -> ZO-post
2095
2096;         delimited quote marker
2097ZOI-clause  <- ZOI-pre ZOI-post
2098            -> ZOI-clause
2099ZOI-pre     <- pre-clause ZOI `spaces? zoi-open zoi-word* zoi-close
2100            -> ZOI-pre
2101ZOI-post    <- post-clause
2102            -> ZOI-post
2103
2104;         prenex terminator (not elidable)
2105ZOhU-clause <- ZOhU-pre ZOhU-post
2106            -> ZOhU-clause
2107ZOhU-pre    <- pre-clause ZOhU `spaces?
2108            -> ZOhU-pre
2109ZOhU-post   <- post-clause
2110            -> ZOhU-post
2111
2112zoi-open  <- any-word `spaces?
2113          -| zoi-open
2114zoi-word  <- any-word `spaces?
2115          -| zoi-word
2116zoi-close <- any-word `spaces?
2117          -| zoi-close
Note: See TracBrowser for help on using the repository browser.