Class ScopeBase
java.lang.Object
com.bradyrussell.uiscoin.lang.compiler.scope.ScopeBase
- Direct Known Subclasses:
ScopeGlobal,ScopeLocal
public class ScopeBase
extends java.lang.Object
-
Field Summary
Fields Modifier and Type Field Description java.util.ArrayList<ScopeBase>ChildrenScopeBaseParentprotected intScopeAddressprotected intScopeBaseAddressjava.lang.StringScopeNameprotected java.util.HashMap<java.lang.String,StructDefinition>structDefinitionsprotected java.util.HashMap<java.lang.String,java.lang.Object>symbolTable -
Constructor Summary
-
Method Summary
Modifier and Type Method Description intdeclareArray(java.lang.String Name, PrimitiveType SymbolType, int Length)intdeclareConstantInlineSymbol(java.lang.String Name, TypedValue Value)intdeclareStruct(java.lang.String Name, java.lang.String StructType)intdeclareSymbol(java.lang.String Name, PrimitiveType SymbolType)ScopeLocaldefineFunction(java.lang.String Name, PrimitiveType SymbolType, java.util.List<NameAndType> Parameters)booleandefineStruct(java.lang.String Name, java.util.List<NameAndType> Fields)ScopeBasefindScopeContaining(java.lang.String Name)StructDefinitionfindStructDefinition(java.lang.String StructType)java.lang.StringgetAllocation()java.lang.StringgetDeallocation()intgetDepth()java.lang.StringgetRecursiveAllocation()java.lang.ObjectgetSymbol(java.lang.String Name)booleanhasSymbol(java.lang.String Name)intsize()java.lang.StringtoString()
-
Field Details
-
ScopeName
public java.lang.String ScopeName -
Parent
-
Children
-
symbolTable
protected java.util.HashMap<java.lang.String,java.lang.Object> symbolTable -
structDefinitions
-
ScopeBaseAddress
protected int ScopeBaseAddress -
ScopeAddress
protected int ScopeAddress
-
-
Constructor Details
-
Method Details
-
defineFunction
public ScopeLocal defineFunction(java.lang.String Name, PrimitiveType SymbolType, java.util.List<NameAndType> Parameters) -
defineStruct
-
declareSymbol
-
declareStruct
public int declareStruct(java.lang.String Name, java.lang.String StructType) -
declareArray
-
declareConstantInlineSymbol
-
getSymbol
public java.lang.Object getSymbol(java.lang.String Name) -
hasSymbol
public boolean hasSymbol(java.lang.String Name) -
size
public int size() -
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
findScopeContaining
-
findStructDefinition
-
getRecursiveAllocation
public java.lang.String getRecursiveAllocation() -
getAllocation
public java.lang.String getAllocation() -
getDeallocation
public java.lang.String getDeallocation() -
getDepth
public int getDepth()
-