2009-12-03 3 views
0

Lors de l'envoi d'une commande AT, elle est normalement terminée par \ r \ n, mais, en fait, il s'agit en réalité de deux 'variables de registre' S3 et S4.Dynamicall mise à jour des règles au moment de l'exécution

Par défaut S3 == '\ r' et S4 == '\ n', mais l'utilisateur peut modifier ces à l'exécution avec la commande ATSx =

Comment puis-je gérer cela dans mon Antlr lexer/parser ?

Chaque commande a la forme AT [paramètres] S3S4, comment puis-je gérer cela si l'utilisateur change la valeur de S3 ou S4?

Merci à l'avance pour toute aide ...

+0

Personne ne sait? Heeeeelp !!!! S'il vous plaît ... – Mawg

Répondre

1

Non, il n'y a pas de possibilité de changer dynamiquement lexer- ou analyseur règles AFAIK. Bien sûr, il y a des contournements possibles comme recréant le lexer/parser lors du changement des variables de registre, mais il ne sera pas assez, je suppose ...


Modifier

MAWG a écrit

re-création de la lexr & poarser (bien, lexer que, je suppose) - pourrait vous leaborate sur cette?

Réécrire le fichier de grammaire d'origine (uniquement les règles analyseurs lexicaux, comme vous le mentionnez à juste titre) et recompilée à la volée. Voir: http://java.sun.com/javase/6/docs/api/javax/tools/JavaCompiler.html

+0

recréer le lexr & poarser (enfin, lexer seulement, je suppose) - pourriez-vous faire un labo? – Mawg

+0

J'analyse l'ensemble de commandes AT du modem Hayes. Les commandes AT sont bien définies et je peux les couvrir complètement avec les règles lexer/parser. Comme je l'ai dit, chaque ligne se termine généralement par \ r \ n, mais celles-ci se trouvent dans les registres S3 et S4 que l'utilisateur peut modifier. Je n'ai jamais rien vu sauf "vide" et \ n, mais théoriquement ils pourraient être n'importe quoi ... – Mawg

Questions connexes