Dans un analyseur LR (0), chaque état consiste en une collection d'éléments LR (0), qui sont des productions annotées avec une position. Dans un analyseur LR (1), chaque état consiste en une collection d'éléments LR (1), qui sont des productions annotées avec une position et un caractère d'anticipation. Il est …
Il existe un moyen d'effectuer une analyse floue (accepte les chaînes même avec des fautes de frappe à une certaine distance d'édition), avec un DFA et un automate Levenshtein construit au moment de l'exécution du mot d'entrée. Peut-on faire quelque chose de similaire avec un analyseur Earley? J'ai du mal …
Quelqu'un peut-il m'éclairer pourquoi un analyseur de descente récursive avec retour arrière qui essaie les productions et (dans cet ordre) ne reconnaît pas le langage formé par la grammaire .S→ un SuneS→uneSuneS \rightarrow aSaS→ a aS→uneuneS \rightarrow aaS→ un Sa | a a S→uneSune | uneuneS \rightarrow aSa\ |\ aa …
La grammaire non contextuelle suivante présente une ambiguïté de type "balançant le reste" (imaginez que représente et b représente et c représente un autre type d'instruction ou de bloc): Saaaif expr thenbbbelseccc Par exemple,aacbcpeut être analysé comme(a(acbc))ou comme(a(ac)bc)(c'est le mot ambigu le plus simple / le plus court pour cette …
L'utilisation du vecteur Earley comme identificateur est assez simple: lorsque la fin de la chaîne est atteinte, il vous suffit de vérifier si la production axiomatique terminée a commencé à la position 0. Si vous en avez au moins une, la chaîne est acceptée. L'utilisation du vecteur Earley pour reconstruire …
Au collège, nous avons appris la théorie du calcul en général et les machines de Turing plus spécifiquement. L'un des grands résultats théoriques est qu'au prix d'un alphabet potentiellement grand (symboles), vous pouvez réduire le nombre d'états à seulement 2. Je cherchais des exemples de différentes machines de Turing et …
Cette grammaire est récursive: Expression ::= AdditionExpression AdditionExpression ::= MultiplicationExpression | AdditionExpression '+' MultiplicationExpression | AdditionExpression '-' MultiplicationExpression MultiplicationExpression ::= Term | MultiplicationExpression '*' Term | MultiplicationExpression '/' Term Term ::= Number | '(' AdditionExpression ')' Number ::= [+-]?[0-9]+(\.[0-9]+)? Donc, en théorie, la descente récursive ne fonctionnera pas. Mais en …
Je travaille sur un analyseur pour un langage de style C, et pour cet analyseur, j'ai besoin de l'expression régulière qui correspond au style C / ** / commentaires. Maintenant, j'ai trouvé cette expression sur le web: /\*([^\*]*\*+[^\*/])*([^\*]*\*+|[^\*]*\*/ Cependant, comme vous pouvez le voir, c'est une expression plutôt désordonnée, et …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.