Пример #1
0
		public static Node Parse(ParseState parsestate)
		{
			Operator @operator = parsestate.CurrentOperator;
			if (@operator != Operator.Equals && @operator != Operator.NotEquals) return null;

			parsestate.BaseNode.Arguments.Add(@operator);
			++parsestate.TokenIndex;

			AttackStateType ast = parsestate.ConvertCurrentToken<AttackStateType>();
			if (ast == AttackStateType.None) return null;

			parsestate.BaseNode.Arguments.Add(ast);
			++parsestate.TokenIndex;

			List<Combat.HitType> hittypes = new List<Combat.HitType>();

			while (true)
			{
				if (parsestate.CurrentSymbol != Symbol.Comma) break;
				++parsestate.TokenIndex;

				Combat.HitType? hittype = parsestate.ConvertCurrentToken<Combat.HitType?>();
				if (hittype == null)
				{
					--parsestate.TokenIndex;
					break;
				}

				hittypes.Add(hittype.Value);
				++parsestate.TokenIndex;
			}

			parsestate.BaseNode.Arguments.Add(hittypes.ToArray());
			return parsestate.BaseNode;
		}
Пример #2
0
        public static Node Parse(ParseState state)
        {
            if (state.CurrentSymbol != Symbol.LeftParen)
            {
                return(null);
            }
            ++state.TokenIndex;

            if (state.CurrentUnknown == null)
            {
                return(null);
            }
            xnaMugen.Assertion assert = state.ConvertCurrentToken <xnaMugen.Assertion>();

            state.BaseNode.Arguments.Add(assert);
            ++state.TokenIndex;

            if (state.CurrentSymbol != Symbol.RightParen)
            {
                return(null);
            }
            ++state.TokenIndex;

            return(state.BaseNode);
        }
Пример #3
0
        public static Node Parse(ParseState parsestate)
        {
            Operator @operator = parsestate.CurrentOperator;

            if (@operator != Operator.Equals && @operator != Operator.NotEquals)
            {
                return(null);
            }

            parsestate.BaseNode.Arguments.Add(@operator);
            ++parsestate.TokenIndex;

            AttackStateType ast = parsestate.ConvertCurrentToken <AttackStateType>();

            if (ast == AttackStateType.None)
            {
                return(null);
            }

            parsestate.BaseNode.Arguments.Add(ast);
            ++parsestate.TokenIndex;

            List <Combat.HitType> hittypes = new List <Combat.HitType>();

            while (true)
            {
                if (parsestate.CurrentSymbol != Symbol.Comma)
                {
                    break;
                }
                ++parsestate.TokenIndex;

                Combat.HitType?hittype = parsestate.ConvertCurrentToken <Combat.HitType?>();
                if (hittype == null)
                {
                    --parsestate.TokenIndex;
                    break;
                }

                hittypes.Add(hittype.Value);
                ++parsestate.TokenIndex;
            }

            parsestate.BaseNode.Arguments.Add(hittypes.ToArray());
            return(parsestate.BaseNode);
        }
Пример #4
0
		public static Node Parse(ParseState parsestate)
		{
			Axis axis = parsestate.ConvertCurrentToken<Axis>();
			if (axis == Axis.None) return null;

			++parsestate.TokenIndex;

			parsestate.BaseNode.Arguments.Add(axis);
			return parsestate.BaseNode;
		}
Пример #5
0
        public static Node Parse(ParseState parsestate)
        {
            var axis = parsestate.ConvertCurrentToken <Axis>();

            if (axis == Axis.None)
            {
                return(null);
            }

            ++parsestate.TokenIndex;

            parsestate.BaseNode.Arguments.Add(axis);
            return(parsestate.BaseNode);
        }
Пример #6
0
		public static Node Parse(ParseState parsestate)
		{
			Operator @operator = parsestate.CurrentOperator;
			if (@operator != Operator.Equals && @operator != Operator.NotEquals) return null;

			++parsestate.TokenIndex;

			xnaMugen.MoveType movetype = parsestate.ConvertCurrentToken<xnaMugen.MoveType>();
			if (movetype == xnaMugen.MoveType.Unchanged || movetype == xnaMugen.MoveType.None) return null;

			++parsestate.TokenIndex;

			parsestate.BaseNode.Arguments.Add(@operator);
			parsestate.BaseNode.Arguments.Add(movetype);
			return parsestate.BaseNode;
		}
Пример #7
0
		public static Node Parse(ParseState parsestate)
		{
			Operator @operator = parsestate.CurrentOperator;
			if (@operator != Operator.Equals && @operator != Operator.NotEquals) return null;

			++parsestate.TokenIndex;

			xnaMugen.Physics physics = parsestate.ConvertCurrentToken<xnaMugen.Physics>();
			if (physics == xnaMugen.Physics.Unchanged || physics == xnaMugen.Physics.None) return null;

			++parsestate.TokenIndex;

			parsestate.BaseNode.Arguments.Add(@operator);
			parsestate.BaseNode.Arguments.Add(physics);
			return parsestate.BaseNode;
		}
Пример #8
0
        public static Node Parse(ParseState parsestate)
        {
            Operator @operator = parsestate.CurrentOperator;

            if (@operator != Operator.Equals && @operator != Operator.NotEquals)
            {
                return(null);
            }

            ++parsestate.TokenIndex;

            xnaMugen.Physics physics = parsestate.ConvertCurrentToken <xnaMugen.Physics>();
            if (physics == xnaMugen.Physics.Unchanged || physics == xnaMugen.Physics.None)
            {
                return(null);
            }

            ++parsestate.TokenIndex;

            parsestate.BaseNode.Arguments.Add(@operator);
            parsestate.BaseNode.Arguments.Add(physics);
            return(parsestate.BaseNode);
        }
Пример #9
0
        public static Node Parse(ParseState parsestate)
        {
            Operator @operator = parsestate.CurrentOperator;

            if (@operator != Operator.Equals && @operator != Operator.NotEquals)
            {
                return(null);
            }

            ++parsestate.TokenIndex;

            xnaMugen.MoveType movetype = parsestate.ConvertCurrentToken <xnaMugen.MoveType>();
            if (movetype == xnaMugen.MoveType.Unchanged || movetype == xnaMugen.MoveType.None)
            {
                return(null);
            }

            ++parsestate.TokenIndex;

            parsestate.BaseNode.Arguments.Add(@operator);
            parsestate.BaseNode.Arguments.Add(movetype);
            return(parsestate.BaseNode);
        }
Пример #10
0
		public static Node Parse(ParseState state)
		{
			if (state.CurrentSymbol != Symbol.LeftParen) return null;
			++state.TokenIndex;

			if (state.CurrentUnknown == null) return null;
			xnaMugen.Assertion assert = state.ConvertCurrentToken<xnaMugen.Assertion>();

			state.BaseNode.Arguments.Add(assert);
			++state.TokenIndex;

			if (state.CurrentSymbol != Symbol.RightParen) return null;
			++state.TokenIndex;

			return state.BaseNode;
		}