?? 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 + -