// rpimpl_oplist.cpp // Copyright (c) Menno Rubingh 2016. Web: [http://rubinghsoftware.de] // // MR Mar 2016. // // Definition of ParsedOperationList member functions. // #include "rpimpl_oplist.h" //ParsedOperationList. #include "rpimpl_ex.h" //SContext, Ex. #include <assert.h> #include <stdio.h> void ParsedOperationList:: init( void ) { m_n = 0; for ( int k = 0; k < NMAX; k++ ) { m_arr[k] = NULL; } } void ParsedOperationList:: zap( void ) { for ( int k = 0; k < NMAX; k++ ) { OperationBase const * p = m_arr[k]; if ( p != NULL ) { delete p; } } } OperationBase const * ParsedOperationList:: getElem( int i ) const { assert( BETWEEN_IE( 0, i, m_n ) ); return m_arr[i]; } void ParsedOperationList:: appendElem( SContext const * iCxt, OperationBase const * iOp ) { if ( m_n >= NMAX ) { throw Ex( iCxt, "too many operations in expression" ); } m_arr[m_n] = iOp; m_n++; } void ParsedOperationList:: dump( FILE * oF ) const { fprintf( oF, "OpList (n=%d) : ", m_n ); for ( int k = 0; k < m_n; k++ ) { m_arr[k]->print(oF); fprintf( oF, " " ); } fprintf( oF, "\n" ); }