using CanonSharp.Benchmark.Canon.Core.Abstractions; using CanonSharp.Benchmark.Canon.Core.Enums; using CanonSharp.Benchmark.Canon.Core.LexicalParser; namespace CanonSharp.Benchmark.Canon.Core.SyntaxNodes; public class ProgramHead : NonTerminatedSyntaxNode { public override NonTerminatorType Type => NonTerminatorType.ProgramHead; /// /// 程序名称 /// public IdentifierSemanticToken ProgramName => (IdentifierSemanticToken)Children[1].Convert().Token; public override void PreVisit(SyntaxNodeVisitor visitor) { visitor.PreVisit(this); } public override void PostVisit(SyntaxNodeVisitor visitor) { visitor.PostVisit(this); } public static ProgramHead Create(List children) { return new ProgramHead { Children = children }; } }