Réserver une Démo
Pré. Proc.

Parser d'expressions régulières

Statemachine pour Parser d'expressions régulières

La classe RegularExpressionParser est définie avec un attribut : bMatch.

An Example Regular Expression Parser Class in Sparx Systems Enterprise Architect

Une Statemachine est utilisée pour décrire l'expression régulière (a|b)*abb

Example Regular Expression in StateMachine in Sparx Systems Enterprise Architect.

  • Les déclencheurs de transition sont spécifiés comme des événements a , b , x et reset
  • À l'entrée de l'État 4, bMatch est défini sur True ; à la sortie de l'État 4, bMatch est défini sur False
  • À l'entrée de State5, bMatch est défini sur False
  • Lors de l'auto-transition de l'état 6, bMatch est défini sur False

Personnaliser index.html et statemachineGUI.js

Apportez ces modifications aux fichiers générés :

  • Créez un champ de saisie HTML et une image pour indiquer le résultat
  • Créer JavaScript comme gestionnaire d'événements oninput du champ
  • Créez la fonction « SetResult » pour basculer l'image réussite/échec
  • Créez la fonction 'getEventStr', qui renverra 'a' sur ' a ' et 'b' sur ' b ', mais renverra 'x' sur tout autre caractère
  • Lors de l'initialisation, diffuser « reset »
  • Lors de l'événement de diffusion, demandez la variable d'exécution « regxParser.bMatch »
Dans statemachineGUI.js , recherchez la fonction « onRuntimeValueResponse ».
  • Dans « regxParser.bMatch », nous recevrons « True » ou « False » et le transmettrons à « SetResult » pour mettre à jour l'image

L'exemple complet

L'exemple est accessible depuis la page « Ressources » du site Web Sparx Systems , en cliquant sur ce lien :

Regular Expression Parser Simulation