/// <summary> /// Creer La fonction correspondant a l'identifiant ecrit /// </summary> /// <param name="context">la partie droite de la regle de la grammaire</param> /// <returns>Un Terme representant la fonction ecrite avec ses parametre places</returns> public override Term VisitFunction([NotNull] TableurParser.FunctionContext context) { string func = context.FNCTN().GetText(); TableurParser.ExprContext[] param = context.expr(); Term[] vars = new Term[param.Length]; int i = 0; foreach (TableurParser.ExprContext curr in param) { vars[i] = this.Visit(curr); i++; } return(Operation.createFunc(func, vars)); }
/// <summary> /// Visit a parse tree produced by <see cref="TableurParser.function"/>. /// <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 VisitFunction([NotNull] TableurParser.FunctionContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="TableurParser.function"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitFunction([NotNull] TableurParser.FunctionContext context) { }