S →aTS ’|*aTS ’ S ’→*aTS ’|ε T →+aT ’ T ’→T|ε
时间: 2023-12-20 08:06:48 浏览: 33
这是一个关于文法的问题。根据提供的引用内容,可以得到消除左递归和提取公共左因子后的文法如下:
S → (T)S' | aSS' → +aTS' | ε
T → *aT'
T' → *aT' | ε
其中,S表示语句,T表示项,S'表示语句的后继,T'表示项的后继。根据这个文法,可以得到以下推导过程:
S => aS' => *aTS' => *aT'*aTS' => *aT'*aT'*aTS' => *aT'*aT'*aT'*aTS' => *aT'*aT'*aT'*ε => *aT'*
因此,对于输入的字符串"a**a",可以使用上述文法进行推导,得到最终的推导结果为"*aT'*aT'*aT'*"。
相关问题
1、设将文法G改写成等价的LL(1)文法,并构造预测分拼表。 GS→S*aT|aT*aT;T→+aT|+a(15分)
首先,我们需要消除G中的左递归和提取左公因子。对于文法G:
```
S → S*aT | aT*aT
T → +aT | +a
```
我们可以先消除左递归:
```
S → aT*S'
S' → *aTS' | ε
T → +aT | +a
```
然后,我们可以提取左公因子:
```
S → aT S'
S' → * a T S' | ε
T → + a T'
T' → a T | ε
```
现在,我们得到了一个等价的LL(1)文法。下面我们可以构造预测分析表。
首先,我们需要求出每个非终结符的FIRST集和FOLLOW集。对于该文法,有:
```
FIRST(S) = {a}
FIRST(S') = {* , ε}
FIRST(T) = {+ , ε}
FIRST(T') = {a , ε}
FOLLOW(S) = {$}
FOLLOW(S') = {a , $}
FOLLOW(T) = {S' , $}
FOLLOW(T') = {S' , $}
```
然后,我们可以根据每个产生式的FIRST集和FOLLOW集来填写预测分析表:
```
+ * a $
S | | | S → aTS' |
S' | | S' → ε | S' → *aTS' | S' → ε
T | T → +aT' | | |
T' | | | T' → aT | T' → ε
```
最终,我们得到了该文法的预测分析表。
SQL 表T_ATS_RepairWO 关键字段ID 对应表 T_ATS_RWOSPAREPARTENTRY 查询怎么写
您可以使用以下 SQL 查询语句:
```
SELECT *
FROM T_ATS_RWOSPAREPARTENTRY
WHERE RepairWOID = (SELECT ID FROM T_ATS_RepairWO)
```
这个查询语句会从 `T_ATS_RWOSPAREPARTENTRY` 表中查询 `RepairWOID` 等于 `T_ATS_RepairWO` 表中的 `ID` 的所有行。