Geral
Compiladores
Semana 3
0

Questão

Considere a seguinte gramática para expressões matemáticas simples: 

<expr> ::= <term> + <expr> | <term> - <expr> | <term> 

<term> ::= <factor> * <term> | <factor> / <term> | <factor> 

<factor> ::= <number> | (<expr>) 

<number> ::= [0-9]+ 

Qual das seguintes expressões é sintaticamente válida de acordo com essa gramática? 

A)

2 * (3 + 4)

B)

(2 * (3 + 4))

C)

2 * (3 + 4))

D)

2 * (3 + 4

E)

2 * 3 + 4

function vote(questaoId, value) { window.location.href = "/accounts/login/?next=/questao/309/"; return; fetch(`/vote/questao/${questaoId}/`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': 'wnx6JKC9KNsX1MhwEg6w0Fkhm3SCxntIG7kxsubzMtkBVGQzcFmWPJojvmJf5wQ2' }, body: JSON.stringify({ value: value }) }) .then(response => response.json()) .then(data => { if (data.success) { document.getElementById(`score-${questaoId}`).textContent = data.score; const upBtn = document.querySelector(`button[onclick="vote(${questaoId}, 1)"]`); const downBtn = document.querySelector(`button[onclick="vote(${questaoId}, -1)"]`); upBtn.classList.remove('active-up'); downBtn.classList.remove('active-down'); if (data.user_vote === 1) upBtn.classList.add('active-up'); if (data.user_vote === -1) downBtn.classList.add('active-down'); } }); }