private Atom ParseLiteral(TemplateParser.ExprValueContext value) { if (value.integerValue != null) { long t = 0L; if (long.TryParse(value.integerValue.Text, out t)) { return(new Atom(AtomType.INT, t)); } else { //error } } else if (value.floatValue != null) { double t = 0; if (double.TryParse(value.floatValue.Text, out t)) { return(new Atom(AtomType.FLOAT, t)); } else { //error } } else if (value.boolValue != null) { bool t = false; if (bool.TryParse(value.boolValue.Text, out t)) { return(new Atom(AtomType.BOOL, t)); } else { //error } } else if (value.stringValue != null) { return(new Atom(AtomType.STRING, value.stringValue)); } return(new Atom(AtomType.NULL, 0)); }
/// <summary> /// Visit a parse tree produced by <see cref="TemplateParser.exprValue"/>. /// <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 VisitExprValue([NotNull] TemplateParser.ExprValueContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="TemplateParser.exprValue"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitExprValue([NotNull] TemplateParser.ExprValueContext context) { }