riando um analisador para uma linguagem simples de pseudocódig
Eu queria fazer um analisador simples, para um "pseudo código" como linguagem (mantido rígido), em Java. Um pseudo-código de exemplo seria -
//This is a comment
$x1 = readint
$x2 = readint
$dx = $x2 - $x1
#f = $dx / 2
if ($dx > 0)
{
loop while(#f > 1)
{
print(#f)
#f = #f / 2
}
}
Observe que o código acima é rígido, não pode haver mais de uma instrução em uma linha, números inteiros começam com $, flutuadores começam com # etc.
Para analisar esse código, primeiro posso usarStringTokenizer
e, em seguida, expressão regular, para corresponder variáveis inteiras, variáveis flutuantes ou palavras-chav
Essa abordagem é boa? Para instruções em loop, como posso armazenar expressões, para que eu não precise tokenizar em cada iteraçã
Eu poderia pensar em converter expressões (como #f = #f / 2) para notação de polimento e depois armazenar na pilha. E em cada iteração, enquanto popping operandos, eu poderia substituir o valor de cada variável. Mas isso é eficiente o suficiente?
Agradecemos antecipadamente por qualquer sugestão