Пример #1
0
 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)));
 }
Пример #2
0
 private IExpression VisitHexLiteral(VBAConditionalCompilationParser.LiteralContext context)
 {
     return(new HexNumberLiteralExpression(new ConstantExpression(new StringValue(context.HEXLITERAL().GetText()))));
 }
Пример #3
0
 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)
 {
 }
Пример #5
0
 /// <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));
 }