symbolset.cs

来自「LL(1)文法判定(C#) SimpleLL1目录下为源程序 EXE目录下为」· CS 代码 · 共 88 行

CS
88
字号
using System;
using System.Collections;

namespace SimpleLL1
{
	/// <summary>
	/// SymbolSet 的摘要说明。
	/// </summary>
	public class SymbolSet
	{

		public ArrayList EndallSet;
		public ArrayList NotEndallSet;
		
		private static SymbolSet symbolset=null;

		//构造函数私有化,用于产生单例
		private SymbolSet()
		{
			EndallSet=new ArrayList();
			NotEndallSet=new ArrayList();
		}
		//返回单例唯一的SymbolSet
		public static SymbolSet getInstance()
		{
			if(symbolset==null)
				symbolset=new SymbolSet();
			return symbolset;
		}

		#region 返回字符串形式的终结符集
		/// <summary>
		/// 返回字符串形式的终结符集
		/// </summary>
		/// <returns>string</returns>
		public string StringEndall()
		{
			string strEndall="";
			IEnumerator myEnumerator = EndallSet.GetEnumerator();
			while ( myEnumerator.MoveNext() )
				strEndall+=(string)myEnumerator.Current + " " ;
			return strEndall.Trim();
		}
		#endregion

		#region 返回字符串形式的非终结符集
		/// <summary>
		/// 返回字符串形式的非终结符集
		/// </summary>
		/// <returns>string</returns>
		public string StringNotEndall()
		{
			string strNotEndall="";
			IEnumerator myEnumerator = NotEndallSet.GetEnumerator();
			while ( myEnumerator.MoveNext() )
				strNotEndall+=(string)myEnumerator.Current + " " ;
			return strNotEndall.Trim();
		}
		#endregion

		#region IsInNotEndSet() 检测给的字符是否是非终结符集中的符号

		public bool IsInNotEndSet(string strChar)
		{
			string strNotEndSet=StringNotEndall();
			if(strNotEndSet.IndexOf(strChar)<0)
				return false;
			else 
				return true;
		}

		#endregion

		#region IsInEndSet() 检测给的字符是否是终结符集中的符号

		public bool IsInEndSet(string strChar)
		{
			string strEndSet=StringEndall();
			if(strEndSet.IndexOf(strChar)<0)
				return false;
			else 
				return true;
		}

		#endregion
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?