La création d'un analyseur syntaxique pour un simple pseudo-code de langue?

Je voulais faire un simple analyseur, pour un "pseudo-code" comme le langage(gardé rigide), en Java.
Un exemple de pseudo-code serait -

//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
  }
}

Noter que le code ci-dessus est rigide, il ne peut pas être plus d'une instruction sur une ligne de nombres entiers, à commencer avec $, les chars commencent par un # etc.

Pour analyser un tel code, tout d'abord je peux utiliser StringTokenizer, puis expression régulière, le match entier variables, float-variables, ou de mots clés.

Cette approche est-elle bonne? Pour les déclarations en boucle, comment puis-je stocker les expressions, de sorte que je n'ai pas à marquer à chaque itération?

Que je pouvais penser de convertir des expressions (comme #f = #f /2) pour polir la notation, puis à stocker dans la pile. Et à chaque itération, tout en sautant opérandes je pouvais remplacer la valeur pour chaque variable. Mais est-ce assez efficace?

Merci d'avance pour toute suggestion.

Double Possible de cette question

OriginalL'auteur Vinayak Garg | 2012-03-31