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

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;
}
}