Пример #1
0
        public void DefineEventHandler(IToken stateIdToken, IToken idToken, int nargs, int nlocals)
        {
            int stateId;

            if (!_states.TryGetValue(stateIdToken.Text, out stateId))
            {
                throw new GenerationException(String.Format("line {0}:{1} Invalid state {2}", stateIdToken.Line,
                                                            stateIdToken.CharPositionInLine, stateIdToken.Text));
            }



            if (_events.ContainsKey(stateIdToken.Text + "." + idToken.Text))
            {
                throw new GenerationException(String.Format("line {0}:{1} Event '{2}.{3}' already defined", idToken.Line,
                                                            idToken.CharPositionInLine, stateIdToken.Text, idToken.Text));
            }
            else
            {
                EventSymbol evt = new EventSymbol(stateId, idToken.Text, _ip, nargs, nlocals);
                _events.Add(stateIdToken.Text + "." + idToken.Text, evt);
            }
        }
Пример #2
0
        public void DefineEventHandler(IToken stateIdToken, IToken idToken, int nargs, int nlocals)
        {
            int stateId;
            if (!_states.TryGetValue(stateIdToken.Text, out stateId))
            {
                throw new GenerationException(String.Format("line {0}:{1} Invalid state {2}", stateIdToken.Line, 
                    stateIdToken.CharPositionInLine, stateIdToken.Text));
            }


            
            if (_events.ContainsKey(stateIdToken.Text + "." + idToken.Text))
            {
                throw new GenerationException(String.Format("line {0}:{1} Event '{2}.{3}' already defined", idToken.Line,
                    idToken.CharPositionInLine, stateIdToken.Text, idToken.Text));
            }
            else
            {
                EventSymbol evt = new EventSymbol(stateId, idToken.Text, _ip, nargs, nlocals);
                _events.Add(stateIdToken.Text + "." + idToken.Text, evt);
            }
        }