Got some sort of class allocator node created, now to re-order it by using Context to be able to know when the StaticVariableDeclaration is within class.
This then generates code to allocate space for the class, once done we can be assured the declarations (placed after it now) will be assigning to properly allocated space (paged and maped for example)
This commit is contained in:
parent
cae3cfe88c
commit
3da50e9eab
|
@ -36,6 +36,14 @@ public class StorageDeclaratio : Instruction
|
|||
|
||||
}
|
||||
|
||||
public class ClassStaticInitAllocate : Instruction
|
||||
{
|
||||
this(string className)
|
||||
{
|
||||
addInfo = "classStaticInitAllocate: "~className;
|
||||
}
|
||||
}
|
||||
|
||||
public class VariableAssignmentInstr : Instruction
|
||||
{
|
||||
/* Name of variable being declared */
|
||||
|
|
|
@ -284,6 +284,10 @@ public final class TypeChecker
|
|||
*/
|
||||
else if(cast(compiler.typecheck.dependency.variables.StaticVariableDeclaration)dnode)
|
||||
{
|
||||
/* TODO: Add skipping if context is within a class */
|
||||
/* We need to wait for class static node, to do an InitInstruction (static init) */
|
||||
/* It probably makes sense , IDK, we need to allocate both classes */
|
||||
|
||||
/**
|
||||
* Codegen
|
||||
*
|
||||
|
@ -334,6 +338,14 @@ public final class TypeChecker
|
|||
|
||||
}
|
||||
/* TODO: Add class init */
|
||||
else if(cast(compiler.typecheck.dependency.classes.classStaticDep.ClassStaticNode)dnode)
|
||||
{
|
||||
Clazz clazzPNode = cast(Clazz)dnode.getEntity();
|
||||
string clazzName = resolver.generateName(modulle, clazzPNode);
|
||||
|
||||
/* TODO: I am rushing so idk which quantum op to use */
|
||||
addInstrB(new ClassStaticInitAllocate(clazzName));
|
||||
}
|
||||
/* It will pop a bunch of shiiit */
|
||||
/* TODO: ANy statement */
|
||||
else if(cast(compiler.typecheck.dependency.core.DNode)dnode)
|
||||
|
|
|
@ -26,6 +26,8 @@ public class VariableNode : DNode
|
|||
{
|
||||
name = resolver.generateName(cast(Container)dnodegen.root.getEntity(), cast(Entity)entity);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class ModuleVariableDeclaration : VariableNode
|
||||
|
|
Loading…
Reference in New Issue