Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public override string VisitDeferStmt(AstDeferStmt def, int data = 0)
 {
     return($"defer {def.Deferred.Accept(this)}".Indent(data));
 }
Exemplo n.º 3
0
 public virtual ReturnType VisitDeferStmt(AstDeferStmt stmt, DataType data   = default) => default;