📄 semanalysis.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
namespace syn
{
class semAnalysis
{
public string VariableStack = "";//int型变量栈
public string reDefine = "";//重定义的变量
public string unDefine = "";//没有定义变量
//构造方法
public semAnalysis()
{
}
protected void AddToVariableStack(string str)//入栈
{
VariableStack += str+",";
}
protected void AddToReDefine(string str)//入栈
{
reDefine += str + ",";
}
protected void AddToUnDefine(string str)//入栈
{
unDefine += str + ",";
}
public void IsVarible()//声明变量时则入栈
{
int state=0;//遇到int时置1,遇到;时变回0
for (int i = 12; i < Form1.subStringCollection.Count - 1; i++)
{
string str0=(string)Form1.subStringCollection[i];
if (str0.Equals("int"))
{
state = 1;
}
if (str0.Equals(";"))
{
state = 0;
}
if (state == 1)
{
if (Form1.CategoryCode(str0) == 46)
//判断是否为变量
if (((string)Form1.subStringCollection[i - 1]).Equals("int") || ((string)Form1.subStringCollection[i - 1]).Equals(","))
{
if (VariableStack.Contains(str0))
AddToReDefine(str0);
else
AddToVariableStack(str0);
}
else //判断是否被声明
{
if (VariableStack.Contains(str0) == false && (syntaxAnalyser.isInvalid("[0-9]", str0) == false))
AddToUnDefine(str0);
}
}
else
{
if (Form1.CategoryCode(str0) == 46&&(syntaxAnalyser.isInvalid("[0-9]",str0)==false))
if (VariableStack.Contains(str0) == false)
AddToUnDefine(str0);
}
}
//mainForm
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -