private IExpression Visit(VBAConditionalCompilationParser.LiteralContext context) { if (context.HEXLITERAL() != null) { return(VisitHexLiteral(context)); } else if (context.OCTLITERAL() != null) { return(VisitOctLiteral(context)); } else if (context.DATELITERAL() != null) { return(VisitDateLiteral(context)); } else if (context.FLOATLITERAL() != null) { return(VisitFloatLiteral(context)); } else if (context.INTEGERLITERAL() != null) { return(VisitIntegerLiteral(context)); } else if (context.STRINGLITERAL() != null) { return(VisitStringLiteral(context)); } else if (context.TRUE() != null) { return(new ConstantExpression(new BoolValue(true))); } else if (context.FALSE() != null) { return(new ConstantExpression(new BoolValue(false))); } else if (context.NOTHING() != null || context.NULL() != null) { return(new ConstantExpression(null)); } else if (context.EMPTY() != null) { return(new ConstantExpression(EmptyValue.Value)); } throw new Exception(string.Format("Unexpected literal encountered: {0}", ParserRuleContextHelper.GetText(context, _stream))); }
private IExpression VisitHexLiteral(VBAConditionalCompilationParser.LiteralContext context) { return(new HexNumberLiteralExpression(new ConstantExpression(new StringValue(context.HEXLITERAL().GetText())))); }
private IExpression VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext context) { return(new DateLiteralExpression(new ConstantExpression(new StringValue(context.DATELITERAL().GetText())))); }
/// <summary> /// Enter a parse tree produced by <see cref="VBAConditionalCompilationParser.literal"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void EnterLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="VBAConditionalCompilationParser.literal"/>. /// <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 VisitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { return(VisitChildren(context)); }