Maison >Java >javaDidacticiel >Comment puis-je créer une calculatrice simple à quatre opérations à l'aide d'ANTLR ?

Comment puis-je créer une calculatrice simple à quatre opérations à l'aide d'ANTLR ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 13:46:10760parcourir

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

Existe-t-il un exemple ANTLR simple ?

Créer un exemple ANTLR simple impliquant une calculatrice à quatre opérations nécessite de comprendre le processus de conversion de la grammaire en Code source Java.

Création de la grammaire Fichier

Commencez par un fichier de grammaire tel que "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;}
    ;

Génération du Lexer et de l'analyseur

Utilisez le commande ci-dessous pour générer le lexer et l'analyseur :

java -cp antlr-3.2.jar org.antlr.Tool Exp.g

Création la classe de test

Créer une classe de test comme "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();
    }
}

Ajout de code Java à la grammaire

Pour permettre à l'analyseur d'effectuer des actions, ajoutez du code Java dans {...} blocs :

grammar Exp;

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

Exécuter l'exemple

Compilez les classes, générez le lexer et l'analyseur, et exécutez ANTLRDemo pour évaluer l'expression "12*(5-6 )".

Cet exemple montre une grammaire de base pour une simple calculatrice à quatre opérations, illustrant le processus de définition d'un grammaire, générant les composants nécessaires et ajoutant du code Java pour contrôler le comportement de l'analyseur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn