Пример #1
0
        public override object VisitStateDefinition(CdeltaParser.StateDefinitionContext context)
        {
            State state = new State(context.IDENTIFIER().GetText(), context.START() != null, context.END() != null);

            ((Automaton)contextWithStructure[context.Parent]).States.Add(state.Name, state);
            contextWithStructure.Add(context, state);

            return(base.VisitStateDefinition(context));
        }
Пример #2
0
        public override IEnumerable <StructureBase> VisitStateDefinition(CdeltaParser.StateDefinitionContext context)
        {
            var result = new State(context.IDENTIFIER().GetText())
            {
                IsStart = context.START() != null,
                IsEnd   = context.END() != null,
            };

            foreach (var child in base.VisitStateDefinition(context))
            {
                if (child is StateEnter enter)
                {
                    enter.Parent = result;
                    result.Enter = enter;
                }
                else if (child is StateExit exit)
                {
                    exit.Parent = result;
                    result.Exit = exit;
                }
            }

            yield return(result);
        }
Пример #3
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="CdeltaParser.stateDefinition"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitStateDefinition([NotNull] CdeltaParser.StateDefinitionContext context)
 {
 }
Пример #4
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="CdeltaParser.stateDefinition"/>.
 /// <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 VisitStateDefinition([NotNull] CdeltaParser.StateDefinitionContext context)
 {
     return(VisitChildren(context));
 }