Heim > Java > javaLernprogramm > Wie kann ich mit ANTLR einen einfachen Rechner mit vier Operationen erstellen?

Wie kann ich mit ANTLR einen einfachen Rechner mit vier Operationen erstellen?

Mary-Kate Olsen
Freigeben: 2024-12-02 13:46:10
Original
758 Leute haben es durchsucht

How Can I Create a Simple Four-Operation Calculator Using ANTLR?

Gibt es ein einfaches ANTLR-Beispiel?

Um ein einfaches ANTLR-Beispiel mit einem Rechner mit vier Operationen zu erstellen, müssen Sie den Prozess der Konvertierung von Grammatik verstehen Java-Quellcode.

Erstellen der Grammatik Datei

Beginnen Sie mit einer Grammatikdatei wie „Exp.g“:

grammar Exp;

eval
    : additionExp EOF
    ;

additionExp
    : multiplyExp(+ multiplyExp
                | - multiplyExp
                )*
    ;

multiplyExp
    : atomExp(* atomExp
             | / atomExp
             )*
    ;

atomExp
    : Number
    | '(' additionExp ')'
    ;

Number
    : ('0'..'9')+ ('.' ('0'..'9')+)?
    ;

WS
    :   (' ' | '\t' | '\r'| '\n') {$channel=HIDDEN;}
    ;
Nach dem Login kopieren

Generieren des Lexers und Parsers

Verwenden Sie die Befehl unten, um den Lexer zu generieren und Parser:

java -cp antlr-3.2.jar org.antlr.Tool Exp.g
Nach dem Login kopieren

Erstellen der Testklasse

Erstellen Sie eine Testklasse wie „ANTLRDemo.java“:

import org.antlr.runtime.*;

public class ANTLRDemo {
    public static void main(String[] args) throws Exception {
        ANTLRStringStream in = new ANTLRStringStream("12*(5-6)");
        ExpLexer lexer = new ExpLexer(in);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        ExpParser parser = new ExpParser(tokens);
        parser.eval();
    }
}
Nach dem Login kopieren

Hinzufügen von Java-Code zur Grammatik

Um die Leistung des Parsers zu ermöglichen Aktionen, fügen Sie Java-Code innerhalb von {...} Blöcken hinzu:

grammar Exp;

eval returns [double value]
    : additionExp { System.out.println("value equals: "+$value); }
    ;
    
// ...
Nach dem Login kopieren

Ausführen des Beispiels

Kompilieren Sie die Klassen, generieren Sie den Lexer und Parser und führen Sie ANTLRDemo aus um den Ausdruck „12*(5-6)“ auszuwerten.

Dieses Beispiel zeigt eine grundlegende Grammatik für einen einfachen Rechner mit vier Operationen, Veranschaulichung des Prozesses der Definition einer Grammatik, der Generierung der erforderlichen Komponenten und des Hinzufügens von Java-Code zur Steuerung des Parserverhaltens.

Das obige ist der detaillierte Inhalt vonWie kann ich mit ANTLR einen einfachen Rechner mit vier Operationen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage