/// <summary> /// Creer un Terme correspondant a la valeur du terminal non null /// </summary> /// <param name="context">la partie droite de la regle de la grammaire</param> /// <returns>Un Terme numerique si c'est un entier ou flottant. Un terme Texte si c'est une string</returns> public override Term VisitValue([NotNull] TableurParser.ValueContext context) { if (context.INT() != null) { return(new Numeric(context.INT().GetText())); } else if (context.FLOAT() != null) { return(new Numeric(context.FLOAT().GetText())); } else if (context.STRING() != null) { String str = context.STRING().GetText(); str = str.Substring(1, str.Length - 2); return(new Texte(str)); } else { throw new GrammarException(); } }
/// <summary> /// Visit a parse tree produced by the <c>Value</c> /// labeled alternative in <see cref="TableurParser.atom"/>. /// <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 VisitValue([NotNull] TableurParser.ValueContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by the <c>Value</c> /// labeled alternative in <see cref="TableurParser.atom"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitValue([NotNull] TableurParser.ValueContext context) { }