UVA134 Loglan-A Logical Language

题目描述

Loglan 是一种综合的语言,旨在测试语言学的一些基本问题,比如萨皮尔-沃尔夫假说。它在语法上明确,在文化上中立,并且形而上学的节俭。它遵循既定的很小的大约 200 条规则的语法。 Loglan 句子由一系列单词和名称组成,用空格分隔,并以句号结尾(.)。Loglan 单词都以一个元音结尾;名称,从语言上派生,结束辅音。 Loglan 单词分为两类-指定结构的小单词,句子和谓词的形式为 `CCVCV` 或 `CVCV`,其中 `C` 表示辅音,`V` 代表一个元音(见后面的例子)。 我们所研究的洛格伦语(Loglan)子集,采用如下语法规则: ``` A ⇒ a | e | i | o | u MOD ⇒ ga | ge | gi | go | gu BA ⇒ ba | be | bi | bo | bu DA ⇒ da | de | di | do | du LA ⇒ la | le | li | lo | lu NAM ⇒ {所有专有名词} PREDA ⇒ {所有谓词} ⇒ | ⇒ BA | DA ⇒ | A ⇒ LA | 专有名词 ⇒ 谓词 | 谓词 ⇒ | ⇒ MOD 修饰词 ``` 我们正在考虑的 Loglan 子集使用以下语法: 编写一个程序,该程序将读取一系列字符串,并确定它们是否是形成的 Loglan 句子。

输入格式

每个 Loglan 句子将从一个新行开始,并以句点(.)结束。 句子可占用多行,单词可由多个空格分隔。输入以包含单个 `#` 的行结尾。你可以假设所有的单词都将被正确地构成。

输出格式

输出为每行包含一个 `good` 或 `bad` 的句子。