analyze.cs

来自「这是一个用java语言编写的小型C语言的语法分析器。」· CS 代码 · 共 46 行

CS
46
字号
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 + =
减小字号Ctrl + -
显示快捷键?