C4AulParse::AddVarAccess: Move to C4AulCompiler

directional-lights
Nicolas Hake 2016-04-29 12:08:08 +02:00
parent 0342711cd4
commit 0a3b31e735
4 changed files with 8 additions and 6 deletions

View File

@ -114,6 +114,11 @@ static int GetStackValue(C4AulBCCType eType, intptr_t X)
return 0;
}
int C4AulCompiler::AddVarAccess(const char * TokenSPos, C4AulBCCType eType, intptr_t varnum)
{
return AddBCC(TokenSPos, eType, 1 + varnum - (iStack + Fn->VarNamed.iSize));
}
int C4AulCompiler::AddBCC(const char * TokenSPos, C4AulBCCType eType, intptr_t X)
{
// Track stack size

View File

@ -33,6 +33,7 @@ public:
void RemoveLastBCC();
C4V_Type GetLastRetType(C4AulScriptEngine * Engine, C4V_Type to); // for warning purposes
int AddVarAccess(const char * TokenSPos, C4AulBCCType eType, intptr_t varnum);
C4AulBCC MakeSetter(const char * TokenSPos, bool fLeaveValue = false); // Prepares to generate a setter for the last value that was generated
int JumpHere(); // Get position for a later jump to next instruction added

View File

@ -745,11 +745,6 @@ void C4AulParse::DebugChunk()
AddBCC(AB_DEBUG);
}
int C4AulParse::AddVarAccess(C4AulBCCType eType, intptr_t varnum)
{
return AddBCC(eType, 1 + varnum - (codegen.iStack + Fn->VarNamed.iSize));
}
const char * C4AulParse::GetTokenName(C4AulTokenType TokenType)
{
switch (TokenType)

View File

@ -96,9 +96,10 @@ private:
void Error(const char *pMsg, ...) GNUC_FORMAT_ATTRIBUTE_O;
void AppendPosition(StdStrBuf & Buf);
int AddVarAccess(C4AulBCCType eType, intptr_t varnum);
void DebugChunk();
C4AulCompiler codegen;
int AddVarAccess(C4AulBCCType eType, intptr_t varnum)
{ if (Type == PARSER) return codegen.AddVarAccess(TokenSPos, eType, varnum); else return -1; }
int AddBCC(C4AulBCCType eType, intptr_t X = 0)
{ if (Type == PARSER) return codegen.AddBCC(TokenSPos, eType, X); else return -1; }
C4V_Type GetLastRetType(C4V_Type to)