User:Gleki/ei lo gerna cu jetnu lojbo: Difference between revisions

From Lojban
Jump to navigation Jump to search
(Created page with "; text<sub>0</sub> = : [NAI ...] [CMENE ... # | (indicators & free ...)] [joik-jek] text-1 id="b2" name="b2"[https://lojban.github.io/cll/21/2/#y2 ] ; text-1<sub>2</sub> = : [...")
 
No edit summary
Line 1: Line 1:
; text<sub>0</sub> =
: [NAI ...] [CMENE ... # | (indicators & free ...)] [joik-jek] text-1 id="b2" name="b2"[https://lojban.github.io/cll/21/2/#y2 ]
; text-1<sub>2</sub> =
: [(I [jek | joik] [[stag] BO] #) ... | NIhO ... #] [paragraphs] id="b4" name="b4"[https://lojban.github.io/cll/21/2/#y4 ]
; paragraphs<sub>4</sub> =
: paragraph [NIhO ... # paragraphs] id="b10" name="b10"[https://lojban.github.io/cll/21/2/#y10 ]
; paragraph<sub>10</sub> =
: (statement | fragment) [I # [statement | fragment]] ... id="b11" name="b11"[https://lojban.github.io/cll/21/2/#y11 ]
; statement<sub>11</sub> =
: statement-1
| prenex statement id="b12" name="b12"[https://lojban.github.io/cll/21/2/#y12 ]
; statement-1<sub>12</sub> =
: statement-2 [I joik-jek [statement-2]] ... id="b13" name="b13"[https://lojban.github.io/cll/21/2/#y13 ]
; statement-2<sub>13</sub> =
: statement-3 [I [jek | joik] [stag] BO # [statement-2]] id="b14" name="b14"[https://lojban.github.io/cll/21/2/#y14 ]
; statement-3<sub>14</sub> =
: sentence
| [tag] TUhE # text-1 /TUhU#/ id="b20" name="b20"[https://lojban.github.io/cll/21/2/#y20 ]
; fragment<sub>20</sub> =
: ek #
| gihek #
| quantifier
| NA #
| terms /VAU#/
| prenex
| relative-clauses
| links
| linkargs id="b30" name="b30"[https://lojban.github.io/cll/21/2/#y30 ]
; prenex<sub>30</sub> =
: terms ZOhU # id="b40" name="b40"[https://lojban.github.io/cll/21/2/#y40 ]
; sentence<sub>40</sub> =
: [terms [CU #]] bridi-tail id="b41" name="b41"[https://lojban.github.io/cll/21/2/#y41 ]
; subsentence<sub>41</sub> =
: sentence
| prenex subsentence id="b50" name="b50"[https://lojban.github.io/cll/21/2/#y50 ]
; bridi-tail<sub>50</sub> =
: bridi-tail-1 [gihek [stag] KE # bridi-tail /KEhE#/ tail-terms] id="b51" name="b51"[https://lojban.github.io/cll/21/2/#y51 ]
; bridi-tail-1<sub>51</sub> =
: bridi-tail-2 [gihek # bridi-tail-2 tail-terms] ... id="b52" name="b52"[https://lojban.github.io/cll/21/2/#y52 ]
; bridi-tail-2<sub>52</sub> =
: bridi-tail-3 [gihek [stag] BO # bridi-tail-2 tail-terms] id="b53" name="b53"[https://lojban.github.io/cll/21/2/#y53 ]
; bridi-tail-3<sub>53</sub> =
: selbri tail-terms
| gek-sentence id="b54" name="b54"[https://lojban.github.io/cll/21/2/#y54 ]
; gek-sentence<sub>54</sub> =
: gek subsentence gik subsentence tail-terms
| [tag] KE # gek-sentence /KEhE#/
| NA # gek-sentence id="b71" name="b71"[https://lojban.github.io/cll/21/2/#y71 ]
; tail-terms<sub>71</sub> =
: [terms] /VAU#/ id="b80" name="b80"[https://lojban.github.io/cll/21/2/#y80 ]
; terms<sub>80</sub> =
: terms-1 ... id="b81" name="b81"[https://lojban.github.io/cll/21/2/#y81 ]
; terms-1<sub>81</sub> =
: terms-2 [PEhE # joik-jek terms-2] ... id="b82" name="b82"[https://lojban.github.io/cll/21/2/#y82 ]
; terms-2<sub>82</sub> =
: term [CEhE # term] ... id="b83" name="b83"[https://lojban.github.io/cll/21/2/#y83 ]
; term<sub>83</sub> =
: sumti | (tag | FA #) (sumti
| /KU#/)
| termset
| NA KU # id="b85" name="b85"[https://lojban.github.io/cll/21/2/#y85 ]
; termset<sub>85</sub> =
: NUhI # gek terms /NUhU#/ gik terms /NUhU#/
| NUhI # terms /NUhU#/ id="b90" name="b90"[https://lojban.github.io/cll/21/2/#y90 ]
; sumti<sub>90</sub> =
: sumti-1 [VUhO # relative-clauses] id="b91" name="b91"[https://lojban.github.io/cll/21/2/#y91 ]
; sumti-1<sub>91</sub> =
: sumti-2 [(ek | joik) [stag] KE # sumti /KEhE#/] id="b92" name="b92"[https://lojban.github.io/cll/21/2/#y92 ]
; sumti-2<sub>92</sub> =
: sumti-3 [joik-ek sumti-3] ... id="b93" name="b93"[https://lojban.github.io/cll/21/2/#y93 ]
; sumti-3<sub>93</sub> =
: sumti-4 [(ek
| joik) [stag] BO # sumti-3] id="b94" name="b94"[https://lojban.github.io/cll/21/2/#y94 ]
; sumti-4<sub>94</sub> =
: sumti-5
| gek sumti gik sumti-4 id="b95" name="b95"[https://lojban.github.io/cll/21/2/#y95 ]
; sumti-5<sub>95</sub> =
: [quantifier] sumti-6 [relative-clauses]
| quantifier selbri /KU#/ [relative-clauses] id="b97" name="b97"[https://lojban.github.io/cll/21/2/#y97 ]
; sumti-6<sub>97</sub> =
: (LAhE # | NAhE BO #) [relative-clauses] sumti /LUhU#/
| KOhA #
| lerfu-string /BOI#/
| LA # [relative-clauses] CMENE ... #
| (LA | LE) # sumti-tail /KU#/
| LI # mex /LOhO#/
| ZO any-word #
| LU text /LIhU#/
| LOhU any-word ... LEhU #
| ZOI any-word anything any-word # id="b111" name="b111"[https://lojban.github.io/cll/21/2/#y111 ]
; sumti-tail<sub>111</sub> =
: [sumti-6 [relative-clauses]] sumti-tail-1
| relative-clauses sumti-tail-1 id="b112" name="b112"[https://lojban.github.io/cll/21/2/#y112 ]
; sumti-tail-1<sub>112</sub> =
: [quantifier] selbri [relative-clauses]
| quantifier sumti id="b121" name="b121"[https://lojban.github.io/cll/21/2/#y121 ]
; relative-clauses<sub>121</sub> =
: relative-clause [ZIhE # relative-clause] ... id="b122" name="b122"[https://lojban.github.io/cll/21/2/#y122 ]
; relative-clause<sub>122</sub> =
: GOI # term /GEhU#/
| NOI # subsentence /KUhO#/ id="b130" name="b130"[https://lojban.github.io/cll/21/2/#y130 ]
; selbri<sub>130</sub> =
: [tag] selbri-1 id="b131" name="b131"[https://lojban.github.io/cll/21/2/#y131 ]
; selbri-1<sub>131</sub> =
: selbri-2
| NA # selbri id="b132" name="b132"[https://lojban.github.io/cll/21/2/#y132 ]
; selbri-2<sub>132</sub> =
: selbri-3 [CO # selbri-2] id="b133" name="b133"[https://lojban.github.io/cll/21/2/#y133 ]
; selbri-3<sub>133</sub> =
: selbri-4 ... id="b134" name="b134"[https://lojban.github.io/cll/21/2/#y134 ]
; selbri-4<sub>134</sub> =
: selbri-5 [joik-jek selbri-5 | joik [stag] KE # selbri-3 /KEhE#/] ... id="b135" name="b135"[https://lojban.github.io/cll/21/2/#y135 ]
; selbri-5<sub>135</sub> =
: selbri-6 [(jek | joik) [stag] BO # selbri-5] id="b136" name="b136"[https://lojban.github.io/cll/21/2/#y136 ]
; selbri-6<sub>136</sub> =
: tanru-unit [BO # selbri-6]
| [NAhE #] guhek selbri gik selbri-6 id="b150" name="b150"[https://lojban.github.io/cll/21/2/#y150 ]
; tanru-unit<sub>150</sub> =
: tanru-unit-1 [CEI # tanru-unit-1] ... id="b151" name="b151"[https://lojban.github.io/cll/21/2/#y151 ]
; tanru-unit-1<sub>151</sub> =
: tanru-unit-2 [linkargs] id="b152" name="b152"[https://lojban.github.io/cll/21/2/#y152 ]
; tanru-unit-2<sub>152</sub> =
: BRIVLA #
| GOhA [RAhO] #
| KE # selbri-3 /KEhE#/
| ME # sumti /MEhU#/ [MOI #] | (number
| lerfu-string) MOI #
| NUhA # mex-operator
| SE # tanru-unit-2
| JAI # [tag] tanru-unit-2
| any-word (ZEI any-word) ...
| NAhE # tanru-unit-2
| NU [NAI] # [joik-jek NU [NAI] #] ... subsentence /KEI#/ id="b160" name="b160"[https://lojban.github.io/cll/21/2/#y160 ]
; linkargs<sub>160</sub> =
: BE # term [links] /BEhO#/ id="b161" name="b161"[https://lojban.github.io/cll/21/2/#y161 ]
; links<sub>161</sub> =
: BEI # term [links] id="b300" name="b300"[https://lojban.github.io/cll/21/2/#y300 ]
; quantifier<sub>300</sub> =
: number /BOI#/
| VEI # mex /VEhO#/ id="b310" name="b310"[https://lojban.github.io/cll/21/2/#y310 ]
; mex<sub>310</sub> =
: mex-1 [operator mex-1] ...
| FUhA # rp-expression id="b311" name="b311"[https://lojban.github.io/cll/21/2/#y311 ]
; mex-1<sub>311</sub> =
: mex-2 [BIhE # operator mex-1] id="b312" name="b312"[https://lojban.github.io/cll/21/2/#y312 ]
; mex-2<sub>312</sub> =
: operand
| [PEhO #] operator mex-2 ... /KUhE#/ id="b330" name="b330"[https://lojban.github.io/cll/21/2/#y330 ]
; rp-expression<sub>330</sub> =
: rp-operand rp-operand operator id="b332" name="b332"[https://lojban.github.io/cll/21/2/#y332 ]
; rp-operand<sub>332</sub> =
: operand
| rp-expression id="b370" name="b370"[https://lojban.github.io/cll/21/2/#y370 ]
; operator<sub>370</sub> =
: operator-1 [joik-jek operator-1 | joik [stag] KE # operator /KEhE#/] ... id="b371" name="b371"[https://lojban.github.io/cll/21/2/#y371 ]
; operator-1<sub>371</sub> =
: operator-2
| guhek operator-1 gik operator-2
| operator-2 (jek | joik) [stag] BO # operator-1 id="b372" name="b372"[https://lojban.github.io/cll/21/2/#y372 ]
; operator-2<sub>372</sub> =
: mex-operator
| KE # operator /KEhE#/ id="b374" name="b374"[https://lojban.github.io/cll/21/2/#y374 ]
; mex-operator<sub>374</sub> =
: SE # mex-operator
| NAhE # mex-operator
| MAhO # mex /TEhU#/
| NAhU # selbri /TEhU#/
| VUhU # id="b381" name="b381"[https://lojban.github.io/cll/21/2/#y381 ]
; operand<sub>381</sub> =
: operand-1 [(ek | joik) [stag] KE # operand /KEhE#/] id="b382" name="b382"[https://lojban.github.io/cll/21/2/#y382 ]
; operand-1<sub>382</sub> =
: operand-2 [joik-ek operand-2] ... id="b383" name="b383"[https://lojban.github.io/cll/21/2/#y383 ]
; operand-2<sub>383</sub> =
: operand-3 [(ek | joik) [stag] BO # operand-2] id="b385" name="b385"[https://lojban.github.io/cll/21/2/#y385 ]
; operand-3<sub>385</sub> =
: quantifier
| lerfu-string /BOI#/
| NIhE # selbri /TEhU#/
| MOhE # sumti /TEhU#/
| JOhI # mex-2 ... /TEhU#/
| gek operand gik operand-3
| (LAhE # | NAhE BO #) operand /LUhU#/ id="b812" name="b812"[https://lojban.github.io/cll/21/2/#y812 ]
; number<sub>812</sub> =
: PA [PA | lerfu-word] ... id="b817" name="b817"[https://lojban.github.io/cll/21/2/#y817 ]
; lerfu-string<sub>817</sub> =
: lerfu-word [PA | lerfu-word] ... id="b987" name="b987"[https://lojban.github.io/cll/21/2/#y987 ]
; lerfu-word<sub>987</sub> =
: BY
| any-word BU
| LAU lerfu-word
| TEI lerfu-string FOI id="b802" name="b802"[https://lojban.github.io/cll/21/2/#y802 ]
; ek<sub>802</sub> =
: [NA] [SE] A [NAI] id="b818" name="b818"[https://lojban.github.io/cll/21/2/#y818 ]
; gihek<sub>818</sub> =
: [NA] [SE] GIhA [NAI] id="b805" name="b805"[https://lojban.github.io/cll/21/2/#y805 ]
; jek<sub>805</sub> =
: [NA] [SE] JA [NAI] id="b806" name="b806"[https://lojban.github.io/cll/21/2/#y806 ]
; joik<sub>806</sub> =
: [SE] JOI [NAI]
| interval
| GAhO interval GAhO id="b932" name="b932"[https://lojban.github.io/cll/21/2/#y932 ]
; interval<sub>932</sub> =
: [SE] BIhI [NAI] id="b421" name="b421"[https://lojban.github.io/cll/21/2/#y421 ]
; joik-ek<sub>421</sub> =
: joik #
| ek # id="b422" name="b422"[https://lojban.github.io/cll/21/2/#y422 ]
; joik-jek<sub>422</sub> =
: joik #
| jek # id="b807" name="b807"[https://lojban.github.io/cll/21/2/#y807 ]
; gek<sub>807</sub> =
: [SE] GA [NAI] #
| joik GI #
| stag gik id="b808" name="b808"[https://lojban.github.io/cll/21/2/#y808 ]
; guhek<sub>808</sub> =
: [SE] GUhA [NAI] # id="b816" name="b816"[https://lojban.github.io/cll/21/2/#y816 ]
; gik<sub>816</sub> =
: GI [NAI] # id="b491" name="b491"[https://lojban.github.io/cll/21/2/#y491 ]
; tag<sub>491</sub> =
: tense-modal [joik-jek tense-modal] ... id="b971" name="b971"[https://lojban.github.io/cll/21/2/#y971 ]
; stag<sub>971</sub> =
: simple-tense-modal [(jek | joik) simple-tense-modal] ... id="b815" name="b815"[https://lojban.github.io/cll/21/2/#y815 ]
; tense-modal<sub>815</sub> =
: simple-tense-modal #
| FIhO # selbri /FEhU#/ id="b972" name="b972"[https://lojban.github.io/cll/21/2/#y972 ]
; simple-tense-modal<sub>972</sub> =
: [NAhE] [SE] BAI [NAI] [KI]
| [NAhE] (time [space]
| space [time]) & CAhA [KI]
| KI
| CUhE id="b1030" name="b1030"[https://lojban.github.io/cll/21/2/#y1030 ]
; time<sub>1030</sub> =
: ZI & time-offset ... & ZEhA [PU [NAI]] & interval-property ... id="b1033" name="b1033"[https://lojban.github.io/cll/21/2/#y1033 ]
; time-offset<sub>1033</sub> =
: PU [NAI] [ZI] id="b1040" name="b1040"[https://lojban.github.io/cll/21/2/#y1040 ]
; space<sub>1040</sub> =
: VA & space-offset ... & space-interval & (MOhI space-offset) id="b1045" name="b1045"[https://lojban.github.io/cll/21/2/#y1045 ]
; space-offset<sub>1045</sub> =
: FAhA [NAI] [VA] id="b1046" name="b1046"[https://lojban.github.io/cll/21/2/#y1046 ]
; space-interval<sub>1046</sub> =
: ((VEhA & VIhA) [FAhA [NAI]]) & space-int-props id="b1049" name="b1049"[https://lojban.github.io/cll/21/2/#y1049 ]
; space-int-props<sub>1049</sub> =
: (FEhE interval-property) ... id="b1051" name="b1051"[https://lojban.github.io/cll/21/2/#y1051 ]
; interval-property<sub>1051</sub> =
: number ROI [NAI]
| TAhE [NAI]
| ZAhO [NAI] id="b32" name="b32"[https://lojban.github.io/cll/21/2/#y32 ]
; free<sub>32</sub> =
: SEI # [terms [CU #]] selbri /SEhU/
| SOI # sumti [sumti] /SEhU/
| vocative [relative-clauses] selbri [relative-clauses] /DOhU/
| vocative [relative-clauses] CMENE ... # [relative-clauses] /DOhU/
| vocative [sumti] /DOhU/
| (number | lerfu-string) MAI
| TO text /TOI/
| XI # (number | lerfu-string) /BOI/
| XI # VEI # mex /VEhO/ id="b415" name="b415"[https://lojban.github.io/cll/21/2/#y415 ]
; vocative<sub>415</sub> =
: (COI [NAI]) ... & DOI id="b411" name="b411"[https://lojban.github.io/cll/21/2/#y411 ]
; indicators<sub>411</sub> =
: [FUhE] indicator ... id="b413" name="b413"[https://lojban.github.io/cll/21/2/#y413 ]
; indicator<sub>413</sub> =
: (UI | CAI) [NAI]
| Y
| DAhO
| FUhO


The following rules are non-formal:
* Names in lower case are grammatical constructs.
* Names in UPPER CASE are selma'o (lexeme) names, and are terminals.
* Concatenation is expressed by juxtaposition with no operator symbol.
* "|" represents alternation (choice).
* "()?" represents an optional element.
* "&" represents "and/or" (“A & B” is the same as “A | B | A B”).
* "..." represents optional repetition of the construct to the left. Left-grouping is implied; right-grouping is shown by explicit self-referential recursion with no “...”
* "()" serves to indicate the grouping of the other operators. Otherwise, “...” binds closer than "&", which binds closer than "|".
* "#" is shorthand for “[free ...]”, a construct which appears in many places.
* "//" encloses an elidable terminator, which may be omitted (without change of meaning) if no grammatical ambiguity results.


; id="b1100" name="b1100"[https://lojban.github.io/cll/21/2/#y1100 ]word<sub>1100</sub> =
 
: [BAhE] any-word [indicators]
; text<sub>0</sub> : (NAI ...)? (CMENE ... # | (indicators & free ...))? (joik-jek)? text-1
; any-word =
; text-1<sub>2</sub> : ((I (jek | joik)? ((stag)? BO)? #) ... | NIhO ... #)? (paragraphs)?
: “any single word (no compound cmavo)”
; paragraphs<sub>4</sub> : paragraph (NIhO ... # paragraphs)?
; anything =
; paragraph<sub>10</sub> : (statement | fragment) (I # (statement | fragment)?)? ...
: “any text at all, whether Lojban or not” id="b1101" name="b1101"[https://lojban.github.io/cll/21/2/#y1101 ]
; statement<sub>11</sub> : statement-1 prenex statement
; null<sub>1101</sub> =
; statement-1<sub>12</sub> : statement-2 (I joik-jek (statement-2)?)? ...
: any-word SI
; statement-2<sub>13</sub> : statement-3 (I (jek | joik)? (stag)? BO # (statement-2)?)?
| utterance SA
; statement-3<sub>14</sub> : sentence (tag)? TUhE # text-1 /TUhU#/
| text SU
; fragment<sub>20</sub> : ek # gihek # quantifier NA # terms /VAU#/ prenex relative-clauses links linkargs
; prenex<sub>30</sub> : terms ZOhU #
; sentence<sub>40</sub> : (terms (CU #)?)? bridi-tail
; subsentence<sub>41</sub> : sentence prenex subsentence
; bridi-tail<sub>50</sub> : bridi-tail-1 (gihek (stag)? KE # bridi-tail /KEhE#/ tail-terms)?
; bridi-tail-1<sub>51</sub> : bridi-tail-2 (gihek # bridi-tail-2 tail-terms)? ...
; bridi-tail-2<sub>52</sub> : bridi-tail-3 (gihek (stag)? BO # bridi-tail-2 tail-terms)?
; bridi-tail-3<sub>53</sub> : selbri tail-terms gek-sentence
; gek-sentence<sub>54</sub> : gek subsentence gik subsentence tail-terms (tag)? KE # gek-sentence /KEhE#/ NA # gek-sentence
; tail-terms<sub>71</sub> : (terms)? /VAU#/
; terms<sub>80</sub> : terms-1 ...
; terms-1<sub>81</sub> : terms-2 (PEhE # joik-jek terms-2)? ...
; terms-2<sub>82</sub> : term (CEhE # term)? ...
; term<sub>83</sub> : sumti | (tag | FA #) (sumti /KU#/) termset NA KU #
; termset<sub>85</sub> : NUhI # gek terms /NUhU#/ gik terms /NUhU#/ NUhI # terms /NUhU#/
; sumti<sub>90</sub> : sumti-1 (VUhO # relative-clauses)?
; sumti-1<sub>91</sub> : sumti-2 ((ek | joik) (stag)? KE # sumti /KEhE#/)?
; sumti-2<sub>92</sub> : sumti-3 (joik-ek sumti-3)? ...
; sumti-3<sub>93</sub> : sumti-4 ((ek joik) (stag)? BO # sumti-3)?
; sumti-4<sub>94</sub> : sumti-5 gek sumti gik sumti-4
; sumti-5<sub>95</sub> : (quantifier)? sumti-6 (relative-clauses)? quantifier selbri /KU#/ (relative-clauses)?
; sumti-6<sub>97</sub> : (LAhE # | NAhE BO #) (relative-clauses)? sumti /LUhU#/ KOhA # lerfu-string /BOI#/ LA # (relative-clauses)? CMENE ... # (LA | LE) # sumti-tail /KU#/ LI # mex /LOhO#/ ZO any-word # LU text /LIhU#/ LOhU any-word ... LEhU # ZOI any-word anything any-word #
; sumti-tail<sub>111</sub> : (sumti-6 (relative-clauses)?)? sumti-tail-1 relative-clauses sumti-tail-1
; sumti-tail-1<sub>112</sub> : (quantifier)? selbri (relative-clauses)? quantifier sumti
; relative-clauses<sub>121</sub> : relative-clause (ZIhE # relative-clause)? ...
; relative-clause<sub>122</sub> : GOI # term /GEhU#/ NOI # subsentence /KUhO#/
; selbri<sub>130</sub> : (tag)? selbri-1
; selbri-1<sub>131</sub> : selbri-2 NA # selbri
; selbri-2<sub>132</sub> : selbri-3 (CO # selbri-2)?
; selbri-3<sub>133</sub> : selbri-4 ...
; selbri-4<sub>134</sub> : selbri-5 (joik-jek selbri-5 | joik (stag)? KE # selbri-3 /KEhE#/)? ...
; selbri-5<sub>135</sub> : selbri-6 ((jek | joik) (stag)? BO # selbri-5)?
; selbri-6<sub>136</sub> : tanru-unit (BO # selbri-6)? (NAhE #)? guhek selbri gik selbri-6
; tanru-unit<sub>150</sub> : tanru-unit-1 (CEI # tanru-unit-1)? ...
; tanru-unit-1<sub>151</sub> : tanru-unit-2 (linkargs)?
; tanru-unit-2<sub>152</sub> : BRIVLA # GOhA (RAhO)? # KE # selbri-3 /KEhE#/ ME # sumti /MEhU#/ (MOI #)? | (number lerfu-string) MOI # NUhA # mex-operator SE # tanru-unit-2 JAI # (tag)? tanru-unit-2 any-word (ZEI any-word) ... NAhE # tanru-unit-2 NU (NAI)? # (joik-jek NU (NAI)? #)? ... subsentence /KEI#/
; linkargs<sub>160</sub> : BE # term (links)? /BEhO#/
; links<sub>161</sub> : BEI # term (links)?
; quantifier<sub>300</sub> : number /BOI#/ VEI # mex /VEhO#/
; mex<sub>310</sub> : mex-1 (operator mex-1)? ... FUhA # rp-expression
; mex-1<sub>311</sub> : mex-2 (BIhE # operator mex-1)?
; mex-2<sub>312</sub> : operand (PEhO #)? operator mex-2 ... /KUhE#/
; rp-expression<sub>330</sub> : rp-operand rp-operand operator
; rp-operand<sub>332</sub> : operand rp-expression
; operator<sub>370</sub> : operator-1 (joik-jek operator-1 | joik (stag)? KE # operator /KEhE#/)? ...
; operator-1<sub>371</sub> : operator-2 guhek operator-1 gik operator-2 operator-2 (jek | joik) (stag)? BO # operator-1
; operator-2<sub>372</sub> : mex-operator KE # operator /KEhE#/
; mex-operator<sub>374</sub> : SE # mex-operator NAhE # mex-operator MAhO # mex /TEhU#/ NAhU # selbri /TEhU#/ VUhU #
; operand<sub>381</sub> : operand-1 ((ek | joik) (stag)? KE # operand /KEhE#/)?
; operand-1<sub>382</sub> : operand-2 (joik-ek operand-2)? ...
; operand-2<sub>383</sub> : operand-3 ((ek | joik) (stag)? BO # operand-2)?
; operand-3<sub>385</sub> : quantifier lerfu-string /BOI#/ NIhE # selbri /TEhU#/ MOhE # sumti /TEhU#/ JOhI # mex-2 ... /TEhU#/ gek operand gik operand-3 (LAhE # | NAhE BO #) operand /LUhU#/
; number<sub>812</sub> : PA (PA | lerfu-word)? ...
; lerfu-string<sub>817</sub> : lerfu-word (PA | lerfu-word)? ...
; lerfu-word<sub>987</sub> : BY any-word BU LAU lerfu-word TEI lerfu-string FOI
; ek<sub>802</sub> : (NA)? (SE)? A (NAI)?
; gihek<sub>818</sub> : (NA)? (SE)? GIhA (NAI)?
; jek<sub>805</sub> : (NA)? (SE)? JA (NAI)?
; joik<sub>806</sub> : (SE)? JOI (NAI)? interval GAhO interval GAhO
; interval<sub>932</sub> : (SE)? BIhI (NAI)?
; joik-ek<sub>421</sub> : joik # ek #
; joik-jek<sub>422</sub> : joik # jek #
; gek<sub>807</sub> : (SE)? GA (NAI)? # joik GI # stag gik
; guhek<sub>808</sub> : (SE)? GUhA (NAI)? #
; gik<sub>816</sub> : GI (NAI)? #
; tag<sub>491</sub> : tense-modal (joik-jek tense-modal)? ...
; stag<sub>971</sub> : simple-tense-modal ((jek | joik) simple-tense-modal)? ...
; tense-modal<sub>815</sub> : simple-tense-modal # FIhO # selbri /FEhU#/
; simple-tense-modal<sub>972</sub> : (NAhE)? (SE)? BAI (NAI)? (KI)? (NAhE)? (time (space)? space (time)?) & CAhA (KI)? KI CUhE
; time<sub>1030</sub> : ZI & time-offset ... & ZEhA (PU (NAI)?)? & interval-property ...
; time-offset<sub>1033</sub> : PU (NAI)? (ZI)?
; space<sub>1040</sub> : VA & space-offset ... & space-interval & (MOhI space-offset)
; space-offset<sub>1045</sub> : FAhA (NAI)? (VA)?
; space-interval<sub>1046</sub> : ((VEhA & VIhA) (FAhA (NAI)?)?) & space-int-props
; space-int-props<sub>1049</sub> : (FEhE interval-property) ...
; interval-property<sub>1051</sub> : number ROI (NAI)? TAhE (NAI)? ZAhO (NAI)?
; free<sub>32</sub> : SEI # (terms (CU #)?)? selbri /SEhU/ SOI # sumti (sumti)? /SEhU/ vocative (relative-clauses)? selbri (relative-clauses)? /DOhU/ vocative (relative-clauses)? CMENE ... # (relative-clauses)? /DOhU/ vocative (sumti)? /DOhU/ (number | lerfu-string) MAI TO text /TOI/ XI # (number | lerfu-string) /BOI/ XI # VEI # mex /VEhO/
; vocative<sub>415</sub> : (COI (NAI)?) ... & DOI
; indicators<sub>411</sub> : (FUhE)? indicator ...
; indicator<sub>413</sub> : (UI | CAI) (NAI)? Y DAhO FUhO
== The following rules are non-formal ==
; word<sub>1100</sub> : (BAhE)? any-word (indicators)?
; any-word : “any single word (no compound cmavo)”
; anything : “any text at all, whether Lojban or not”
; null<sub>1101</sub> : any-word SI utterance SA text SU

Revision as of 12:48, 9 October 2016

  • Names in lower case are grammatical constructs.
  • Names in UPPER CASE are selma'o (lexeme) names, and are terminals.
  • Concatenation is expressed by juxtaposition with no operator symbol.
  • "|" represents alternation (choice).
  • "()?" represents an optional element.
  • "&" represents "and/or" (“A & B” is the same as “A | B | A B”).
  • "..." represents optional repetition of the construct to the left. Left-grouping is implied; right-grouping is shown by explicit self-referential recursion with no “...”
  • "()" serves to indicate the grouping of the other operators. Otherwise, “...” binds closer than "&", which binds closer than "|".
  • "#" is shorthand for “[free ...]”, a construct which appears in many places.
  • "//" encloses an elidable terminator, which may be omitted (without change of meaning) if no grammatical ambiguity results.


text0
(NAI ...)? (CMENE ... # | (indicators & free ...))? (joik-jek)? text-1
text-12
((I (jek | joik)? ((stag)? BO)? #) ... | NIhO ... #)? (paragraphs)?
paragraphs4
paragraph (NIhO ... # paragraphs)?
paragraph10
(statement | fragment) (I # (statement | fragment)?)? ...
statement11
statement-1 prenex statement
statement-112
statement-2 (I joik-jek (statement-2)?)? ...
statement-213
statement-3 (I (jek | joik)? (stag)? BO # (statement-2)?)?
statement-314
sentence (tag)? TUhE # text-1 /TUhU#/
fragment20
ek # gihek # quantifier NA # terms /VAU#/ prenex relative-clauses links linkargs
prenex30
terms ZOhU #
sentence40
(terms (CU #)?)? bridi-tail
subsentence41
sentence prenex subsentence
bridi-tail50
bridi-tail-1 (gihek (stag)? KE # bridi-tail /KEhE#/ tail-terms)?
bridi-tail-151
bridi-tail-2 (gihek # bridi-tail-2 tail-terms)? ...
bridi-tail-252
bridi-tail-3 (gihek (stag)? BO # bridi-tail-2 tail-terms)?
bridi-tail-353
selbri tail-terms gek-sentence
gek-sentence54
gek subsentence gik subsentence tail-terms (tag)? KE # gek-sentence /KEhE#/ NA # gek-sentence
tail-terms71
(terms)? /VAU#/
terms80
terms-1 ...
terms-181
terms-2 (PEhE # joik-jek terms-2)? ...
terms-282
term (CEhE # term)? ...
term83
sumti | (tag | FA #) (sumti /KU#/) termset NA KU #
termset85
NUhI # gek terms /NUhU#/ gik terms /NUhU#/ NUhI # terms /NUhU#/
sumti90
sumti-1 (VUhO # relative-clauses)?
sumti-191
sumti-2 ((ek | joik) (stag)? KE # sumti /KEhE#/)?
sumti-292
sumti-3 (joik-ek sumti-3)? ...
sumti-393
sumti-4 ((ek joik) (stag)? BO # sumti-3)?
sumti-494
sumti-5 gek sumti gik sumti-4
sumti-595
(quantifier)? sumti-6 (relative-clauses)? quantifier selbri /KU#/ (relative-clauses)?
sumti-697
(LAhE # | NAhE BO #) (relative-clauses)? sumti /LUhU#/ KOhA # lerfu-string /BOI#/ LA # (relative-clauses)? CMENE ... # (LA | LE) # sumti-tail /KU#/ LI # mex /LOhO#/ ZO any-word # LU text /LIhU#/ LOhU any-word ... LEhU # ZOI any-word anything any-word #
sumti-tail111
(sumti-6 (relative-clauses)?)? sumti-tail-1 relative-clauses sumti-tail-1
sumti-tail-1112
(quantifier)? selbri (relative-clauses)? quantifier sumti
relative-clauses121
relative-clause (ZIhE # relative-clause)? ...
relative-clause122
GOI # term /GEhU#/ NOI # subsentence /KUhO#/
selbri130
(tag)? selbri-1
selbri-1131
selbri-2 NA # selbri
selbri-2132
selbri-3 (CO # selbri-2)?
selbri-3133
selbri-4 ...
selbri-4134
selbri-5 (joik-jek selbri-5 | joik (stag)? KE # selbri-3 /KEhE#/)? ...
selbri-5135
selbri-6 ((jek | joik) (stag)? BO # selbri-5)?
selbri-6136
tanru-unit (BO # selbri-6)? (NAhE #)? guhek selbri gik selbri-6
tanru-unit150
tanru-unit-1 (CEI # tanru-unit-1)? ...
tanru-unit-1151
tanru-unit-2 (linkargs)?
tanru-unit-2152
BRIVLA # GOhA (RAhO)? # KE # selbri-3 /KEhE#/ ME # sumti /MEhU#/ (MOI #)? | (number lerfu-string) MOI # NUhA # mex-operator SE # tanru-unit-2 JAI # (tag)? tanru-unit-2 any-word (ZEI any-word) ... NAhE # tanru-unit-2 NU (NAI)? # (joik-jek NU (NAI)? #)? ... subsentence /KEI#/
linkargs160
BE # term (links)? /BEhO#/
links161
BEI # term (links)?
quantifier300
number /BOI#/ VEI # mex /VEhO#/
mex310
mex-1 (operator mex-1)? ... FUhA # rp-expression
mex-1311
mex-2 (BIhE # operator mex-1)?
mex-2312
operand (PEhO #)? operator mex-2 ... /KUhE#/
rp-expression330
rp-operand rp-operand operator
rp-operand332
operand rp-expression
operator370
operator-1 (joik-jek operator-1 | joik (stag)? KE # operator /KEhE#/)? ...
operator-1371
operator-2 guhek operator-1 gik operator-2 operator-2 (jek | joik) (stag)? BO # operator-1
operator-2372
mex-operator KE # operator /KEhE#/
mex-operator374
SE # mex-operator NAhE # mex-operator MAhO # mex /TEhU#/ NAhU # selbri /TEhU#/ VUhU #
operand381
operand-1 ((ek | joik) (stag)? KE # operand /KEhE#/)?
operand-1382
operand-2 (joik-ek operand-2)? ...
operand-2383
operand-3 ((ek | joik) (stag)? BO # operand-2)?
operand-3385
quantifier lerfu-string /BOI#/ NIhE # selbri /TEhU#/ MOhE # sumti /TEhU#/ JOhI # mex-2 ... /TEhU#/ gek operand gik operand-3 (LAhE # | NAhE BO #) operand /LUhU#/
number812
PA (PA | lerfu-word)? ...
lerfu-string817
lerfu-word (PA | lerfu-word)? ...
lerfu-word987
BY any-word BU LAU lerfu-word TEI lerfu-string FOI
ek802
(NA)? (SE)? A (NAI)?
gihek818
(NA)? (SE)? GIhA (NAI)?
jek805
(NA)? (SE)? JA (NAI)?
joik806
(SE)? JOI (NAI)? interval GAhO interval GAhO
interval932
(SE)? BIhI (NAI)?
joik-ek421
joik # ek #
joik-jek422
joik # jek #
gek807
(SE)? GA (NAI)? # joik GI # stag gik
guhek808
(SE)? GUhA (NAI)? #
gik816
GI (NAI)? #
tag491
tense-modal (joik-jek tense-modal)? ...
stag971
simple-tense-modal ((jek | joik) simple-tense-modal)? ...
tense-modal815
simple-tense-modal # FIhO # selbri /FEhU#/
simple-tense-modal972
(NAhE)? (SE)? BAI (NAI)? (KI)? (NAhE)? (time (space)? space (time)?) & CAhA (KI)? KI CUhE
time1030
ZI & time-offset ... & ZEhA (PU (NAI)?)? & interval-property ...
time-offset1033
PU (NAI)? (ZI)?
space1040
VA & space-offset ... & space-interval & (MOhI space-offset)
space-offset1045
FAhA (NAI)? (VA)?
space-interval1046
((VEhA & VIhA) (FAhA (NAI)?)?) & space-int-props
space-int-props1049
(FEhE interval-property) ...
interval-property1051
number ROI (NAI)? TAhE (NAI)? ZAhO (NAI)?
free32
SEI # (terms (CU #)?)? selbri /SEhU/ SOI # sumti (sumti)? /SEhU/ vocative (relative-clauses)? selbri (relative-clauses)? /DOhU/ vocative (relative-clauses)? CMENE ... # (relative-clauses)? /DOhU/ vocative (sumti)? /DOhU/ (number | lerfu-string) MAI TO text /TOI/ XI # (number | lerfu-string) /BOI/ XI # VEI # mex /VEhO/
vocative415
(COI (NAI)?) ... & DOI
indicators411
(FUhE)? indicator ...
indicator413
(UI | CAI) (NAI)? Y DAhO FUhO

The following rules are non-formal

word1100
(BAhE)? any-word (indicators)?
any-word
“any single word (no compound cmavo)”
anything
“any text at all, whether Lojban or not”
null1101
any-word SI utterance SA text SU