; This is an RFC 2234 (ABNF) version of bnf.300. See ; http://www.faqs.org/rfcs/rfc2234.html ; ; The only part that is not ABNF is the elidable terminators. The ; conversion was done entirely programatically, by a perl program. ; ; All rules have the form: ; ; name = bnf-expression ; ; which means that the grammatical construct "name" is defined by ; "bnf-expression". The number cross-references this grammar with ; the rule numbers in the YACC grammar. The names are the same as those ; in the YACC grammar, except that subrules are labeled with A, B, C, ... in the ; YACC grammar and with 1, 2, 3, ... in this grammar. In addition, rule 971 is ; "simple_tag" in the YACC grammar but "stag" in this grammar, because of its ; frequent appearance. ; ; 1) Names in lower case are grammatical constructs. ; 2) Names in UPPER CASE are selma'o (lexeme) names, and are terminals. ; 3) Concatenation is expressed by juxtaposition with no operator symbol. ; 4) / represents alternation (choice). ; 5) [] represents an optional element. ; 6) * represents optional repetition of the construct to the right. ; 7) 1* represents one-or-more repetition of the construct to the right. ; 8) () serves to indicate the grouping of the other operators. ; 9) {} encloses an elidable terminator, which may be omitted (without change ; of meaning) if no grammatical ambiguity results. ; ; A pre-processor should remove everything after the first fa'o. ; --- GRAMMAR --- ; Do not *ever* remove the line above this one. text <- (NAI+)? (CMENE+ free* / (indicators / free+ / indicators free+))? (joik-jek)? text-1 (FAhO)? text-1 <- ((I (jek / joik)? ((stag)? BO)? free*)+ / NIhO+ free*)? (paragraphs)? paragraphs <- paragraph (NIhO+ free* paragraphs)? paragraph <- (statement / fragment) (I free* (statement / fragment)?)* statement <- statement-1 / prenex statement statement-1 <- statement-2 (I joik-jek (statement-2)?)* statement-2 <- statement-3 (I (jek / joik)? (stag)? BO free* (statement-2)?)? statement-3 <- sentence / (tag)? TUhE free* text-1 (TUhU free*)? fragment <- ek free* / gihek free* / quantifier / NA free* / terms (VAU free*)? / prenex / relative-clauses / links / linkargs prenex <- terms ZOhU free* sentence <- (terms (CU free*)?)? bridi-tail subsentence <- sentence / prenex subsentence bridi-tail <- bridi-tail-1 (gihek (stag)? KE free* bridi-tail (KEhE free*)? tail-terms)? bridi-tail-1 <- bridi-tail-2 (gihek free* bridi-tail-2 tail-terms)* bridi-tail-2 <- bridi-tail-3 (gihek (stag)? BO free* bridi-tail-2 tail-terms)? bridi-tail-3 <- selbri tail-terms / gek-sentence gek-sentence <- gek subsentence gik subsentence tail-terms / (tag)? KE free* gek-sentence (KEhE free*)? / NA free* gek-sentence tail-terms <- (terms)? (VAU free*)? terms <- terms-1+ terms-1 <- terms-2 (PEhE free* joik-jek terms-2)* terms-2 <- term (CEhE free* term)* term <- sumti / ( (tag / FA free*) (sumti / (KU free*)?) ) / termset / NA KU free* termset <- NUhI free* gek terms NUhU free* gik terms (NUhU free*)? / NUhI free* terms (NUhU free*)? sumti <- sumti-1 (VUhO free* relative-clauses)? sumti-1 <- sumti-2 ((ek / joik) (stag)? KE free* sumti (KEhE free*)?)? sumti-2 <- sumti-3 (joik-ek sumti-3)* sumti-3 <- sumti-4 ((ek / joik) (stag)? BO free* sumti-3)? sumti-4 <- sumti-5 / gek sumti gik sumti-4 sumti-5 <- (quantifier)? sumti-6 (relative-clauses)? / quantifier selbri (KU free*)? (relative-clauses)? sumti-6 <- (LAhE free* / NAhE BO free*) (relative-clauses)? sumti (LUhU free*)? / KOhA free* / lerfu-string (BOI free*)? / LA free* (relative-clauses)? CMENE+ free* / (LA / LE) free* sumti-tail (KU free*)? / LI free* mex (LOhO free*)? / ZO any-word free* / LU text (LIhU free*)? / LOhU any-word+ LEhU free* / ZOI any-word anything any-word free* sumti-tail <- (sumti-6 (relative-clauses)?)? sumti-tail-1 / relative-clauses sumti-tail-1 sumti-tail-1 <- (quantifier)? selbri (relative-clauses)? / quantifier sumti relative-clauses <- relative-clause (ZIhE free* relative-clause)* relative-clause <- GOI free* term (GEhU free*)? / NOI free* subsentence (KUhO free*)? selbri <- (tag)? selbri-1 selbri-1 <- selbri-2 / NA free* selbri selbri-2 <- selbri-3 (CO free* selbri-2)? selbri-3 <- selbri-4+ selbri-4 <- selbri-5 (joik-jek selbri-5 / joik (stag)? KE free* selbri-3 (KEhE free*)?)* selbri-5 <- selbri-6 ((jek / joik) (stag)? BO free* selbri-5)? selbri-6 <- tanru-unit (BO free* selbri-6)? / (NAhE free*)? guhek selbri gik selbri-6 tanru-unit <- tanru-unit-1 (CEI free* tanru-unit-1)* tanru-unit-1 <- tanru-unit-2 (linkargs)? tanru-unit-2 <- BRIVLA free* / GOhA (RAhO)? free* / KE free* selbri-3 (KEhE free*)? / ME free* sumti (MEhU free*)? (MOI free*)? / (number / lerfu-string) MOI free* / NUhA free* mex-operator / SE free* tanru-unit-2 / JAI free* (tag)? tanru-unit-2 / any-word (ZEI any-word)+ / NAhE free* tanru-unit-2 / NU (NAI)? free* (joik-jek NU (NAI)? free*)* subsentence (KEI free*)? linkargs <- BE free* term (links)? (BEhO free*)? links <- BEI free* term (links)? quantifier <- number (BOI free*)? / VEI free* mex (VEhO free*)? mex <- mex-1 (operator mex-1)* / FUhA free* rp-expression mex-1 <- mex-2 (BIhE free* operator mex-1)? mex-2 <- operand / (PEhO free*)? operator mex-2+ (KUhE free*)? rp-expression <- rp-operand rp-operand operator rp-operand <- operand / rp-expression operator <- operator-1 (joik-jek operator-1 / joik (stag)? KE free* operator (KEhE free*)?)* operator-1 <- operator-2 / guhek operator-1 gik operator-2 / operator-2 (jek / joik) (stag)? BO free* operator-1 operator-2 <- mex-operator / KE free* operator (KEhE free*)? mex-operator <- SE free* mex-operator / NAhE free* mex-operator / MAhO free* mex (TEhU free*)? / NAhU free* selbri (TEhU free*)? / VUhU free* operand <- operand-1 ((ek / joik) (stag)? KE free* operand (KEhE free*)?)? operand-1 <- operand-2 (joik-ek operand-2)* operand-2 <- operand-3 ((ek / joik) (stag)? BO free* operand-2)? operand-3 <- quantifier / lerfu-string (BOI free*)? / NIhE free* selbri (TEhU free*)? / MOhE free* sumti (TEhU free*)? / JOhI free* mex-2+ (TEhU free*)? / gek operand gik operand-3 / (LAhE free* / NAhE BO free*) operand (LUhU free*)? number <- PA (PA / lerfu-word)* lerfu-string <- lerfu-word (PA / lerfu-word)* lerfu-word <- BY / any-word BU / LAU lerfu-word / TEI lerfu-string FOI ek <- (NA)? (SE)? A (NAI)? gihek <- (NA)? (SE)? GIhA (NAI)? jek <- (NA)? (SE)? JA (NAI)? joik <- (SE)? JOI (NAI)? / interval / GAhO interval GAhO interval <- (SE)? BIhI (NAI)? joik-ek <- joik free* / ek free* joik-jek <- joik free* / jek free* gek <- (SE)? GA (NAI)? free* / joik GI free* / stag gik guhek <- (SE)? GUhA (NAI)? free* gik <- GI (NAI)? free* tag <- tense-modal (joik-jek tense-modal)* stag <- simple-tense-modal ((jek / joik) simple-tense-modal)* tense-modal <- simple-tense-modal free* / FIhO free* selbri (FEhU free*)? simple-tense-modal <- (NAhE)? (SE)? BAI (NAI)? (KI)? / (NAhE)? ((time (space)? / space (time)?) / CAhA / (time (space)? / space (time)?) CAhA) (KI)? / KI / CUhE time <- ZI (time-offset+)? (ZEhA (PU (NAI)?)?)? (interval-property+)? / (ZI)? time-offset+ (ZEhA (PU (NAI)?)?)? (interval-property+)? / (ZI)? (time-offset+)? ZEhA (PU (NAI)?)? (interval-property+)? / (ZI)? (time-offset+)? (ZEhA (PU (NAI)?)?)? interval-property+ time-offset <- PU (NAI)? (ZI)? space <- VA (space-offset+)? (space-interval)? ((MOhI space-offset))? / (VA)? space-offset+ (space-interval)? ((MOhI space-offset))? / (VA)? (space-offset+)? space-interval ((MOhI space-offset))? / (VA)? (space-offset+)? (space-interval)? (MOhI space-offset) space-offset <- FAhA (NAI)? (VA)? space-interval <- (((VEhA / VIhA / VEhA VIhA) (FAhA (NAI)?)?) / space-int-props / ((VEhA / VIhA / VEhA VIhA) (FAhA (NAI)?)?) space-int-props) space-int-props <- (FEhE interval-property)+ interval-property <- number ROI (NAI)? / TAhE (NAI)? / ZAhO (NAI)? free <- SEI free* (terms (CU free*)?)? selbri (SEhU)? / SOI free* sumti (sumti)? (SEhU)? / vocative (relative-clauses)? selbri (relative-clauses)? (DOhU)? / vocative (relative-clauses)? CMENE+ free* (relative-clauses)? (DOhU)? / vocative (sumti)? (DOhU)? / (number / lerfu-string) MAI / TO text (TOI)? / XI free* (number / lerfu-string) (BOI)? / XI free* VEI free* mex (VEhO)? vocative <- ((COI (NAI)?)+ / DOI / (COI (NAI)?)+ DOI) indicators <- (FUhE)? indicator+ indicator <- (UI / CAI) (NAI)? / Y / DAhO / FUhO ; The following rules are non-formal: ; ; word<1100> = [BAhE] any-word [indicators] ; ; any-word = "any single word (no compound cmavo)" ; ; anything = "any text at all, whether Lojban or not" ; ; null<1101> = any-word SI / utterance SA / text SU ; --- MORPHOLOGY --- ; Do not *ever* remove the line above this one. ; (currently, nothing special is done to the morphology section; it ; is treated as part of the main grammar) ; a string of lexable Lojban words any_words <- any_word+ ; any single lexable Lojban words any_word <- BRIVLA / CMENE / CMAVO ; a possibly unlexable phoneme string anything <- "AnyThing" ; any brivla ; For now: gismu pattern. ; BRIVLA : /[bcdfgjklmnprstvxz]{2}['a-z]{2,}[aeiou]/ ; / /[bcdfgjklmnprstvxz][aeiou][bcdfgjklmnprstvxz]y?[bcdfgjklmnprstvxz]['a-z]*[aeiou]/ ; / /[bcdfgjklmnprstvxz][aeiou]'?[aeiou][bcdfgjklmnprstvxz]{2}['a-z]*[aeiou]/ ; / /[aeiou]('?[aeiou]){,2}[bcdfgjklmnprstvxz]{2}['a-z]*[aeiou]/ BRIVLA <- "broda" / "brode" / "brodi" / "brodo" / "brodu" ; CMENE = /\.?[,'a-pr-z]+[bcdfgjklmnprstvxz]/ CMENE <- "cmene" / ".alis" / "bab" CMAVO <- A / BAI / BAhE / BE / BEI / BEhO / BIhE / BIhI / BO / BOI / BU / BY / CAI / CAhA / CEI / CEhE / CO / COI / CU / CUhE / DAhO / DOI / DOhU / FA / FAhA / FAhO / FEhE / FEhU / FIhO / FOI / FUhA / FUhE / FUhO / GA / GAhO / GEhU / GI / GIhA / GOI / GOhA / GUhA / I / JA / JAI / JOI / JOhI / KE / KEI / KEhE / KI / KOhA / KU / KUhE / KUhO / LA / LAU / LAhE / LE / LEhU / LI / LIhU / LOhO / LOhU / LU / LUhU / MAI / MAhO / ME / MEhU / MOI / MOhE / MOhI / NA / NAI / NAhE / NAhU / NIhE / NIhO / NOI / NU / NUhA / NUhI / NUhU / PA / PEhE / PEhO / PU / RAhO / ROI / SA / SE / SEI / SEhU / SI / SOI / SU / TAhE / TEI / TEhU / TO / TOI / TUhE / TUhU / UI / VA / VAU / VEI / VEhA / VEhO / VIhA / VUhO / VUhU / XI / Y / ZAhO / ZEI / ZEhA / ZI / ZIhE / ZO / ZOI / ZOhU ; --- SELMAHO --- ; Do not *ever* remove the line above this one. ; Special processing is done on the selma'o to stop abnf2bison from ; breaking them up into many, many productions. ; eks; basic afterthought logical connectives A <- ".a" / ".e" / "ji" / ".o" / ".u" ; modal operators BAI <- "du'o" / "si'u" / "zau" / "ki'i" / "du'i" / "cu'u" / "tu'i" / "ti'u" / "di'o" / "ji'u" / "ri'a" / "ni'i" / "mu'i" / "ki'u" / "va'u" / "koi" / "ca'i" / "ta'i" / "pu'e" / "ja'i" / "kai" / "bai" / "fi'e" / "de'i" / "ci'o" / "mau" / "mu'u" / "ri'i" / "ra'i" / "ka'a" / "pa'u" / "pa'a" / "le'a" / "ku'u" / "tai" / "bau" / "ma'i" / "ci'e" / "fau" / "po'i" / "cau" / "ma'e" / "ci'u" / "ra'a" / "pu'a" / "li'e" / "la'u" / "ba'i" / "ka'i" / "sau" / "fa'e" / "be'i" / "ti'i" / "ja'e" / "ga'a" / "va'o" / "ji'o" / "me'a" / "do'e" / "ji'e" / "pi'o" / "gau" / "zu'e" / "me'e" / "rai" ; next word intensifier BAhE <- "ba'e" / "za'e" ; sumti link to attach sumti to a selbri BE <- "be" ; multiple sumti separator between BE, BEI BEI <- "bei" ; terminates BEBEI specified descriptors BEhO <- "be'o" ; prefix for high-priority MEX operator BIhE <- "bi'e" ; interval component of JOI BIhI <- "mi'i" / "bi'o" / "bi'i" ; joins two units with shortest scope BO <- "bo" ; number or lerfu-string terminator BOI <- "boi" ; turns any word into a BY lerfu word BU <- "bu" ; individual lerfu words BY <- "jo'o" / "ru'o" / "ge'o" / "je'o" / "lo'a" / "na'a" / "se'e" / "to'a" / "ga'e" / ".y'y" / "by" / "cy" / "dy" / "fy" / "gy" / "jy" / "ky" / "ly" / "my" / "ny" / "py" / "ry" / "sy" / "ty" / "vy" / "xy" / "zy" ; specifies actualitypotentiality of tense CAhA <- "ca'a" / "pu'i" / "nu'o" / "ka'e" ; afterthought intensity marker CAI <- "pei" / "cai" / "cu'i" / "sai" / "ru'e" ; pro-bridi assignment operator CEI <- "cei" ; afterthought term list connective CEhE <- "ce'e" ; names; require consonant end, then pause no ; LA or DOI selma'o embedded, pause before if ; vowel initial and preceded by a vowel ; tanru inversion CO <- "co" COI <- "ju'i" / "coi" / "fi'i" / "ta'a" / "mu'o" / "fe'o" / "co'o" / "pe'u" / "ke'o" / "nu'e" / "re'i" / "be'e" / "je'e" / "mi'e" / "ki'e" / "vi'o" ; vocative marker permitted inside names; must ; always be followed by pause or DOI ; separator between head sumti and selbri CU <- "cu" ; tensemodal question CUhE <- "cu'e" / "nau" ; cancel anaphoracataphora assignments DAhO <- "da'o" ; vocative marker DOI <- "doi" ; terminator for DOI-marked vocatives DOhU <- "do'u" ; modifier head generic case tag FA <- "fa" / "fe" / "fi" / "fo" / "fu" / "fai" / "fi'a" ; superdirections in space FAhA <- "du'a" / "be'a" / "ne'u" / "vu'a" / "ga'u" / "ti'a" / "ni'a" / "ca'u" / "zu'a" / "ri'u" / "ru'u" / "re'o" / "te'e" / "bu'u" / "ne'a" / "pa'o" / "ne'i" / "to'o" / "zo'i" / "ze'o" / "zo'a" / "fa'a" FAhO <- "fa'o" ; normally elided 'done pause' to indicate end ; of utterance string ; space interval mod flag FEhE <- "fe'e" ; ends bridi to modal conversion FEhU <- "fe'u" ; marks bridi to modal conversion FIhO <- "fi'o" ; end compound lerfu FOI <- "foi" ; reverse Polish flag FUhA <- "fu'a" ; open long scope for indicator FUhE <- "fu'e" ; close long scope for indicator FUhO <- "fu'o" ; geks; forethought logical connectives GA <- "ge" / "ge'i" / "go" / "ga" / "gu" ; openclosed interval markers for BIhI GAhO <- "ke'i" / "ga'o" ; marker ending GOI relative clauses GEhU <- "ge'u" ; forethought medial marker GI <- "gi" ; logical connectives for bridi-tails GIhA <- "gi'e" / "gi'i" / "gi'o" / "gi'a" / "gi'u" ; attaches a sumti modifier to a sumti GOI <- "no'u" / "ne" / "po" / "goi" / "po'u" / "pe" / "po'e" ; pro-bridi GOhA <- "mo" / "nei" / "go'u" / "go'o" / "go'i" / "no'a" / "go'e" / "go'a" / "du" / "bu'a" / "bu'e" / "bu'i" / "co'e" ; GEK for tanru units, corresponds to JEKs GUhA <- "gu'e" / "gu'i" / "gu'o" / "gu'a" / "gu'u" ; sentence link I <- ".i" ; jeks; logical connectives within tanru JA <- "je" / "je'i" / "jo" / "ja" / "ju" ; modal conversion flag JAI <- "jai" ; flags an array operand JOhI <- "jo'i" ; non-logical connectives JOI <- "fa'u" / "pi'u" / "joi" / "ce'o" / "ce" / "jo'u" / "ku'a" / "jo'e" / "ju'e" ; left long scope marker KE <- "ke" ; right terminator for KE groups KEhE <- "ke'e" ; right terminator, NU abstractions KEI <- "kei" ; multiple utterance scope for tenses KI <- "ki" ; sumti anaphora KOhA <- "da" / "de" / "di" / "da'u" / "da'e" / "di'u" / "di'e" / "de'u" / "de'e" / "dei" / "do'i" / "ko" / "mi" / "mi'o" / "ma'a" / "mi'a" / "do" / "do'o" / "ko'a" / "fo'u" / "ko'e" / "ko'i" / "ko'o" / "ko'u" / "fo'a" / "fo'e" / "fo'i" / "fo'o" / "vo'a" / "vo'e" / "vo'i" / "vo'o" / "vo'u" / "ru" / "ri" / "ra" / "ta" / "tu" / "ti" / "zi'o" / "ke'a" / "ma" / "zu'i" / "zo'e" / "ce'u" ; right terminator for descriptions, etc. KU <- "ku" ; MEX forethought delimiter KUhE <- "ku'e" ; right terminator, NOI relative clauses KUhO <- "ku'o" ; name descriptors LA <- "la" / "lai" / "la'i" ; lerfu prefixes LAU <- "ce'a" / "lau" / "zai" / "tau" ; sumti qualifiers LAhE <- "tu'a" / "lu'a" / "lu'o" / "la'e" / "vu'i" / "lu'i" / "lu'e" ; sumti descriptors LE <- "le" / "lei" / "loi" / "lo" / "le'i" / "lo'i" / "le'e" / "lo'e" ; possibly ungrammatical text right quote LEhU <- "le'u" ; convert number to sumti LI <- "me'o" / "li" ; grammatical text right quote LIhU <- "li'u" ; elidable terminator for LI LOhO <- "lo'o" ; possibly ungrammatical text left quote LOhU <- "lo'u" ; grammatical text left quote LU <- "lu" ; LAhE close delimiter LUhU <- "lu'u" ; change MEX expressions to MEX operators MAhO <- "ma'o" ; change numbers to utterance ordinals MAI <- "mo'o" / "mai" ; converts a sumti into a tanru_unit ME <- "me" ; terminator for ME MEhU <- "me'u" ; change sumti to operand, inverse of LI MOhE <- "mo'e" ; motion tense marker MOhI <- "mo'i" ; change number to selbri MOI <- "mei" / "moi" / "si'e" / "cu'o" / "va'e" ; bridi negation NA <- "ja'a" / "na" ; attached to words to negate them NAI <- "nai" ; scalar negation NAhE <- "to'e" / "je'a" / "na'e" / "no'e" ; change a selbri into an operator NAhU <- "na'u" ; change selbri to operand; inverse of MOI NIhE <- "ni'e" ; new paragraph; change of subject NIhO <- "ni'o" / "no'i" ; attaches a subordinate clause to a sumti NOI <- "voi" / "noi" / "poi" ; abstraction NU <- "ni" / "du'u" / "si'o" / "nu" / "li'i" / "ka" / "jei" / "su'u" / "zu'o" / "mu'e" / "pu'u" / "za'i" ; change operator to selbri; inverse of MOhE NUhA <- "nu'a" ; marks the start of a termset NUhI <- "nu'i" ; marks the middle and end of a termset NUhU <- "nu'u" ; numbers and numeric punctuation PA <- "no" / "pa" / "re" / "ci" / "vo" / "mu" / "xa" / "ze" / "bi" / "so" / "dau" / "fei" / "gai" / "jau" / "rei" / "vai" / "pi" / "pi'e" / "fi'u" / "za'u" / "me'i" / "ni'u" / "ki'o" / "ce'i" / "ma'u" / "ra'e" / "da'a" / "so'a" / "ji'i" / "su'o" / "su'e" / "ro" / "rau" / "so'u" / "so'i" / "so'e" / "so'o" / "mo'a" / "du'e" / "te'o" / "ka'o" / "ci'i" / "tu'o" / "xo" / "pai" / "no'o" ; afterthought termset connective prefix PEhE <- "pe'e" ; forethought (Polish) flag PEhO <- "pe'o" ; directions in time PU <- "ba" / "pu" / "ca" ; flag for modified interpretation of GOhI RAhO <- "ra'o" ; converts number to extensional tense ROI <- "re'u" / "roi" SA <- "sa" ; metalinguistic eraser to the beginning of ; the current utterance ; conversions SE <- "se" / "te" / "ve" / "xe" ; metalinguistic bridi insert marker SEI <- "sei" / "ti'o" ; metalinguistic bridi end marker SEhU <- "se'u" ; metalinguistic single word eraser SI <- "si" ; reciprocal sumti marker SOI <- "soi" ; metalinguistic eraser of the entire text SU <- "su" ; tense interval properties TAhE <- "ru'i" / "ta'e" / "di'i" / "na'o" ; closing gap for MEX constructs TEhU <- "te'u" ; start compound lerfu TEI <- "tei" ; left discursive parenthesis TO <- "to'i" / "to" ; right discursive parenthesis TOI <- "toi" ; multiple utterance scope mark TUhE <- "tu'e" ; multiple utterance end scope mark TUhU <- "tu'u" ; attitudinals, observationals, discursives UI <- ".i'a" / ".ie" / ".a'e" / ".u'i" / ".i'o" / ".i'e" / ".a'a" / ".ia" / ".o'i" / ".o'e" / ".e'e" / ".oi" / ".uo" / ".e'i" / ".u'o" / ".au" / ".ua" / ".a'i" / ".i'u" / ".ii" / ".u'a" / ".ui" / ".a'o" / ".ai" / ".a'u" / ".iu" / ".ei" / ".o'o" / ".e'a" / ".uu" / ".o'a" / ".o'u" / ".u'u" / ".e'o" / ".io" / ".e'u" / ".ue" / ".i'i" / ".u'e" / "ba'a" / "ja'o" / "ca'e" / "su'a" / "ti'e" / "ka'u" / "se'o" / "za'a" / "pe'i" / "ru'a" / "ju'a" / "ta'o" / "ra'u" / "li'a" / "ba'u" / "mu'a" / "do'a" / "to'u" / "va'i" / "pa'e" / "zu'u" / "sa'e" / "la'a" / "ke'u" / "sa'u" / "da'i" / "je'u" / "sa'a" / "kau" / "ta'u" / "na'i" / "jo'a" / "bi'u" / "li'o" / "pau" / "mi'u" / "ku'i" / "ji'a" / "si'a" / "po'o" / "pe'a" / "ro'i" / "ro'e" / "ro'o" / "ro'u" / "ro'a" / "re'e" / "le'o" / "ju'o" / "fu'i" / "dai" / "ga'i" / "zo'o" / "be'u" / "ri'e" / "se'i" / "se'a" / "vu'e" / "ki'a" / "xu" / "ge'e" / "bu'o" ; distance in space-time VA <- "vi" / "va" / "vu" ; end simple bridi or bridi-tail VAU <- "vau" ; left MEX bracket VEI <- "vei" ; right MEX bracket VEhO <- "ve'o" ; MEX operator VUhU <- "ge'a" / "fu'u" / "pi'i" / "fe'i" / "vu'u" / "su'i" / "ju'u" / "gei" / "pa'i" / "fa'i" / "te'a" / "cu'a" / "va'a" / "ne'o" / "de'o" / "fe'a" / "sa'o" / "re'a" / "ri'o" / "sa'i" / "pi'a" / "si'i" ; space-time interval size VEhA <- "ve'u" / "ve'a" / "ve'i" / "ve'e" ; space-time dimensionality marker VIhA <- "vi'i" / "vi'a" / "vi'u" / "vi'e" VUhO <- "vu'o" ; glue between logically connected sumti ; and relative clauses ; subscripting operator XI <- "xi" ; hesitation Y <- ".y" ; event properties - inchoative, etc. ZAhO <- "co'i" / "pu'o" / "co'u" / "mo'u" / "ca'o" / "co'a" / "de'a" / "ba'o" / "di'a" / "za'o" ; time interval size tense ZEhA <- "ze'u" / "ze'a" / "ze'i" / "ze'e" ; lujvo glue ZEI <- "zei" ; time distance tense ZI <- "zu" / "za" / "zi" ; conjoins relative clauses ZIhE <- "zi'e" ; single word metalinguistic quote marker ZO <- "zo" ; delimited quote marker ZOI <- "zoi" / "la'o" ; prenex terminator (not elidable) ZOhU <- "zo'u"