/// <summary> /// Execute la sequence d'instruction /// </summary> /// <param name="context">la partie droite de la regle de la grammaire</param> /// <returns>le resultat de la derniere instruction</returns> public override Term VisitSequence([NotNull] TableurParser.SequenceContext context) { String res = ""; foreach (TableurParser.InstrContext curr in context.instr()) { res = this.Visit(curr).ToString(); } return(new Texte(res)); }
/// <summary> /// Analyse la saisie utilisateur, après découpage de la saisie fait appelle vers les méthodes de la classe Kernel si la saisie est valide. /// </summary> /// <param name="saisie">La chaine de caracteres rentree par l'utilisateur</param> /// <returns>Le resultat de l'analyse pour effecteur le traitement</returns> public String Analyse(string saisie) { ICharStream stream = CharStreams.fromstring(saisie); //Passe la chaine aux classes Antlr4 pour créer l'arbre syntaxique TableurLexer tableurLexer = new TableurLexer(stream); tableurLexer.RemoveErrorListener(ConsoleErrorListener <int> .Instance); tableurLexer.AddErrorListener(new ErrorLexerListener()); CommonTokenStream commonTokenStream = new CommonTokenStream(tableurLexer); TableurParser tableurParser = new TableurParser(commonTokenStream); tableurParser.RemoveErrorListener(ConsoleErrorListener <IToken> .Instance); tableurParser.AddErrorListener(new ErrorParserListener()); TableurParser.SequenceContext expressionContext = tableurParser.sequence(); //Visite de l'arbre pour faire l'execution des commandes Term resul = this.visitor.Visit(expressionContext); return(resul.ToString()); }
/// <summary> /// Visit a parse tree produced by <see cref="TableurParser.sequence"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitSequence([NotNull] TableurParser.SequenceContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="TableurParser.sequence"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitSequence([NotNull] TableurParser.SequenceContext context) { }