/** Find or create a buffer for the input BufferSymbol */ public BufferScope getBufferForReference(TableBuffer symbol) { BufferScope buffer = getBufferScope(symbol, BufferScope.Strength.REFERENCE); if (buffer == null) buffer = getBufferForReferenceSub(symbol); // Yes, add reference to outer blocks, even if we got this buffer from // an outer block. Might have blocks in between which need the reference // to be added. addBufferScopeReferences(buffer); return buffer; } // getBufferForReference
/** Find or create a buffer for the input BufferSymbol */ public BufferScope getBufferForReference(TableBuffer symbol) { BufferScope buffer = getBufferScope(symbol, BufferScope.Strength.REFERENCE); if (buffer == null) buffer = getBufferForReferenceSub(symbol); // Yes, add reference to outer blocks, even if we got this buffer from // an outer block. Might have blocks in between which need the reference // to be added. addBufferScopeReferences(buffer); return buffer; } // getBufferForReference
/** * Create a "weak" buffer scope. This is called within a FOR or PRESELECT statement. * * @param symbol The RECORD_NAME node. It must already have the BufferSymbol linked to it. */ public BufferScope addWeakBufferScope(TableBuffer symbol) { BufferScope buff = getBufferScope(symbol, BufferScope.Strength.WEAK); if (buff == null) buff = new BufferScope(this, symbol, BufferScope.Strength.WEAK); // Yes, add reference to outer blocks, even if we got this buffer from // an outer block. Might have blocks in between which need the reference // to be added. addBufferScopeReferences(buff); bufferScopes.add(buff); // necessary in case this is DO..PRESELECT block return buff; } // addWeakBufferScope
/** * Create a "weak" buffer scope. This is called within a FOR or PRESELECT statement. * * @param symbol The RECORD_NAME node. It must already have the BufferSymbol linked to it. */ public BufferScope addWeakBufferScope(TableBuffer symbol) { BufferScope buff = getBufferScope(symbol, BufferScope.Strength.WEAK); if (buff == null) buff = new BufferScope(this, symbol, BufferScope.Strength.WEAK); // Yes, add reference to outer blocks, even if we got this buffer from // an outer block. Might have blocks in between which need the reference // to be added. addBufferScopeReferences(buff); bufferScopes.add(buff); // necessary in case this is DO..PRESELECT block return buff; } // addWeakBufferScope