using Canon.Core.CodeGenerators; using Canon.Core.Enums; namespace Canon.Core.SyntaxNodes; public class ProgramStruct : NonTerminatedSyntaxNode { public override NonTerminatorType Type => NonTerminatorType.ProgramStruct; /// /// 程序头 /// public ProgramHead Head => Children[0].Convert(); /// /// 程序体 /// public ProgramBody Body => Children[2].Convert(); public static ProgramStruct Create(List children) { return new ProgramStruct { Children = children }; } public override void GenerateCCode(CCodeBuilder builder) { builder.AddString("#include "); Body.GenerateCCode(builder); } }