Publicații conexe 'antlr'
Completarea SQL. Partea 1: Dificultățile cu analizarea sau poveștile lustruirii ANTLR
Lucrez pentru o companie care dezvoltă interacțiuni „IDE-uri pentru baze de date” de mai bine de cinci ani. Înainte de a începe să scriu acest articol, habar nu aveam câte povești fanteziste vor avea în față. Astfel, după ce am făcut 30 de pagini din ea, am decis să grupez poveștile tematic și să împart articolul în mai multe părți.
Introducere
Pe parcursul publicării părților, voi adăuga link-urile corespunzătoare:
Partea 1. Complementarea SQL. Partea 1. Analiza..
Întrebări înrudite 'antlr'
Problemă JavaCC - Codul generat nu găsește toate erorile de analiză
Tocmai am început cu JavaCC. Dar am un comportament ciudat cu el. Vreau să verific intrarea sub formă de jetoane (litere și numere) care sunt concatenate cu semne (+, -, /) și care pot conține paranteze. Sper ca a fost de inteles :)
În metoda...
6890 vederi
schedule
21.08.2022
ANTLR nu se potrivește cu caracterul unicode scapat
Scriu un parser/interpret pentru un limbaj asemănător C și trebuie să interpretez caracterele escape. Una dintre ele este secvența de escape Unicode cu acest model „\uXXXX” unde X este un număr hexadecimal.
Regulile mele ANTLR arată astfel:...
366 vederi
schedule
03.09.2022
Cum se consumă text până la noua linie în ANTLR?
Cum faci așa ceva cu ANTLR?
Exemplu de intrare:
title: hello world
Gramatică:
header : IDENT ':' REST_OF_LINE ;
IDENT : 'a'..'z'+ ;
REST_OF_LINE : ~'\n'* '\n' ;
Eșuează, cu line 1:0 mismatched input 'title: hello world\n'...
1959 vederi
schedule
11.07.2022
enterDecision(int) din tipul DebugEventListener nu este aplicabil pentru argumentele (int, boolean)?
Folosesc ANTLR 3.1.3 pentru a genera analizatorul. După importarea testParser-ului generat, am descoperit că există mai multe erori, cum ar fi
încercați { dbg.enterDecision(2, decisionCanBacktrack[2]);
Descriere Calea resursei Tip locație...
212 vederi
schedule
27.06.2022
Cum să obțineți textul unei reguli Lexer
Am o regulă Antlr Grammar Lexer ca aceasta,
Letter
: '\u0024' | '\u005f'|
'\u0041'..'\u005a' | '\u0061'..'\u007a' |
'\u00c0'..'\u00d6' | '\u00d8'..'\u00f6' |
'\u00f8'..'\u00ff' | '\u0100'..'\u1fff' |...
141 vederi
schedule
10.09.2022
ANTLR: Diferența dintre backtrack și look-ahead?
Sunt relativ nou la ANTLR. Am o gramatica foarte usoara:
start :
('A' 'B' 'C' '1'
|'A' 'B' 'C' '2'
|'A' 'B' 'C' '3'
)
;
Cred că am înțeles deja elementele de bază ale conceptului de a privi înainte și înapoi (care funcționează cu...
3198 vederi
schedule
13.09.2022
Previziunea DFA și domeniul de aplicare
Pornind de la această gramatică: https://stackoverflow.com/a/14287002/1082002 aș realiza o gramatică simplă care acceptă și evaluează limbajul simplu astfel:
{
if a==c {
a
if a==b {
b
} else {
c...
259 vederi
schedule
21.07.2022
schedule
12.11.2022
care este regula corectă a antlr comment lexer pentru a exclude ampersand, dar numai dacă este la sfârșit?
Am nevoie de o regulă lexer pentru un comentariu care nu include „&” la sfârșitul unui rând.
„&” este o continuare a rândului, dar este și un caracter valid în mijlocul unui comentariu.
Iată gramatica mea:
grammar Test;
begin
: line+...
221 vederi
schedule
02.07.2022
cum să inserez jetoane sau contexte în clasa mea de ascultător în antlr4
Am un fișier de gramatică antlr4 care analizează un limbaj BASIC. Există o modalitate de a insera mai mult cod în clasa mea extinsă baseListener?
De exemplu, dacă analizez acest cod:
10 print "hello world"
%include "moreCode.bas"
print...
611 vederi
schedule
23.07.2022
ANTLR Gramatică stânga reciprocă recursiv
Știu că această întrebare a fost pusă de multe ori. Încerc să construiesc o gramatică folosind ANTLR.
Predicate : LOWERCASE | Predicate VarChars ;
VarChars : LOWERCASE | UPPERCASE;
fragment LOWERCASE : [a-z] ;
fragment...
153 vederi
schedule
09.09.2022
Problemă cu spații albe și int literale / operatori binari
Încerc să scriu o gramatică care să permită
Numere întregi cu semn (adică numere întregi cu sau fără semn; 3 , -2 , +5 )
Minus unar ( - )
Adunarea și scăderea binară ( + , - )
Iată gramatica relevantă:
expr: INTLITER
|...
24 vederi
schedule
07.08.2022
antlr4: se modifică prioritatea operatorului
Am o întrebare cu privire la antlr4 și la prioritatea simbolurilor sale. Am urmatoarea gramatica:
grammar TestGrammar;
@header {
package some.package;
}
fragment A : ('A'|'a') ;
fragment E : ('E'|'e') ;
fragment F : ('F'|'f') ;
fragment L :...
123 vederi
schedule
07.07.2022
ANTLR lexing se confundă cu „” și plutește
Cred că lexerul ANTLR tratează încercarea mea de a o expresie de interval "1...3" ca pe un float. Expresia "x={1...3}" iese din lexer ca "x={.3}" când am folosit următoarele definiții de simbol:
FLOAT
: ('0'..'9')+ ('.' '0'..'9'+)?...
569 vederi
schedule
26.10.2023
Analizarea expresiilor cu subexpresii în ANTLR
Încerc să analizez expresii recursive în ANTLR, cum ar fi:
(a + (b + C))
or
((a + b))
Am citit această presupusă soluție: ANTLR Grammar for expressions
Cu toate acestea, când încerc să creez o regulă precum:...
419 vederi
schedule
24.10.2023
prefix caret în loc de postfix în antlr
Știu ce înseamnă postfixul caret în antlr (adică faceți rădăcină), dar ce zici când caret este prefixul ca în următoarea gramatică pe care am citit-o (această gramatică este nouă și realizată de o nouă echipă care învață antlr). ..
selectClause...
1559 vederi
schedule
28.10.2022
Consumul de caractere în analiza lexicală
Dacă am o subregulă ca următoarea:
.. (~']' ~']')* ...
se va potrivi doar cu un număr par de caractere?
59 vederi
schedule
30.10.2023
Cum să obțineți IParseTree în ANTLR4?
În prezent folosesc ANTLR4 în C#, dar mă confrunt cu o problemă, nu știu cum să obțin obiectul/clasa IParseTree.
Găsesc în C# numele complet calificat aici este Antlr4.Runtime.Tree.IParseTree , dar cum să obțineți obiectul?
AntlrInputStream...
1203 vederi
schedule
16.11.2022
Antlr nepotrivit „›” pentru macrocomandă include
Am început să lucrez cu antlr acum câteva zile. Aș dori să-l folosesc pentru a analiza macrocomenzile #include în c. Doar includerile sunt în interesul meu, toate celelalte părți sunt irelevante. aici am scris un simplu fișier de gramatică:
......
48 vederi
schedule
09.11.2022
Reciproc stânga-recursiv?
Lucrez la un parser pentru o gramatică în ANTLR. În prezent lucrez la expresii în care () are cea mai mare prioritate de ordin, apoi minus unar etc.
Când adaug linia ANTLR dă eroarea: Următoarele seturi de reguli sunt reciproc la stânga recursive...
707 vederi
schedule
08.10.2022