📄 analyze.cs
字号:
using System;
using parserLib;
using analyzeLib;
namespace analyze
{
/// <summary>
/// 语义分析,语义分析主要包括两个部分:符号表生成+类型检查
/// </summary>
class Analyze
{
/// <summary>
/// 语义分析入口
/// </summary>
[STAThread]
static void Main(string[] args)
{
string tmpfile = args[0];
if(tmpfile==null)
{
System.Console.Out.WriteLine("error in the in_para");
System.Console.In.Read();
System.Environment.Exit(0);
}
ParserReader pr = new ParserReader(tmpfile); //这里需要构建parserlib库,引入该库,方能正常运行
pr.ReadXML();
TreeNode root = pr.GetRoot(); //得到语法分析树
SymTable symtable = new SymTable(tmpfile);
if(root!=null)
symtable.buildSymtable(root); //构造符号表
else
{
System.Console.Out.WriteLine("syntax tree error!");
System.Console.In.Read();
System.Environment.Exit(0);
}
typeCheck tc = new typeCheck(tmpfile,symtable);
tc.typeCheckHelp(root);
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -