Exemplo n.º 1
0
        public override IEnumerable <StructureBase> VisitAutomatonDefinition(CdeltaParser.AutomatonDefinitionContext context)
        {
            var result = new Automaton(context.IDENTIFIER().GetText())
            {
                Modifier  = context.accessModifier()?.GetText(),
                IsPartial = context.PARTIAL() != null,
                DataType  = context.automatonDataType()?.GetText()
            };

            foreach (var child in base.VisitAutomatonDefinition(context))
            {
                if (child is State state)
                {
                    state.Parent = result;
                    result.States.Add(state);
                }
                else if (child is Transition transition)
                {
                    transition.Parent = result;
                    result.Transitions.Add(transition);
                }
            }

            yield return(result);
        }
Exemplo n.º 2
0
        public override object VisitAutomatonDefinition(CdeltaParser.AutomatonDefinitionContext context)
        {
            Automaton automaton = new Automaton(context.IDENTIFIER().GetText());

            ((CodeFile)contextWithStructure[context.Parent]).Automaton = automaton;
            contextWithStructure.Add(context, automaton);

            return(base.VisitAutomatonDefinition(context));
        }
Exemplo n.º 3
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="CdeltaParser.automatonDefinition"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitAutomatonDefinition([NotNull] CdeltaParser.AutomatonDefinitionContext context)
 {
 }
Exemplo n.º 4
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="CdeltaParser.automatonDefinition"/>.
 /// <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 VisitAutomatonDefinition([NotNull] CdeltaParser.AutomatonDefinitionContext context)
 {
     return(VisitChildren(context));
 }