C'è un modo per eseguire l'analisi fuzzy (accetta le stringhe anche con errori di battitura a una certa distanza di modifica), con un DFA e un Automi Levenshtein costruito in fase di esecuzione della parola di input. Si può fare qualcosa di simile con un parser Earley? Sto trovando difficile …
In un parser LR (0), ogni stato è costituito da una raccolta di elementi LR (0), che sono produzioni annotate con una posizione. In un parser LR (1), ogni stato è costituito da una raccolta di elementi LR (1), che sono produzioni annotate con una posizione e un carattere lookahead. …
Qualcuno può illuminarmi perché un parser di discesa ricorsivo con backtracking che prova le produzioni e (in quell'ordine) non riconosce la lingua formata dalla grammatica .S → a a S → a S a | a aS→aSun'S→un'Sun'S \rightarrow aSaS→ a aS→aun'S \rightarrow aaS→aSa | a a S→un'Sun' | un'un'S \rightarrow …
I seguenti regali di grammatica context-free un "penzoloni altro" tipo di ambiguità (immaginate che aaa acronimo di if expr thene bbb sta per elsee ccc sta per qualche altro tipo di istruzione o blocco): S→aSbS|aS|cS→aSbS|aS|c \begin{aligned} S &\rightarrow aSbS \;|\; aS \;|\; c\\ \end{aligned} Ad esempio,aacbcaacbcaacbcpuò essere analizzato come(a(acbc))(a(acbc))(a(acbc))o come(a(ac)bc)(a(ac)bc)(a(ac)bc)(questa …
L'uso del vettore Earley come riconoscitore è piuttosto semplice: quando viene raggiunta la fine della stringa, è sufficiente verificare che una produzione assiomatica completa sia iniziata in posizione 0. Se ne si possiede almeno una, la stringa viene accettata. L'uso del vettore Earley per ricostruire l'albero o gli alberi di …
Al college abbiamo imparato la teoria del calcolo in generale e le macchine di Turing in modo più specifico. Uno dei grandi risultati teorici è che al costo di un alfabeto (simboli) potenzialmente grande, è possibile ridurre il numero di stati fino a solo 2. Stavo cercando esempi di diverse …
Questa grammatica è ricorsiva: Expression ::= AdditionExpression AdditionExpression ::= MultiplicationExpression | AdditionExpression '+' MultiplicationExpression | AdditionExpression '-' MultiplicationExpression MultiplicationExpression ::= Term | MultiplicationExpression '*' Term | MultiplicationExpression '/' Term Term ::= Number | '(' AdditionExpression ')' Number ::= [+-]?[0-9]+(\.[0-9]+)? Quindi, in teoria, la discesa ricorsiva non funzionerà. Ma sfruttando le …
Sto lavorando a un parser per un linguaggio in stile C, e per quel parser ho bisogno dell'espressione regolare che corrisponde a C-style / ** / commenti. Ora, ho trovato questa espressione sul web: /\*([^\*]*\*+[^\*/])*([^\*]*\*+|[^\*]*\*/ Tuttavia, come puoi vedere, questa è un'espressione piuttosto confusa e non ho idea se corrisponda …
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.