重构语法树的部分,使用单独的类来抽象不同的非终结符节点。 **同时**,将`Pascal`语法的定义从测试项目中移动到核心项目中,在项目中只维护一份对于`Pascal`语法的定义。 Reviewed-on: PostGuard/Canon#23
		
			
				
	
	
		
			24 lines
		
	
	
		
			595 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			595 B
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Canon.Core.Enums;
 | |
| 
 | |
| namespace Canon.Core.SyntaxNodes;
 | |
| 
 | |
| public class Subprogram : NonTerminatedSyntaxNode
 | |
| {
 | |
|     public override NonTerminatorType Type => NonTerminatorType.Subprogram;
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 子程序头部
 | |
|     /// </summary>
 | |
|     public SubprogramHead Head => Children[0].Convert<SubprogramHead>();
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 子程序体
 | |
|     /// </summary>
 | |
|     public SubprogramBody Body => Children[2].Convert<SubprogramBody>();
 | |
| 
 | |
|     public static Subprogram Create(List<SyntaxNodeBase> children)
 | |
|     {
 | |
|         return new Subprogram { Children = children };
 | |
|     }
 | |
| }
 |