hiparse
implements the parsing done in Hybrid Index Preprocessing in order to avoid RAM for expanding index expressions.
Not to be called directly
hiparse(x, envir, first = NA_integer_, last = NA_integer_)
an index expression, precisely: call
the environemtn in which to evaluate components of the index expression
first index position found so far
last index position found so far
undefined (and redefined as needed by as.hi.call
)
This primitive parser recognises the following tokens: numbers like 1, symbols like x, the colon sequence operator :
and the concat operator c
.
hiparse
will Recall
until the index expression is parsed or an unknown token is found.
If an unknown token is found, hiparse
evluates it, inspects it and either accepts it or throws an error, catched by as.hi.call
,
which falls back to evaluating the index expression and dispatching (again) an appropriate as.hi
method.
Reasons for suspending the parsing: if the inspected token is of class 'hi', 'ri', 'bit', 'bitwhich', 'is.logical', 'is.character', 'is.matrix' or has length>16.