⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 symbolset.cs

📁 LL(1)文法判定(C#) SimpleLL1目录下为源程序 EXE目录下为编译好的可执行文件 Product1.txt~Product4.txt为测试用产生式(可直接在程序中加载) Symb
💻 CS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -