コード例 #1
0
ファイル: TimeMod.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState parsestate)
		{
			Operator @operator = parsestate.CurrentOperator;
			switch (@operator)
			{
				case Operator.Equals:
				case Operator.NotEquals:
				case Operator.Greater:
				case Operator.GreaterEquals:
				case Operator.Lesser:
				case Operator.LesserEquals:
					++parsestate.TokenIndex;
					break;

				default:
					return null;
			}

			Node child1 = parsestate.BuildNode(true);
			if (child1 == null) return null;

			if (parsestate.CurrentSymbol != Symbol.Comma) return null;
			++parsestate.TokenIndex;

			Node child2 = parsestate.BuildNode(true);
			if (child2 == null) return null;

			parsestate.BaseNode.Children.Add(child1);
			parsestate.BaseNode.Children.Add(child2);

			return parsestate.BaseNode;
		}
コード例 #2
0
ファイル: IfElse.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState parsestate)
		{
			if (parsestate.CurrentSymbol != Symbol.LeftParen) return null;
			++parsestate.TokenIndex;

			Node c1 = parsestate.BuildNode(true);
			if (c1 == null) return null;
			parsestate.BaseNode.Children.Add(c1);

			if (parsestate.CurrentSymbol != Symbol.Comma) return null;
			++parsestate.TokenIndex;

			Node c2 = parsestate.BuildNode(true);
			if (c2 == null) return null;
			parsestate.BaseNode.Children.Add(c2);

			if (parsestate.CurrentSymbol != Symbol.Comma) return null;
			++parsestate.TokenIndex;

			Node c3 = parsestate.BuildNode(true);
			if (c3 == null) return null;
			parsestate.BaseNode.Children.Add(c3);

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

			return parsestate.BaseNode;
		}
コード例 #3
0
        public static Node Parse(ParseState parsestate)
        {
            if (parsestate.CurrentSymbol != Symbol.LeftParen)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node c1 = parsestate.BuildNode(true);

            if (c1 == null)
            {
                return(null);
            }
            parsestate.BaseNode.Children.Add(c1);

            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node c2 = parsestate.BuildNode(true);

            if (c2 == null)
            {
                return(null);
            }
            parsestate.BaseNode.Children.Add(c2);

            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node c3 = parsestate.BuildNode(true);

            if (c3 == null)
            {
                return(null);
            }
            parsestate.BaseNode.Children.Add(c3);

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

            return(parsestate.BaseNode);
        }
コード例 #4
0
        public static Node Parse(ParseState parsestate)
        {
            Node node = parsestate.BuildParenNumberNode(true);

            if (node == null)
            {
                return(null);
            }

            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node child = parsestate.BuildNode(false);

            if (child == null)
            {
                return(null);
            }

            node.Children.Add(child);

            return(node);
        }
コード例 #5
0
        public static Node Parse(ParseState parsestate)
        {
            Node node = parsestate.BuildParenNumberNode(true);

            if (node == null)
            {
                node = parsestate.BaseNode;

#warning Hack
                node.Children.Add(new Node(new Token("-1", new Tokenizing.IntData())));
            }

            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node child = parsestate.BuildNode(false);
            if (child == null)
            {
                return(null);
            }

            node.Children.Add(child);

            return(node);
        }
コード例 #6
0
        public static Node Parse(ParseState parsestate)
        {
            var node = parsestate.BuildParenNumberNode(true);

            if (node == null)
            {
                node = parsestate.BaseNode;

#warning Hack
                node.Children.Add(Node.ZeroNode);
            }

            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            var child = parsestate.BuildNode(false);
            if (child == null)
            {
                return(null);
            }

            node.Children.Add(child);

            return(node);
        }
コード例 #7
0
        public static Node Parse(ParseState parsestate)
        {
            Operator @operator = parsestate.CurrentOperator;

            switch (@operator)
            {
            case Operator.Equals:
            case Operator.NotEquals:
            case Operator.Greater:
            case Operator.GreaterEquals:
            case Operator.Lesser:
            case Operator.LesserEquals:
                ++parsestate.TokenIndex;
                break;

            default:
                return(null);
            }

            Node child1 = parsestate.BuildNode(true);

            if (child1 == null)
            {
                return(null);
            }

            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node child2 = parsestate.BuildNode(true);

            if (child2 == null)
            {
                return(null);
            }

            parsestate.BaseNode.Children.Add(child1);
            parsestate.BaseNode.Children.Add(child2);

            return(parsestate.BaseNode);
        }
コード例 #8
0
ファイル: Redirection.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState parsestate)
		{
			if (parsestate.CurrentSymbol != Symbol.Comma) return null;
			++parsestate.TokenIndex;

			Node child = parsestate.BuildNode(false);
			if (child == null) return null;
			parsestate.BaseNode.Children.Add(child);

			return parsestate.BaseNode;
		}
コード例 #9
0
        public static Node Parse(ParseState parsestate)
        {
            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node child = parsestate.BuildNode(false);

            if (child == null)
            {
                return(null);
            }
            parsestate.BaseNode.Children.Add(child);

            return(parsestate.BaseNode);
        }
コード例 #10
0
ファイル: ProjGuarded.cs プロジェクト: xubingyue/xnamugen
        public static Node Parse(ParseState parsestate)
        {
            Node basenode = parsestate.BuildParenNumberNode(true);

            if (basenode == null)
            {
#warning Hack
                parsestate.BaseNode.Children.Add(Node.ZeroNode);
                basenode = parsestate.BaseNode;
            }

            if (parsestate.CurrentOperator != Operator.Equals)
            {
                return(null);
            }
            ++parsestate.TokenIndex;

            Node arg1 = parsestate.BuildNode(false);
            if (arg1 == null)
            {
                return(null);
            }

            basenode.Children.Add(arg1);

            if (parsestate.CurrentSymbol != Symbol.Comma)
            {
#warning Hack
                basenode.Children.Add(Node.ZeroNode);
                basenode.Arguments.Add(Operator.Equals);

                return(basenode);
            }

            ++parsestate.TokenIndex;

            Operator @operator = parsestate.CurrentOperator;
            if (@operator == Operator.Equals || @operator == Operator.NotEquals)
            {
                ++parsestate.TokenIndex;

                Node rangenode = parsestate.BuildRangeNode();
                if (rangenode != null)
                {
                    basenode.Children.Add(rangenode.Children[1]);
                    basenode.Children.Add(rangenode.Children[2]);
                    basenode.Arguments.Add(@operator);
                    basenode.Arguments.Add(rangenode.Arguments[1]);
                    basenode.Arguments.Add(rangenode.Arguments[2]);

                    return(basenode);
                }

                --parsestate.TokenIndex;
            }

            switch (@operator)
            {
            case Operator.Equals:
            case Operator.NotEquals:
            case Operator.GreaterEquals:
            case Operator.LesserEquals:
            case Operator.Lesser:
            case Operator.Greater:
                ++parsestate.TokenIndex;
                break;

            default:
                return(null);
            }

            Node arg = parsestate.BuildNode(false);
            if (arg == null)
            {
                return(null);
            }

            basenode.Arguments.Add(@operator);
            basenode.Children.Add(arg);

            return(basenode);
        }
コード例 #11
0
ファイル: ProjContact.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState parsestate)
		{
			Node basenode = parsestate.BuildParenNumberNode(true);
			if (basenode == null)
			{
#warning Hack
				parsestate.BaseNode.Children.Add(Node.ZeroNode);
				basenode = parsestate.BaseNode;
			}

			if (parsestate.CurrentOperator != Operator.Equals) return null;
			++parsestate.TokenIndex;

			Node arg1 = parsestate.BuildNode(false);
			if (arg1 == null) return null;

			basenode.Children.Add(arg1);

			if (parsestate.CurrentSymbol != Symbol.Comma)
			{
#warning Hack
				basenode.Children.Add(Node.ZeroNode);
				basenode.Arguments.Add(Operator.Equals);

				return basenode;
			}

			++parsestate.TokenIndex;

			Operator @operator = parsestate.CurrentOperator;
			if (@operator == Operator.Equals || @operator == Operator.NotEquals)
			{
				++parsestate.TokenIndex;

				Node rangenode = parsestate.BuildRangeNode();
				if (rangenode != null)
				{
					basenode.Children.Add(rangenode.Children[1]);
					basenode.Children.Add(rangenode.Children[2]);
					basenode.Arguments.Add(@operator);
					basenode.Arguments.Add(rangenode.Arguments[1]);
					basenode.Arguments.Add(rangenode.Arguments[2]);

					return basenode;
				}

				--parsestate.TokenIndex;
			}

			switch (@operator)
			{
				case Operator.Equals:
				case Operator.NotEquals:
				case Operator.GreaterEquals:
				case Operator.LesserEquals:
				case Operator.Lesser:
				case Operator.Greater:
					++parsestate.TokenIndex;
					break;

				default:
					return null;
			}

			Node arg = parsestate.BuildNode(false);
			if (arg == null) return null;

			basenode.Arguments.Add(@operator);
			basenode.Children.Add(arg);

			return basenode;
		}
コード例 #12
0
ファイル: AnimElem.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState state)
		{
			Operator initoperator = state.CurrentOperator;
			switch (initoperator)
			{
#warning Compatability. Equals should be the only one that works.
				case Operator.Equals:
				case Operator.NotEquals:
				case Operator.GreaterEquals:
				case Operator.LesserEquals:
					++state.TokenIndex;
					break;

				default:
					return null;
			}

			Node arg1 = state.BuildNode(false);
			if (arg1 == null) return null;

			state.BaseNode.Children.Add(arg1);

			if (state.CurrentSymbol != Symbol.Comma)
			{
#warning Hack
				state.BaseNode.Children.Add(Node.ZeroNode);
				state.BaseNode.Arguments.Add(Operator.Equals);

				return state.BaseNode;
			}

			++state.TokenIndex;

			Operator @operator = state.CurrentOperator;
			if (@operator == Operator.Equals || @operator == Operator.NotEquals)
			{
				++state.TokenIndex;

				Node rangenode = state.BuildRangeNode();
				if (rangenode != null)
				{
					state.BaseNode.Children.Add(rangenode.Children[1]);
					state.BaseNode.Children.Add(rangenode.Children[2]);
					state.BaseNode.Arguments.Add(@operator);
					state.BaseNode.Arguments.Add(rangenode.Arguments[1]);
					state.BaseNode.Arguments.Add(rangenode.Arguments[2]);

					return state.BaseNode;
				}

				--state.TokenIndex;
			}

			switch (@operator)
			{
				case Operator.Equals:
				case Operator.NotEquals:
				case Operator.GreaterEquals:
				case Operator.LesserEquals:
				case Operator.Lesser:
				case Operator.Greater:
					++state.TokenIndex;
					break;

				default:
					return null;
			}

			Node arg = state.BuildNode(false);
			if (arg == null) return null;

			state.BaseNode.Arguments.Add(@operator);
			state.BaseNode.Children.Add(arg);

			return state.BaseNode;
		}
コード例 #13
0
ファイル: Redirection.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState parsestate)
		{
			Node node = parsestate.BuildParenNumberNode(true);
			if (node == null)
			{
				node = parsestate.BaseNode;

#warning Hack
				node.Children.Add(new Node(new Token("-1", new Tokenizing.IntData())));
			}

			if (parsestate.CurrentSymbol != Symbol.Comma) return null;
			++parsestate.TokenIndex;

			Node child = parsestate.BuildNode(false);
			if (child == null) return null;

			node.Children.Add(child);

			return node;
		}
コード例 #14
0
ファイル: Redirection.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState parsestate)
		{
			Node node = parsestate.BuildParenNumberNode(true);
			if (node == null) return null;

			if (parsestate.CurrentSymbol != Symbol.Comma) return null;
			++parsestate.TokenIndex;

			Node child = parsestate.BuildNode(false);
			if (child == null) return null;

			node.Children.Add(child);

			return node;
		}
コード例 #15
0
ファイル: AnimElem.cs プロジェクト: xubingyue/xnamugen
        public static Node Parse(ParseState state)
        {
            Operator initoperator = state.CurrentOperator;

            switch (initoperator)
            {
#warning Compatability. Equals should be the only one that works.
            case Operator.Equals:
            case Operator.NotEquals:
            case Operator.GreaterEquals:
            case Operator.LesserEquals:
                ++state.TokenIndex;
                break;

            default:
                return(null);
            }

            Node arg1 = state.BuildNode(false);
            if (arg1 == null)
            {
                return(null);
            }

            state.BaseNode.Children.Add(arg1);

            if (state.CurrentSymbol != Symbol.Comma)
            {
#warning Hack
                state.BaseNode.Children.Add(Node.ZeroNode);
                state.BaseNode.Arguments.Add(Operator.Equals);

                return(state.BaseNode);
            }

            ++state.TokenIndex;

            Operator @operator = state.CurrentOperator;
            if (@operator == Operator.Equals || @operator == Operator.NotEquals)
            {
                ++state.TokenIndex;

                Node rangenode = state.BuildRangeNode();
                if (rangenode != null)
                {
                    state.BaseNode.Children.Add(rangenode.Children[1]);
                    state.BaseNode.Children.Add(rangenode.Children[2]);
                    state.BaseNode.Arguments.Add(@operator);
                    state.BaseNode.Arguments.Add(rangenode.Arguments[1]);
                    state.BaseNode.Arguments.Add(rangenode.Arguments[2]);

                    return(state.BaseNode);
                }

                --state.TokenIndex;
            }

            switch (@operator)
            {
            case Operator.Equals:
            case Operator.NotEquals:
            case Operator.GreaterEquals:
            case Operator.LesserEquals:
            case Operator.Lesser:
            case Operator.Greater:
                ++state.TokenIndex;
                break;

            default:
                return(null);
            }

            Node arg = state.BuildNode(false);
            if (arg == null)
            {
                return(null);
            }

            state.BaseNode.Arguments.Add(@operator);
            state.BaseNode.Children.Add(arg);

            return(state.BaseNode);
        }