User:Gleki/ei lo gerna cu jetnu lojbo: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
* Names in UPPER CASE are selma'o (lexeme) names, and are terminals. | * Names in UPPER CASE are selma'o (lexeme) names, and are terminals. | ||
* Concatenation is expressed by juxtaposition with no operator symbol. | * Concatenation is expressed by juxtaposition with no operator symbol. | ||
* "|" represents alternation (choice). | * "<nowiki>|</nowiki>" represents alternation (choice). | ||
* "()?" represents an optional element. | * "()?" represents an optional element. | ||
* "&" represents "and/or" (“A & B” is the same as “A | B | A B”). | * "&" represents "and/or" (“A & B” is the same as “A <nowiki>|</nowiki> B <nowiki>|</nowiki> 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 “+” | * "+" represents optional repetition of the construct to the left. Left-grouping is implied; right-grouping is shown by explicit self-referential recursion with no “+” | ||
* "*" represents optional repetition of the construct to the left starting from 0 occurrences. Left-grouping is implied; right-grouping is shown by explicit self-referential recursion with no “*” | * "*" represents optional repetition of the construct to the left starting from 0 occurrences. 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 "|". | * "()" serves to indicate the grouping of the other operators. Otherwise, “+” binds closer than "&", which binds closer than "<nowiki>|</nowiki>". | ||
* "#" is shorthand for “[free+]”, a construct which appears in many places. | * "#" 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. | * "//" encloses an elidable terminator, which may be omitted (without change of meaning) if no grammatical ambiguity results. | ||
<tab head=top> | <tab head=top class=wikitable> | ||
uenzi text<sub>0</sub> : (NAI+)? (CMENE+ # | (indicators & free+))? (joik-jek)? text-1 | uenzi text<sub>0</sub> : (NAI+)? (CMENE+ # <nowiki>|</nowiki> (indicators & free+))? (joik-jek)? text-1 | ||
text-1<sub>2</sub> : ((I (jek | joik)? ((stag)? BO)? #)+ | NIhO+ #)? (paragraphs)? | text-1<sub>2</sub> : ((I (jek <nowiki>|</nowiki> joik)? ((stag)? BO)? #)+ <nowiki>|</nowiki> NIhO+ #)? (paragraphs)? | ||
paragraphs<sub>4</sub> : paragraph (NIhO+ # paragraphs)? | paragraphs<sub>4</sub> : paragraph (NIhO+ # paragraphs)? | ||
paragraph<sub>10</sub> : (statement | fragment) (I # (statement | fragment)?)* | paragraph<sub>10</sub> : (statement <nowiki>|</nowiki> fragment) (I # (statement <nowiki>|</nowiki> fragment)?)* | ||
jufra / briju'a? statement<sub>11</sub> : statement-1 | prenex statement | jufra / briju'a? statement<sub>11</sub> : statement-1 <nowiki>|</nowiki> prenex statement | ||
statement-1<sub>12</sub> : statement-2 (I joik-jek (statement-2)?)* | statement-1<sub>12</sub> : statement-2 (I joik-jek (statement-2)?)* | ||
statement-2<sub>13</sub> : statement-3 (I (jek | joik)? (stag)? BO # (statement-2)?)? | statement-2<sub>13</sub> : statement-3 (I (jek <nowiki>|</nowiki> joik)? (stag)? BO # (statement-2)?)? | ||
statement-3<sub>14</sub> : sentence | (tag)? TUhE # text-1 /TUhU#/ | statement-3<sub>14</sub> : sentence <nowiki>|</nowiki> (tag)? TUhE # text-1 /TUhU#/ | ||
fragment<sub>20</sub> : ek # | gihek # | quantifier | NA # | terms /VAU#/ | prenex | relative-clauses | links | linkargs | fragment<sub>20</sub> : ek # <nowiki>|</nowiki> gihek # <nowiki>|</nowiki> quantifier <nowiki>|</nowiki> NA # <nowiki>|</nowiki> terms /VAU#/ <nowiki>|</nowiki> prenex <nowiki>|</nowiki> relative-clauses <nowiki>|</nowiki> links <nowiki>|</nowiki> linkargs | ||
prenexe / brili'e? prenex<sub>30</sub> : terms ZOhU # | prenexe / brili'e? prenex<sub>30</sub> : terms ZOhU # | ||
brisni? sentence<sub>40</sub> : (terms (CU #)?)? bridi-tail | brisni? sentence<sub>40</sub> : (terms (CU #)?)? bridi-tail | ||
subsentence<sub>41</sub> : sentence | prenex subsentence | subsentence<sub>41</sub> : sentence <nowiki>|</nowiki> prenex subsentence | ||
bridi-tail<sub>50</sub> : bridi-tail-1 (gihek (stag)? KE # bridi-tail /KEhE#/ tail-terms)? | 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-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-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 | bridi-tail-3<sub>53</sub> : selbri tail-terms <nowiki>|</nowiki> gek-sentence | ||
gek-sentence<sub>54</sub> : gek subsentence gik subsentence tail-terms (tag)? | KE # gek-sentence /KEhE#/ | NA # gek-sentence | gek-sentence<sub>54</sub> : gek subsentence gik subsentence tail-terms (tag)? <nowiki>|</nowiki> KE # gek-sentence /KEhE#/ <nowiki>|</nowiki> NA # gek-sentence | ||
tail-terms<sub>71</sub> : (terms)? /VAU#/ | tail-terms<sub>71</sub> : (terms)? /VAU#/ | ||
terms<sub>80</sub> : terms-1+ | terms<sub>80</sub> : terms-1+ | ||
terms-1<sub>81</sub> : terms-2 (PEhE # joik-jek terms-2)* | terms-1<sub>81</sub> : terms-2 (PEhE # joik-jek terms-2)* | ||
terms-2<sub>82</sub> : term (CEhE # term)* | terms-2<sub>82</sub> : term (CEhE # term)* | ||
term<sub>83</sub> : sumti | (tag | FA #) (sumti /KU#/) | termset | NA KU # | term<sub>83</sub> : sumti <nowiki>|</nowiki> (tag <nowiki>|</nowiki> FA #) (sumti /KU#/) <nowiki>|</nowiki> termset <nowiki>|</nowiki> NA KU # | ||
termset<sub>85</sub> : NUhI # gek terms /NUhU#/ gik terms /NUhU#/ | NUhI # terms /NUhU#/ | termset<sub>85</sub> : NUhI # gek terms /NUhU#/ gik terms /NUhU#/ <nowiki>|</nowiki> NUhI # terms /NUhU#/ | ||
sumti<sub>90</sub> : sumti-1 (VUhO # relative-clauses)? | sumti<sub>90</sub> : sumti-1 (VUhO # relative-clauses)? | ||
sumti-1<sub>91</sub> : sumti-2 ((ek | joik) (stag)? KE # sumti /KEhE#/)? | sumti-1<sub>91</sub> : sumti-2 ((ek <nowiki>|</nowiki> joik) (stag)? KE # sumti /KEhE#/)? | ||
sumti-2<sub>92</sub> : sumti-3 (joik-ek sumti-3)* | 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-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-4<sub>94</sub> : sumti-5 <nowiki>|</nowiki> gek sumti gik sumti-4 | ||
sumti-5<sub>95</sub> : (quantifier)? sumti-6 (relative-clauses)? | quantifier selbri /KU#/ (relative-clauses)? | sumti-5<sub>95</sub> : (quantifier)? sumti-6 (relative-clauses)? <nowiki>|</nowiki> 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-6<sub>97</sub> : (LAhE # <nowiki>|</nowiki> NAhE BO #) (relative-clauses)? sumti /LUhU#/ <nowiki>|</nowiki> KOhA # <nowiki>|</nowiki> lerfu-string /BOI#/ <nowiki>|</nowiki> LA # (relative-clauses)? CMENE+ # <nowiki>|</nowiki> (LA <nowiki>|</nowiki> LE) # sumti-tail /KU#/ <nowiki>|</nowiki> LI # mex /LOhO#/ <nowiki>|</nowiki> ZO any-word # <nowiki>|</nowiki> LU text /LIhU#/ <nowiki>|</nowiki> LOhU any-word+ LEhU # <nowiki>|</nowiki> 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<sub>111</sub> : (sumti-6 (relative-clauses)?)? sumti-tail-1 <nowiki>|</nowiki> relative-clauses sumti-tail-1 | ||
sumti-tail-1<sub>112</sub> : (quantifier)? selbri (relative-clauses)? quantifier sumti | sumti-tail-1<sub>112</sub> : (quantifier)? selbri (relative-clauses)? quantifier sumti | ||
relative-clauses<sub>121</sub> : relative-clause (ZIhE # relative-clause)* | relative-clauses<sub>121</sub> : relative-clause (ZIhE # relative-clause)* | ||
relative-clause<sub>122</sub> : GOI # term /GEhU#/ | NOI # subsentence /KUhO#/ | relative-clause<sub>122</sub> : GOI # term /GEhU#/ <nowiki>|</nowiki> NOI # subsentence /KUhO#/ | ||
selbri<sub>130</sub> : (tag)? selbri-1 | selbri<sub>130</sub> : (tag)? selbri-1 | ||
selbri-1<sub>131</sub> : selbri-2 | NA # selbri | selbri-1<sub>131</sub> : selbri-2 <nowiki>|</nowiki> NA # selbri | ||
selbri-2<sub>132</sub> : selbri-3 (CO # selbri-2)? | selbri-2<sub>132</sub> : selbri-3 (CO # selbri-2)? | ||
selbri-3<sub>133</sub> : selbri-4+ | 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-4<sub>134</sub> : selbri-5 (joik-jek selbri-5 <nowiki>|</nowiki> joik (stag)? KE # selbri-3 /KEhE#/)* | ||
selbri-5<sub>135</sub> : selbri-6 ((jek | joik) (stag)? BO # selbri-5)? | selbri-5<sub>135</sub> : selbri-6 ((jek <nowiki>|</nowiki> joik) (stag)? BO # selbri-5)? | ||
selbri-6<sub>136</sub> : tanru-unit (BO # selbri-6)? | (NAhE #)? guhek selbri gik selbri-6 | selbri-6<sub>136</sub> : tanru-unit (BO # selbri-6)? <nowiki>|</nowiki> (NAhE #)? guhek selbri gik selbri-6 | ||
tanru-unit<sub>150</sub> : tanru-unit-1 (CEI # tanru-unit-1)* | tanru-unit<sub>150</sub> : tanru-unit-1 (CEI # tanru-unit-1)* | ||
tanru-unit-1<sub>151</sub> : tanru-unit-2 (linkargs)? | 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#/ | tanru-unit-2<sub>152</sub> : BRIVLA # <nowiki>|</nowiki> GOhA (RAhO)? # <nowiki>|</nowiki> KE # selbri-3 /KEhE#/ <nowiki>|</nowiki> ME # sumti /MEhU#/ (MOI #)? <nowiki>|</nowiki> (number <nowiki>|</nowiki> lerfu-string) MOI # <nowiki>|</nowiki> NUhA # mex-operator <nowiki>|</nowiki> SE # tanru-unit-2 <nowiki>|</nowiki> JAI # (tag)? tanru-unit-2 <nowiki>|</nowiki> any-word (ZEI any-word)+ <nowiki>|</nowiki> NAhE # tanru-unit-2 <nowiki>|</nowiki> NU (NAI)? # (joik-jek NU (NAI)? #)* subsentence /KEI#/ | ||
linkargs<sub>160</sub> : BE # term (links)? /BEhO#/ | linkargs<sub>160</sub> : BE # term (links)? /BEhO#/ | ||
links<sub>161</sub> : BEI # term (links)? | links<sub>161</sub> : BEI # term (links)? | ||
quantifier<sub>300</sub> : number /BOI#/ | VEI # mex /VEhO#/ | quantifier<sub>300</sub> : number /BOI#/ <nowiki>|</nowiki> VEI # mex /VEhO#/ | ||
mex<sub>310</sub> : mex-1 (operator mex-1)* | FUhA # rp-expression | mex<sub>310</sub> : mex-1 (operator mex-1)* <nowiki>|</nowiki> FUhA # rp-expression | ||
mex-1<sub>311</sub> : mex-2 (BIhE # operator mex-1)? | mex-1<sub>311</sub> : mex-2 (BIhE # operator mex-1)? | ||
mex-2<sub>312</sub> : operand | (PEhO #)? operator mex-2+ /KUhE#/ | mex-2<sub>312</sub> : operand <nowiki>|</nowiki> (PEhO #)? operator mex-2+ /KUhE#/ | ||
rp-expression<sub>330</sub> : rp-operand rp-operand operator | rp-expression<sub>330</sub> : rp-operand rp-operand operator | ||
rp-operand<sub>332</sub> : operand | rp-expression | rp-operand<sub>332</sub> : operand <nowiki>|</nowiki> rp-expression | ||
operator<sub>370</sub> : operator-1 (joik-jek operator-1 | joik (stag)? KE # operator /KEhE#/)* | operator<sub>370</sub> : operator-1 (joik-jek operator-1 <nowiki>|</nowiki> 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-1<sub>371</sub> : operator-2 <nowiki>|</nowiki> guhek operator-1 gik <nowiki>|</nowiki> operator-2 operator-2 (jek <nowiki>|</nowiki> joik) (stag)? BO # operator-1 | ||
operator-2<sub>372</sub> : mex-operator | KE # operator /KEhE#/ | operator-2<sub>372</sub> : mex-operator <nowiki>|</nowiki> KE # operator /KEhE#/ | ||
mex-operator<sub>374</sub> : SE # mex-operator | NAhE # mex-operator | MAhO # mex /TEhU#/ | NAhU # selbri /TEhU#/ | VUhU # | mex-operator<sub>374</sub> : SE # mex-operator <nowiki>|</nowiki> NAhE # mex-operator <nowiki>|</nowiki> MAhO # mex /TEhU#/ <nowiki>|</nowiki> NAhU # selbri /TEhU#/ <nowiki>|</nowiki> VUhU # | ||
operand<sub>381</sub> : operand-1 ((ek | joik) (stag)? KE # operand /KEhE#/)? | operand<sub>381</sub> : operand-1 ((ek <nowiki>|</nowiki> joik) (stag)? KE # operand /KEhE#/)? | ||
operand-1<sub>382</sub> : operand-2 (joik-ek operand-2)* | 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-2<sub>383</sub> : operand-3 ((ek <nowiki>|</nowiki> 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#/ | operand-3<sub>385</sub> : quantifier <nowiki>|</nowiki> lerfu-string /BOI#/ <nowiki>|</nowiki> NIhE # selbri /TEhU#/ <nowiki>|</nowiki> MOhE # sumti /TEhU#/ <nowiki>|</nowiki> JOhI # mex-2+ /TEhU#/ <nowiki>|</nowiki> gek operand gik operand-3 <nowiki>|</nowiki> (LAhE # <nowiki>|</nowiki> NAhE BO #) operand /LUhU#/ | ||
number<sub>812</sub> : PA (PA | lerfu-word)* | number<sub>812</sub> : PA (PA <nowiki>|</nowiki> lerfu-word)* | ||
lerfu-string<sub>817</sub> : lerfu-word (PA | lerfu-word)* | lerfu-string<sub>817</sub> : lerfu-word (PA <nowiki>|</nowiki> lerfu-word)* | ||
lerfu-word<sub>987</sub> : BY | any-word BU | LAU lerfu-word | TEI lerfu-string FOI | lerfu-word<sub>987</sub> : BY <nowiki>|</nowiki> any-word BU <nowiki>|</nowiki> LAU lerfu-word <nowiki>|</nowiki> TEI lerfu-string FOI | ||
ek<sub>802</sub> : (NA)? (SE)? A (NAI)? | ek<sub>802</sub> : (NA)? (SE)? A (NAI)? | ||
gihek<sub>818</sub> : (NA)? (SE)? GIhA (NAI)? | gihek<sub>818</sub> : (NA)? (SE)? GIhA (NAI)? | ||
jek<sub>805</sub> : (NA)? (SE)? JA (NAI)? | jek<sub>805</sub> : (NA)? (SE)? JA (NAI)? | ||
joik<sub>806</sub> : (SE)? JOI (NAI)? | interval | GAhO interval GAhO | joik<sub>806</sub> : (SE)? JOI (NAI)? <nowiki>|</nowiki> interval <nowiki>|</nowiki> GAhO interval GAhO | ||
interval<sub>932</sub> : (SE)? BIhI (NAI)? | interval<sub>932</sub> : (SE)? BIhI (NAI)? | ||
joik-ek<sub>421</sub> : joik # | ek # | joik-ek<sub>421</sub> : joik # <nowiki>|</nowiki> ek # | ||
joik-jek<sub>422</sub> : joik # | jek # | joik-jek<sub>422</sub> : joik # <nowiki>|</nowiki> jek # | ||
gek<sub>807</sub> : (SE)? GA (NAI)? # | joik GI # | stag gik | gek<sub>807</sub> : (SE)? GA (NAI)? # <nowiki>|</nowiki> joik GI # <nowiki>|</nowiki> stag gik | ||
guhek<sub>808</sub> : (SE)? GUhA (NAI)? # | guhek<sub>808</sub> : (SE)? GUhA (NAI)? # | ||
gik<sub>816</sub> : GI (NAI)? # | gik<sub>816</sub> : GI (NAI)? # | ||
tag<sub>491</sub> : tense-modal (joik-jek tense-modal)* | tag<sub>491</sub> : tense-modal (joik-jek tense-modal)* | ||
stag<sub>971</sub> : simple-tense-modal ((jek | joik) simple-tense-modal)* | stag<sub>971</sub> : simple-tense-modal ((jek <nowiki>|</nowiki> joik) simple-tense-modal)* | ||
tense-modal<sub>815</sub> : simple-tense-modal # | FIhO # selbri /FEhU#/ | tense-modal<sub>815</sub> : simple-tense-modal # <nowiki>|</nowiki> FIhO # selbri /FEhU#/ | ||
simple-tense-modal<sub>972</sub> : (NAhE)? (SE)? BAI (NAI)? (KI)? | (NAhE)? (time (space)? | space (time)?) & CAhA (KI)? | KI | CUhE | simple-tense-modal<sub>972</sub> : (NAhE)? (SE)? BAI (NAI)? (KI)? <nowiki>|</nowiki> (NAhE)? (time (space)? <nowiki>|</nowiki> space (time)?) & CAhA (KI)? <nowiki>|</nowiki> KI <nowiki>|</nowiki> CUhE | ||
time<sub>1030</sub> : ZI & time-offset+ & ZEhA (PU (NAI)?)? & interval-property+ | time<sub>1030</sub> : ZI & time-offset+ & ZEhA (PU (NAI)?)? & interval-property+ | ||
time-offset<sub>1033</sub> : PU (NAI)? (ZI)? | time-offset<sub>1033</sub> : PU (NAI)? (ZI)? | ||
Line 97: | Line 97: | ||
space-interval<sub>1046</sub> : ((VEhA & VIhA) (FAhA (NAI)?)?) & space-int-props | space-interval<sub>1046</sub> : ((VEhA & VIhA) (FAhA (NAI)?)?) & space-int-props | ||
space-int-props<sub>1049</sub> : (FEhE interval-property)+ | space-int-props<sub>1049</sub> : (FEhE interval-property)+ | ||
interval-property<sub>1051</sub> : number ROI (NAI)? | TAhE (NAI)? | ZAhO (NAI)? | interval-property<sub>1051</sub> : number ROI (NAI)? <nowiki>|</nowiki> TAhE (NAI)? <nowiki>|</nowiki> 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/ | free<sub>32</sub> : SEI # (terms (CU #)?)? selbri /SEhU/ <nowiki>|</nowiki> SOI # sumti (sumti)? /SEhU/ <nowiki>|</nowiki> vocative (relative-clauses)? selbri (relative-clauses)? /DOhU/ <nowiki>|</nowiki> vocative (relative-clauses)? CMENE+ # (relative-clauses)? /DOhU/ <nowiki>|</nowiki> vocative (sumti)? /DOhU/ <nowiki>|</nowiki> (number <nowiki>|</nowiki> lerfu-string) MAI <nowiki>|</nowiki> TO text /TOI/ <nowiki>|</nowiki> XI # (number <nowiki>|</nowiki> lerfu-string) /BOI/ <nowiki>|</nowiki> XI # VEI # mex /VEhO/ | ||
vocative<sub>415</sub> : (COI (NAI)?)+ & DOI | vocative<sub>415</sub> : (COI (NAI)?)+ & DOI | ||
indicators<sub>411</sub> : (FUhE)? indicator+ | indicators<sub>411</sub> : (FUhE)? indicator+ | ||
indicator<sub>413</sub> : (UI | CAI) (NAI)? | Y | DAhO | FUhO | indicator<sub>413</sub> : (UI <nowiki>|</nowiki> CAI) (NAI)? <nowiki>|</nowiki> Y <nowiki>|</nowiki> DAhO <nowiki>|</nowiki> FUhO | ||
</tab> | </tab> |
Revision as of 13:56, 4 November 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 “+”
- "*" represents optional repetition of the construct to the left starting from 0 occurrences. 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.
<tab head=top class=wikitable>
uenzi 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)?)*
jufra / briju'a? 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
prenexe / brili'e? prenex30 : terms ZOhU #
brisni? 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
</tab>
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