// Spaces String Spacing = '.'? Spaces+; String Spaces = ' ' / '\n' / '\t' / '\r'; String PostCmavo = !BU CmavoSpacing; String CmavoSpacing = '.'? Spaces+ / &CMAVO / '.'? Spaces* !(Consonant Consonant / Vowel / OtherLetter); String PreCmavo = (); String anyWords = "AnyWords" Spacing; String anyWord = CMAVO / BRIVLA / CMENE; String anything = "AnyThing" Spacing; String CMAVO = (Consonant / '.') Vowel (['] Vowel / Vowel)* CmavoSpacing; // / // [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" //String BRIVLA = "broda" Spacing / "brode" Spacing / "brodi" Spacing / "brodo" Spacing / "brodu"; String Consonant = [bcdfgjklmnprstvxz]; String Vowel = [aeiou]; String OtherLetter = ['y]; String LojbanLetter = Consonant / Vowel / OtherLetter; String CmeneLetter = LojbanLetter / ',' / '.' / [BCDFGJKLMNPRSTVXZ] / [AEIOU] / [hY]; String BRIVLA = Consonant Consonant LojbanLetter LojbanLetter TailVowel / Consonant Vowel Consonant 'y'? Consonant TailVowel / Consonant Vowel [']? Vowel Consonant Consonant TailVowel; String TailVowel = Vowel Spacing / LojbanLetter TailVowel; // CMENE = /\.?[,'a-pr-z]+[bcdfgjklmnprstvxz]/ //CMENE = "cmene" / ".alis" / "bab" // String CMENE = "cmene" Spacing / ".alis" Spacing / "bab"; String CMENE = '.'? CmeneLetter TailConsonant; String TailConsonant = Consonant '.'? Spacing / CmeneLetter TailConsonant;