Bonjour à tous,
je suis en train d'implémenter (en Python) la spécification de XPath du W3C, et je m'interroge sur la méthode d'analyse adéquate. Voici un extrait de la grammaire en question, celui qui concerne les opérations arithmétiques :
Voilà où j'en suis de mes réflexions : l'analyse LL(1) m'est interdite, car les règles sont (massivement) récursives à gauche ; même problème avec la descente récursive. Je vais donc sans doute devoir opter pour une analyse ascendante, et a priori la technique de la précédence d'opérateurs conviendrait, et ne serait pas trop complexe à coder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [25] AdditiveExpr ::= MultiplicativeExpr | AdditiveExpr '+' MultiplicativeExpr | AdditiveExpr '-' MultiplicativeExpr [26] MultiplicativeExpr ::= UnaryExpr | MultiplicativeExpr MultiplyOperator UnaryExpr | MultiplicativeExpr 'div' UnaryExpr | MultiplicativeExpr 'mod' UnaryExpr [27] UnaryExpr ::= UnionExpr | '-' UnaryExpr
J'ai deux questions à soumettre à votre sagacité :
1°) Suis-je complètement à côté de la plaque, quant aux prémisses du choix de la méthode d'analyse ?
2°) Que me conseilleriez-vous ?
![]()
Partager