From a5b0b5bf6f8ddc451c6f5ef5be1129fa5befa196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=B7=D0=B4=D0=B0=D0=B9=D1=89=D0=B8=D0=BA?= Date: Mon, 13 Apr 2020 02:19:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A5=D0=BE=D0=BB=D0=BE=D0=B4=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=20=D1=81=D0=BF=D0=B5=D1=86=D0=B8=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=B0=D1=82=D0=BE=D1=80=D0=B0=20(#263)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/compiler/Log-AST.ref | 12 ++++++++++++ src/compiler/OptTree-Drive.ref | 9 +++++++++ src/compiler/OptTree-Spec.ref | 13 +++++++++++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/compiler/Log-AST.ref b/src/compiler/Log-AST.ref index 51908257..ac7e800b 100644 --- a/src/compiler/Log-AST.ref +++ b/src/compiler/Log-AST.ref @@ -25,6 +25,8 @@ UndoubleEmtpyLines { Element { (Function s.Scope (e.Name) e.Body) = ; + (ColdFunction s.Scope (e.Name) e.Body) + = ; (Enum GN-Entry e.Name) = ('$EENUM ' ';'); (Enum GN-Local e.Name) = ('$ENUM ' ';'); @@ -62,6 +64,16 @@ DoLongLine { Function { + (e.Name) s.Scope e.Body + = ) s.Scope e.Body>; +} + +ColdFunction { + (e.Name) s.Scope e.Body + = ' *') s.Scope e.Body>; +} + +Function-Aux { (e.Name) s.Scope Sentences e.Sentences = () ( ' {') diff --git a/src/compiler/OptTree-Drive.ref b/src/compiler/OptTree-Drive.ref index a432a1a3..4d1d81ed 100644 --- a/src/compiler/OptTree-Drive.ref +++ b/src/compiler/OptTree-Drive.ref @@ -141,6 +141,15 @@ DistinctFuncs { e.B (Function s.ScopeClass (e.Name) e.Body1) e.M e.E >; + e.B + (ColdFunction s.ScopeClass (e.Name) e.Body1) + e.M + (Function s.ScopeClass (e.Name) e.Body2) + e.E + = ; + e.Other = e.Other } diff --git a/src/compiler/OptTree-Spec.ref b/src/compiler/OptTree-Spec.ref index a22dfe4d..0c0ddf36 100644 --- a/src/compiler/OptTree-Spec.ref +++ b/src/compiler/OptTree-Spec.ref @@ -112,7 +112,7 @@ SpecUnit { > : (e.SpecInfo^ (e.NewFunctions^)) e.Sentences^ = (e.SpecInfo (e.NewFunctions)) - (Function s.ScopeClass t.Name Sentences e.Sentences); + (ColdFunction s.ScopeClass t.Name Sentences e.Sentences); (e.SpecInfo (e.NewFunctions)) t.Other = (e.SpecInfo (e.NewFunctions)) t.Other; } @@ -701,7 +701,16 @@ Spec-PrepareConditions { == e.AST^ */ $ENTRY OptTree-Spec-CleanupColdFunctions { - e.AST = e.AST; + e.AST + = ; } /*