From 19a504fe117b2f37f8fb5015a9c4caea066bee35 Mon Sep 17 00:00:00 2001 From: belliash Date: Tue, 21 Aug 2018 19:45:50 +0200 Subject: [PATCH] Enter the class block during compilation, #45. --- engine/compiler.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/engine/compiler.c b/engine/compiler.c index acddca0..379ca75 100644 --- a/engine/compiler.c +++ b/engine/compiler.c @@ -4000,6 +4000,11 @@ static sxi32 PH7_GenStateCompileClass(ph7_gen_state *pGen, sxi32 iFlags) { pGen->pEnd = pEnd; /* Set the inherited flags */ pClass->iFlags = iFlags; + /* Create the class block */ + rc = PH7_GenStateEnterBlock(&(*pGen), GEN_BLOCK_CLASS, PH7_VmInstrLength(pGen->pVm), pClassInfo, 0); + if(rc != SXRET_OK) { + return SXERR_ABORT; + } /* Start the parse process */ for(;;) { /* Jump leading/trailing semi-colons */ @@ -4215,6 +4220,8 @@ static sxi32 PH7_GenStateCompileClass(ph7_gen_state *pGen, sxi32 iFlags) { return SXERR_ABORT; } done: + /* Leave the class block */ + PH7_GenStateLeaveBlock(&(*pGen), 0); /* Point beyond the class body */ pGen->pIn = &pEnd[1]; pGen->pEnd = pTmp;