Пример #1
0
 public EvalContext(SAN san, StatesSet stateSet, State state)
 {
     this.san = san;
     this.currStateSet = stateSet;
     this.state = state;
 }
Пример #2
0
    // throws RecognitionException [1]
    // $ANTLR start "start"
    // C:\\Users\\otavio\\Desktop\\Fruki\\San2Markov\\SAN.g:67:1: start[SAN san] : (aut= automonus )+ (ev= eventrl )+ ;
    public void start(SAN san)
    {
        Autonomus aut = null;

        Event ev = null;

        try
        {
            // C:\\Users\\otavio\\Desktop\\Fruki\\San2Markov\\SAN.g:67:18: ( (aut= automonus )+ (ev= eventrl )+ )
            // C:\\Users\\otavio\\Desktop\\Fruki\\San2Markov\\SAN.g:67:20: (aut= automonus )+ (ev= eventrl )+
            {
                // C:\\Users\\otavio\\Desktop\\Fruki\\San2Markov\\SAN.g:67:20: (aut= automonus )+
                int cnt1 = 0;
                do
                {
                    int alt1 = 2;
                    int LA1_0 = input.LA(1);

                    if ( (LA1_0 == 16) )
                    {
                        alt1 = 1;
                    }

                    switch (alt1)
                    {
                        case 1 :
                            // C:\\Users\\otavio\\Desktop\\Fruki\\San2Markov\\SAN.g:67:21: aut= automonus
                            {
                                PushFollow(FOLLOW_automonus_in_start559);
                                aut = automonus();
                                state.followingStackPointer--;

                                 san.AddAutonomus(aut);

                            }
                            break;

                        default:
                            if ( cnt1 >= 1 ) goto loop1;
                                EarlyExitException eee1 =
                                    new EarlyExitException(1, input);
                                throw eee1;
                    }
                    cnt1++;
                } while (true);

                loop1:
                    ;	// Stops C# compiler whining that label 'loop1' has no statements

                // C:\\Users\\otavio\\Desktop\\Fruki\\San2Markov\\SAN.g:67:64: (ev= eventrl )+
                int cnt2 = 0;
                do
                {
                    int alt2 = 2;
                    int LA2_0 = input.LA(1);

                    if ( (LA2_0 == 22) )
                    {
                        alt2 = 1;
                    }

                    switch (alt2)
                    {
                        case 1 :
                            // C:\\Users\\otavio\\Desktop\\Fruki\\San2Markov\\SAN.g:67:65: ev= eventrl
                            {
                                PushFollow(FOLLOW_eventrl_in_start568);
                                ev = eventrl();
                                state.followingStackPointer--;

                                 san.AddEvent(ev);

                            }
                            break;

                        default:
                            if ( cnt2 >= 1 ) goto loop2;
                                EarlyExitException eee2 =
                                    new EarlyExitException(2, input);
                                throw eee2;
                    }
                    cnt2++;
                } while (true);

                loop2:
                    ;	// Stops C# compiler whining that label 'loop2' has no statements

            }

        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return ;
    }
Пример #3
0
        public void TestInitialize()
        {
            san = new SAN();

            Autonomus aut1 = new Autonomus("A");
            aut1.AddNode(0);
            aut1.AddNode(1);
            aut1.AddEdge("ev1", 0, 1, 1.0f);
            aut1.AddEdge("ev2", 1, 0, 1.0f);
            san.AddAutonomus(aut1);

            Autonomus aut2 = new Autonomus("B");
            aut2.AddNode(0);
            aut2.AddNode(1);
            aut2.AddEdge("ev3", 0, 1, 1.0f);
            aut2.AddEdge("ev4", 1, 0, 1.0f);
            san.AddAutonomus(aut2);

            Autonomus aut3 = new Autonomus("C");
            aut3.AddNode(0);
            aut3.AddNode(1);
            aut3.AddEdge("ev2", 0, 1, 1.0f);
            aut3.AddEdge("ev3", 1, 0, 1.0f);

            san.AddAutonomus(aut3);

            san.AddEvent("ev1", Event.EventType.LOC, null);
            san.AddEvent("ev2", Event.EventType.LOC, null);
            san.AddEvent("ev3", Event.EventType.LOC, null);
            san.AddEvent("ev4", Event.EventType.LOC, null);
        }
Пример #4
0
        public SAN ParseFile(string filename)
        {
            SAN san = new SAN();
            SANLexer lexer = new SANLexer(new Antlr.Runtime.ANTLRFileStream(filename));
            Antlr.Runtime.CommonTokenStream tokens = new Antlr.Runtime.CommonTokenStream(lexer);

            SANParser parser = new SANParser(tokens);
            parser.start(san);

            return san;
        }
Пример #5
0
 public float Eval(SAN san, StatesSet stateSet, State state)
 {
     if (exprTree != null)
     {
         return exprTree.Eval(new EvalContext(san, stateSet, state));
     }
     else
     {
         return 1.0f;
     }
 }