コード例 #1
0
ファイル: UnaryParser.cs プロジェクト: HaKDMoDz/eStd
		public override bool Contains(ParserContainsArgs args)
		{
			if (base.Contains(args))
				return true;
			if (Inner != null && args.Push(this))
			{
				var ret = Inner.Contains(args);
				args.Pop();
				return ret;
			}
			return false;
		}
コード例 #2
0
ファイル: ListParser.cs プロジェクト: HaKDMoDz/eStd
		public override bool Contains(ParserContainsArgs args)
		{
			if (base.Contains(args))
				return true;
			if (args.Push(this))
			{
				foreach (var item in Items)
				{
					if (item != null && item.Contains(args))
					{
						args.Pop();
						return true;
					}
				}
				args.Pop();
			}
			return false;
		}
コード例 #3
0
ファイル: UnaryParser.cs プロジェクト: HaKDMoDz/eStd
		public override bool IsLeftRecursive(ParserContainsArgs args)
		{
			if (base.IsLeftRecursive(args))
				return true;
			if (Inner != null)
			{
				if (args.Push(this))
				{
					var ret = Inner.IsLeftRecursive(args);
					args.Pop();
					return ret;
				}
				return false;
			}
			return false;
		}
コード例 #4
0
ファイル: SequenceParser.cs プロジェクト: HaKDMoDz/eStd
		public override bool IsLeftRecursive(ParserContainsArgs args)
		{
			if (base.IsLeftRecursive(args))
				return true;
			if (args.Push(this))
			{
				var item = Items[0];
				if (item != null && item.IsLeftRecursive(args)) {
					args.Pop();
					return true;
				}
				args.Pop();
			}
			return false;
		}