where tokens are shifted to two stacks – operator stack and value stack – and the current action of the parser is determined by the precedence table. This solution makes that number of rules, and variables in rules are not arbitrarily limited. During data processing, the parser refers always to the same memory locations that store subsequently new data during processing of cells. Regardless of the size of input data, during processing all rasters are loaded into memory row by row; cells of each row are processed sequentially so memory loading during data processing does not exceed a few Mb, depending on the number of maps and the number of rules used in the analysis. This approach allows the processing of massive data sets of any size supported by GRASS GIS system, even those in excess of the amount of available memory.