slcom/slangc/model/clauses/FinallyClause.sauce

53 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

package slangc.model.clauses;
import slangc.api.Reporter;
import slangc.model.ClauseModel;
import slangc.model.InnerTypeScope;
import slangc.model.MemberModel;
import slangc.model.StatementModel;
import slangc.model.StatementOwner;
import slangc.model.TypeModel;
import slangc.parser.Branch;
import slangc.parser.Node;
public class FinallyClause extends ClauseModel implements StatementOwner {
private StatementModel innerStatement;
public FinallyClause(StatementOwner owner, Branch source) {
super(owner, source);
innerStatement = StatementModel.construct(this, source.getSubnode(1));
}
@Override
public void dump(Reporter reporter, String indent, String incr) {
reporter.note("DUMP", indent + "> Finally:");
innerStatement.dump(reporter, indent + incr, incr);
}
@Override
public int resolveExpressions() {
return innerStatement.resolveExpressions();
}
//@Override
public TypeModel resolveType(Node subnode) {
return getOwner().resolveType(subnode);
}
//@Override
public MemberModel getMethodOrField() {
return getOwner().getMethodOrField();
}
//@Override
public InnerTypeScope getTypeScope() {
return getOwner().getTypeScope();
}
public StatementModel getInnerStatement() {
return innerStatement;
}
}