package st.gravel.support.compiler.ast; /* This file is automatically generated from typed smalltalk source. Do not edit by hand. (C) AG5.com */ import java.math.BigInteger; import st.gravel.support.jvm.NonLocalReturn; import st.gravel.support.compiler.ast.NonLocalTempAccessToHolderConverter; import st.gravel.support.compiler.ast.NonLocalTempAccessToHolderConverter.NonLocalTempAccessToHolderConverter_Factory; import st.gravel.support.compiler.ast.VariableScopeAnalyzerState; import java.util.HashMap; public class NonLocalTempWritesToHolderConverter extends NonLocalTempAccessToHolderConverter implements Cloneable { public static NonLocalTempWritesToHolderConverter_Factory factory = new NonLocalTempWritesToHolderConverter_Factory(); public static class NonLocalTempWritesToHolderConverter_Factory extends NonLocalTempAccessToHolderConverter_Factory { public NonLocalTempWritesToHolderConverter basicNew() { NonLocalTempWritesToHolderConverter newInstance = new NonLocalTempWritesToHolderConverter(); newInstance.initialize(); return newInstance; } @Override public NonLocalTempWritesToHolderConverter parent_(final NonLocalTempAccessToHolderConverter _aVariableScopeAnalyzer) { return ((NonLocalTempWritesToHolderConverter) this.basicNew().initializeParent_(_aVariableScopeAnalyzer)); } } static public NonLocalTempWritesToHolderConverter _parent_(Object receiver, final NonLocalTempAccessToHolderConverter _aVariableScopeAnalyzer) { return factory.parent_(_aVariableScopeAnalyzer); } @Override public NonLocalTempWritesToHolderConverter addBlockVariableRead_(final String _aString) { if (!_temps.containsKey(_aString)) { if (_parent == null) { return NonLocalTempWritesToHolderConverter.this; } _parent.addBlockVariableRead_(_aString); return NonLocalTempWritesToHolderConverter.this; } _temps.put(_aString, _temps.get(_aString).withBlockRead()); return this; } @Override public NonLocalTempWritesToHolderConverter addBlockVariableWrite_(final String _aString) { if (!_temps.containsKey(_aString)) { if (_parent == null) { return NonLocalTempWritesToHolderConverter.this; } _parent.addBlockVariableWrite_(_aString); return NonLocalTempWritesToHolderConverter.this; } _temps.put(_aString, _temps.get(_aString).withBlockWrite()); return this; } @Override public NonLocalTempWritesToHolderConverter addVariableRead_(final String _aString) { if (!_temps.containsKey(_aString)) { if (_parent == null) { return NonLocalTempWritesToHolderConverter.this; } _parent.addBlockVariableRead_(_aString); return NonLocalTempWritesToHolderConverter.this; } _temps.put(_aString, _temps.get(_aString).withLocalRead()); return this; } @Override public NonLocalTempWritesToHolderConverter addVariableWrite_(final String _aString) { if (!_temps.containsKey(_aString)) { if (_parent == null) { return NonLocalTempWritesToHolderConverter.this; } _parent.addBlockVariableWrite_(_aString); return NonLocalTempWritesToHolderConverter.this; } _temps.put(_aString, _temps.get(_aString).withLocalWrite()); return this; } public NonLocalTempWritesToHolderConverter copy() { try { NonLocalTempWritesToHolderConverter _temp1 = (NonLocalTempWritesToHolderConverter) this.clone(); _temp1.postCopy(); return _temp1; } catch (CloneNotSupportedException e) { throw new RuntimeException(e); } } public NonLocalTempWritesToHolderConverter_Factory factory() { return factory; } @Override public NonLocalTempWritesToHolderConverter initialize() { super.initialize(); _temps = new java.util.HashMap<String, VariableScopeAnalyzerState>(); return this; } @Override public NonLocalTempWritesToHolderConverter initializeParent_(final NonLocalTempAccessToHolderConverter _aVariableScopeAnalyzer) { _parent = _aVariableScopeAnalyzer; this.initialize(); return this; } @Override public boolean needsRewrite_(final VariableScopeAnalyzerState _state) { return _state.isUndecided(); } }