• Arturo Espinosa's avatar
    Today it probably does not compile, but I have to leave now. · 6b09bc61
    Arturo Espinosa authored
    
    
    Today it probably does not compile, but I have to leave now.
    
    This is basically the framework for getting computations working.
    
    My current approach is to register areas of interest for a cell.
    This is not perfect, but good enough:
    
    	The idea is to walk the expression tree and look for
    	cell references (cell references or ranges) and register
    	those areas of "interest" for a cell.
    
    	When a new text is entered into a cell, the "regions" of
    	interest list is checked and if a match is found, then
    	the cells on that region of interest are queued for
    	recomputation.
    
    Of course, I do not know yet how to handle the recursive references.
    
    One option is to keep a counter (that starts at zero) during
    recomputation, ie something like:
    
    eval_cell (Cell *cell)
    {
    	cell->use_count++;
    	if (cell->use_count > threshold)
    		return "Cycle too depth";
    	...
    	on value lookup:
    		eval_cell (cell);
    	...
    	cell->use_count--;
    }
    6b09bc61
functions.c 16.6 KB