private AstStatement AnalyseDeferStatement(AstDeferStmt def) { def.Deferred.Scope = def.Scope; def.Deferred.Parent = def; AnalyseStatement(def.Deferred, out var v); if (v?.Count() > 0) { ReportError(def, $"New statements not allowed"); } def.Scope.DefineSymbol(def, GetUniqueName("defer")); return(def); }
public override string VisitDeferStmt(AstDeferStmt def, int data = 0) { return($"defer {def.Deferred.Accept(this)}".Indent(data)); }
public virtual ReturnType VisitDeferStmt(AstDeferStmt stmt, DataType data = default) => default;