You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
41 lines
1.2 KiB
package chocopy.common.codegen;
|
|
|
|
import chocopy.common.analysis.types.ValueType;
|
|
import chocopy.common.astnodes.Literal;
|
|
|
|
/** Information about a variable or attribute. */
|
|
public abstract class VarInfo extends SymbolInfo {
|
|
|
|
/** Name of variable or attribute. */
|
|
protected final String varName;
|
|
/** Runtime location of initial value for this variable or attribute. */
|
|
protected final Literal initialValue;
|
|
/** Static type of the variable. */
|
|
protected final ValueType varType;
|
|
|
|
/**
|
|
* A descriptor for variable or attribute VARNAME with VARTYPE as its static type and
|
|
* INITIALVALUE as its initial value (or null if None).
|
|
*/
|
|
public VarInfo(String varName, ValueType varType, Literal initialValue) {
|
|
this.varName = varName;
|
|
this.varType = varType;
|
|
this.initialValue = initialValue;
|
|
}
|
|
|
|
/** Returns the name of this variable or attribute. */
|
|
public String getVarName() {
|
|
return varName;
|
|
}
|
|
|
|
/** Returns the type of this variable or attribute. */
|
|
public ValueType getVarType() {
|
|
return varType;
|
|
}
|
|
|
|
/** Returns the initial value of this variable or attribute. */
|
|
public Literal getInitialValue() {
|
|
return initialValue;
|
|
}
|
|
}
|