Gramatica em flex
Para facilitar a leitura das produções, os símbolos não terminais foram encapsulados por '<' e '>' no lado direito das produções. As restantes regras BNF foram respeitadas.
1.
T={a}, N={S}, S={S}, P={S->a<S>|a}
2.(a)
T={a,b}, N={S,B}, S={S}, P={S->a<S>|aB, B->b<B>|ε}
2.(b)
T={a,b}, N={S,B}, S={S}, P={S->a<S>b, ab}
2.(c)
T={a,b,c}, N={S,B}, S={S}, P={S->a<S>c|b<B>c|ε, B->b<B>c|ε}
2.(d)
T={'-','+',0,1,2,3,4,5,6,7,8,9}
N={S, Sinal, Dígitos, Dígito}
S={S}
P={ S->'+'<Dígitos>|'-'<Dígitos>|<Dígitos> Dígitos-><Dígitos><Dígito>|<Dígito>, Dígito->0|...|9
}
ou
P={ S-><Sinal><Dígitos>, Sinal->'-'|'+'|ε, Dígitos-><Dígitos><Dígito>|<Dígito>, Dígito->0|...|9
}
2.(e)
T={'-','+','.','^','E',0,1,2,3,4,5,6,7,8,9}
N={S, Sinal, PInteira, PDecimal, Dígitos, Dígito}
S={S}
P={ S-><Sinal><PInteira><Expoente>|<Sinal><PDecimal><Expoente>|<Sinal><PInteira><PDecimal><Expoente>, Sinal->'-'|'+'|ε, PInteira-><Dígitos> PDecimal->'.'<Dígitos> Expoente->'^'<Dígitos>|'E'<Sinal><Dígitos>|ε Dígitos-><Dígitos><Dígito>|<Dígito>, Dígito->0|...|9
}
2.(f)
T={0,...,9,a,...,z,A,...,Z}
N={S,A}
P={
S->a<A>|...|Z<A> <A>->a<A>|...|Z<A>|0<A>|...|9<A>|ε
}
2.(g)
T={'-','+','/','*',0,...,9}
N={S, Expressão, Operador, Número}
S={Expressão}
P={ Expressão-><Expressão><Operador><Número>|<Número><Operador><Número> Operador->'-'|'+'|'/'|'*'
}
2.(h)
T={'-','+','/','*',0,...,9,a,...,z,A,...,Z}
N={S, Expressão, Operador, Número, Termo}
S={Expressão}
P={