コード例 #1
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);
        }
コード例 #2
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);
        }
コード例 #3
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);
        }
コード例 #4
0
        public static Node Parse(ParseState parsestate)
        {
            var node = parsestate.BuildParenNumberNode(true);

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

            parsestate.BaseNode.Children.Add(Node.NegativeOneNode);
            return(parsestate.BaseNode);
        }
コード例 #5
0
ファイル: NumTarget.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState parsestate)
		{
			Node node = parsestate.BuildParenNumberNode(true);
			if (node != null)
			{
				return node;
			}
			else
			{
				parsestate.BaseNode.Children.Add(Node.NegativeOneNode);
				return parsestate.BaseNode;
			}
		}
コード例 #6
0
ファイル: Tan.cs プロジェクト: xubingyue/xnamugen
 public static Node Parse(ParseState state)
 {
     return(state.BuildParenNumberNode(true));
 }
コード例 #7
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);
        }
コード例 #8
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;
		}
コード例 #9
0
ファイル: Ceil.cs プロジェクト: lodossDev/xnamugen
		public static Node Parse(ParseState state)
		{
			return state.BuildParenNumberNode(true);
		}
コード例 #10
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;
		}
コード例 #11
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;
		}