grammar.cs
来自「实现LL1文法」· CS 代码 · 共 74 行
CS
74 行
using System;
using System.Collections.Generic;
using System.Text;
namespace LL1
{
class Grammar
{
private int NumOfWenfa;
private Wenfa[] WF;
private char StartSymbols;
public Grammar()
{
NumOfWenfa = 0;
WF = new Wenfa[20];
StartSymbols = new char();
}
public void Insert_Wenfa(char Wenfa_Left,char[] Wenfa_Right)
{
WF[NumOfWenfa] = new Wenfa();
WF[NumOfWenfa].Wenfa_Left = Wenfa_Left;
WF[NumOfWenfa].Wenfa_Right = Wenfa_Right;
NumOfWenfa++;
}
public void Insert_Wenfa(int No,char Wenfa_Left,char[] Wenfa_Right)
{
NumOfWenfa++;
for (int i = NumOfWenfa; i > No; i--)
{
WF[i] = WF[i - 1];
}
WF[No].Wenfa_Left = Wenfa_Left;
WF[No].Wenfa_Right = Wenfa_Right;
}
public void Set_StartSymbols(char Symbols)
{
StartSymbols = Symbols;
}
public void Delete_Wenfa(int No)
{
for (int i = No; i < NumOfWenfa; i++)
{
WF[i] = WF[i + 1];
}
NumOfWenfa--;
}
public void Delete_Wenfa(char Wenfa_Left, char[] Wenfa_Right)
{
for (int i = 0; i < NumOfWenfa; i++)
{
if ((WF[i].Wenfa_Left == Wenfa_Left) &&( WF[i].Wenfa_Right == Wenfa_Right))
{
Delete_Wenfa(i);
break;
}
}
}
public char Get_StartSymbols()
{
return StartSymbols;
}
public int Get_NumOfWenfa()
{
return NumOfWenfa;
}
public Wenfa Get_Wenfa(int No)
{
return WF[No];
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?