⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphparserbase.cs

📁 C#编写的c#编译器
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Reflection;
using System.Collections;

using DDW.CSharp.Dom;

namespace DDW.CSharp.Walk
{		
	public abstract class GraphParserBase
	{
		public virtual void Parse(IGraph ig)
		{
			if(ig == null) return;
			BeginParse(ig);
			switch(ig.GraphType)
			{ 
				case GraphTypes.CompileUnit :
				{
					ParseElement((CompileUnit)ig);
					break;
				}
				case GraphTypes.Import :
				{
					ParseElement((Import)ig);
					break;
				}
				case GraphTypes.NamespaceDecl :
				{
					ParseElement((NamespaceDecl)ig);
					break;
				}
				case GraphTypes.MethodDecl :
				{
					ParseElement((MethodDecl)ig);
					break;
				}
				case GraphTypes.FieldDecl :
				{
					ParseElement((FieldDecl)ig);
					break;
				}
				case GraphTypes.PropertyDecl :
				{
					ParseElement((PropertyDecl)ig);
					break;
				}
				case GraphTypes.EventDecl :
				{
					ParseElement((EventDecl)ig);
					break;
				}
				case GraphTypes.ConstantDecl :
				{
					ParseElement((ConstantDecl)ig);
					break;
				}
				case GraphTypes.IndexerDecl :
				{
					ParseElement((IndexerDecl)ig);
					break;
				}
				case GraphTypes.OperatorDecl :
				{
					ParseElement((OperatorDecl)ig);
					break;
				}
				case GraphTypes.ConstructorDecl :
				{
					ParseElement((ConstructorDecl)ig);
					break;
				}
				case GraphTypes.DestructorDecl :
				{
					ParseElement((DestructorDecl)ig);
					break;
				}
				case GraphTypes.AccessorDecl :
				{
					ParseElement((AccessorDecl)ig);
					break;
				}
				case GraphTypes.EnumMemberDecl :
				{
					ParseElement((EnumMemberDecl)ig);
					break;
				}
				case GraphTypes.ClassDecl :
				{
					ParseElement((ClassDecl)ig);
					break;
				}
				case GraphTypes.InterfaceDecl :
				{
					ParseElement((InterfaceDecl)ig);
					break;
				}
				case GraphTypes.StructDecl :
				{
					ParseElement((StructDecl)ig);
					break;
				}
				case GraphTypes.EnumDecl :
				{
					ParseElement((EnumDecl)ig);
					break;
				}
				case GraphTypes.DelegateDecl :
				{
					ParseElement((DelegateDecl)ig);
					break;
				}
				case GraphTypes.ExprStmt :
				{
					ParseElement((ExprStmt)ig);
					break;
				}
				case GraphTypes.CommentStmt :
				{
					ParseElement((CommentStmt)ig);
					break;
				}
				case GraphTypes.VariableDeclStmt :
				{
					ParseElement((VariableDeclStmt)ig);
					break;
				}
				case GraphTypes.ConstantDeclStmt :
				{
					ParseElement((ConstantDeclStmt)ig);
					break;
				}
				case GraphTypes.IfStmt :
				{
					ParseElement((IfStmt)ig);
					break;
				}
				case GraphTypes.SwitchStmt :
				{
					ParseElement((SwitchStmt)ig);
					break;
				}
				case GraphTypes.Case :
				{
					ParseElement((Case)ig);
					break;
				}
				case GraphTypes.IterationStmt :
				{
					ParseElement((IterationStmt)ig);
					break;
				}
				case GraphTypes.ForEachStmt :
				{
					ParseElement((ForEachStmt)ig);
					break;
				}
				case GraphTypes.GotoStmt :
				{
					ParseElement((GotoStmt)ig);
					break;
				}
				case GraphTypes.LabeledStmt :
				{
					ParseElement((LabeledStmt)ig);
					break;
				}
				case GraphTypes.ReturnStmt :
				{
					ParseElement((ReturnStmt)ig);
					break;
				}
				case GraphTypes.BreakStmt :
				{
					ParseElement((BreakStmt)ig);
					break;
				}
				case GraphTypes.ContinueStmt :
				{
					ParseElement((ContinueStmt)ig);
					break;
				}
				case GraphTypes.CheckedStmt :
				{
					ParseElement((CheckedStmt)ig);
					break;
				}
				case GraphTypes.UncheckedStmt :
				{
					ParseElement((UncheckedStmt)ig);
					break;
				}
				case GraphTypes.LockStmt :
				{
					ParseElement((LockStmt)ig);
					break;
				}
				case GraphTypes.UsingStmt :
				{
					ParseElement((UsingStmt)ig);
					break;
				}
				case GraphTypes.ThrowStmt :
				{
					ParseElement((ThrowStmt)ig);
					break;
				}
				case GraphTypes.TryCatchFinallyStmt :
				{
					ParseElement((TryCatchFinallyStmt)ig);
					break;
				}
				case GraphTypes.Catch :
				{
					ParseElement((Catch)ig);
					break;
				}
				case GraphTypes.AttachDelegateStmt :
				{
					ParseElement((AttachDelegateStmt)ig);
					break;
				}
				case GraphTypes.RemoveDelegateStmt :
				{
					ParseElement((RemoveDelegateStmt)ig);
					break;
				}
				case GraphTypes.AssignExpr :
				{
					ParseElement((AssignExpr)ig);
					break;
				}
				case GraphTypes.UnaryExpr :
				{
					ParseElement((UnaryExpr)ig);
					break;
				}
				case GraphTypes.BinaryExpr :
				{
					ParseElement((BinaryExpr)ig);
					break;
				}
				case GraphTypes.TernaryExpr :
				{
					ParseElement((TernaryExpr)ig);
					break;
				}
				case GraphTypes.CastExpr :
				{
					ParseElement((CastExpr)ig);
					break;
				}
				case GraphTypes.SubExpr :
				{
					ParseElement((SubExpr)ig);
					break;
				}
				case GraphTypes.UnknownReference :
				{
					ParseElement((UnknownReference)ig);
					break;
				}
				case GraphTypes.ThisRef :
				{
					ParseElement((ThisRef)ig);
					break;
				}
				case GraphTypes.BaseRef :
				{
					ParseElement((BaseRef)ig);
					break;
				}
				case GraphTypes.PropertySetValueRef :
				{
					ParseElement((PropertySetValueRef)ig);
					break;
				}
				case GraphTypes.ArgumentRef :
				{
					ParseElement((ArgumentRef)ig);
					break;
				}
				case GraphTypes.LocalRef :
				{
					ParseElement((LocalRef)ig);
					break;
				}
				case GraphTypes.TypeOfExpr :
				{
					ParseElement((TypeOfExpr)ig);
					break;
				}
				case GraphTypes.FieldRef :
				{
					ParseElement((FieldRef)ig);
					break;
				}
				case GraphTypes.ArrayElementRef :
				{
					ParseElement((ArrayElementRef)ig);
					break;
				}
				case GraphTypes.MethodRef :
				{
					ParseElement((MethodRef)ig);
					break;
				}
				case GraphTypes.PropertyRef :
				{
					ParseElement((PropertyRef)ig);
					break;
				}
				case GraphTypes.EventRef :
				{
					ParseElement((EventRef)ig);
					break;
				}
				case GraphTypes.MethodInvokeExpr :
				{
					ParseElement((MethodInvokeExpr)ig);
					break;
				}
				case GraphTypes.PostfixExpr :
				{
					ParseElement((PostfixExpr)ig);
					break;
				}
				case GraphTypes.DelegateInvokeExpr :
				{
					ParseElement((DelegateInvokeExpr)ig);
					break;
				}
				case GraphTypes.IndexerRef :
				{
					ParseElement((IndexerRef)ig);
					break;
				}
				case GraphTypes.MemberAccess :
				{
					ParseElement((MemberAccess)ig);
					break;
				}
				case GraphTypes.ArrayCreateExpr :
				{
					ParseElement((ArrayCreateExpr)ig);
					break;
				}
				case GraphTypes.ObjectCreateExpr :
				{
					ParseElement((ObjectCreateExpr)ig);
					break;
				}
				case GraphTypes.CreateDelegateExpr :
				{
					ParseElement((CreateDelegateExpr)ig);
					break;
				}
				case GraphTypes.BooleanLiteral :
				{
					ParseElement((BooleanLiteral)ig);
					break;
				}
				case GraphTypes.CharLiteral :
				{
					ParseElement((CharLiteral)ig);
					break;
				}
				case GraphTypes.IntegerLiteral :
				{
					ParseElement((IntegerLiteral)ig);
					break;
				}
				case GraphTypes.NullLiteral :
				{
					ParseElement((NullLiteral)ig);
					break;
				}
				case GraphTypes.RealLiteral :
				{
					ParseElement((RealLiteral)ig);
					break;
				}
				case GraphTypes.StringLiteral :
				{
					ParseElement((StringLiteral)ig);
					break;
				}
				case GraphTypes.ArrayInitializer :
				{
					ParseElement((ArrayInitializer)ig);
					break;
				}
				case GraphTypes.CustomAttribute :
				{
					ParseElement((CustomAttribute)ig);
					break;
				}
				case GraphTypes.TypeRef :
				{
					ParseElement((TypeRef)ig);
					break;
				}
				case GraphTypes.BuiltInType :
				{
					ParseElement((BuiltInType)ig);
					break;
				}
				case GraphTypes.ParamDecl :
				{
					ParseElement((ParamDecl)ig);
					break;
				}
				case GraphTypes.Param :
				{
					ParseElement((Param)ig);
					break;
				}
				case GraphTypes.VariableDecl :
				{
					ParseElement((VariableDecl)ig);
					break;
				}
				case GraphTypes.LinePragma :
				{
					ParseElement((LinePragma)ig);
					break;
				}
				case GraphTypes.Comment :
				{
					ParseElement((Comment)ig);
					break;
				}
				case GraphTypes.AssemblyReference :
				{
					ParseElement((AssemblyReference)ig);
					break;
				}
				case GraphTypes.RankSpecifier :
				{
					ParseElement((RankSpecifier)ig);
					break;
				}				
				case GraphTypes.Declarator :
				{
					ParseElement((Declarator)ig);
					break;
				}
				case GraphTypes.CompileUnitCollection :
				{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -