public override ASTNode VisitSwitchItem([NotNull] p4Parser.SwitchItemContext context) { if (context.block() != null && context.Break() != null) { return(new SwitchItemAstNode(Visit(context.expr()), Visit(context.block()), true, context.CaseKeyword().Symbol)); } else if (context.block() == null && context.Break() != null) { return(new SwitchItemAstNode(Visit(context.expr()), null, true, context.CaseKeyword().Symbol)); } else if (context.block() == null && context.Break() == null) { return(new SwitchItemAstNode(Visit(context.expr()), null, false, context.CaseKeyword().Symbol)); } else if (context.block() != null && context.Break() == null) { return(new SwitchItemAstNode(Visit(context.expr()), Visit(context.block()), false, context.CaseKeyword().Symbol)); } throw new Exception("VisitSwitchItem Exception"); }
/// <summary> /// Visit a parse tree produced by <see cref="p4Parser.switchItem"/>. /// <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 VisitSwitchItem([NotNull] p4Parser.SwitchItemContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="p4Parser.switchItem"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitSwitchItem([NotNull] p4Parser.SwitchItemContext context) { }