public override Node VisitVariable([NotNull] FormulaGrammerParser.VariableContext context) { var variableNameToken = context.IDENTIFIER().Symbol; if (this.configuration.HasConstant(variableNameToken.Text)) { return(new ConstantNode(variableNameToken.Text)); } if (this.configuration.IsVariablesSupportDisabled) { ParsingException.ThrowInvalidTokenException(variableNameToken); } var variableName = variableNameToken.Text; if (!this.configuration.IsVariableNameValidationDisabled && !this.configuration.HasVariable(variableName)) { ParsingException.ThrowUnknownVariableException(variableNameToken); } return(new VariableNode(variableName)); }
/// <summary> /// Visit a parse tree produced by <see cref="FormulaGrammerParser.variable"/>. /// <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 VisitVariable([NotNull] FormulaGrammerParser.VariableContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="FormulaGrammerParser.variable"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitVariable([NotNull] FormulaGrammerParser.VariableContext context) { }