package polyglot.ast;
import polyglot.types.Type;
import polyglot.types.Flags;
import polyglot.types.LocalInstance;
import polyglot.types.SemanticException;
/**
* A local variable declaration statement: a type, a name and an optional
* initializer.
*/
public interface LocalDecl extends ForInit, VarDecl
{
/** Set the declaration's flags. */
LocalDecl flags(Flags flags);
/** Set the declaration's type. */
LocalDecl type(TypeNode type);
/** Set the declaration's name. */
LocalDecl name(String name);
/** Get the declaration's initializer expression, or null. */
Expr init();
/** Set the declaration's initializer expression. */
LocalDecl init(Expr init);
/**
* Set the type object for the local we are declaring.
*/
LocalDecl localInstance(LocalInstance li);
}