public String parseToken() throws Exception {
        for (; ; ) {
            final String token = parseTokenHelper();
            if (token == null) {
                return null;
            }
            if (token.startsWith(CONTEXT_TAG)) {
                inOurContext = token.substring(CONTEXT_TAG.length()).equals(context);
            } else if (token.startsWith(MODEL_TAG)) {
                // no need to parse the name, as c:geo will only support the builtin model class (also prevents class injection)
                useKinematicModel = true;
            } else if (inOurContext) {
                return token;
            }
        }
    }
add a new lookup-value for the given name to the given lookupData array.
If no array is given (null value passed), the value is added to
the context-binded array. In that case, unknown names and values are
created dynamically.

@return a newly created value element, if any, to optionally add aliases
main/src/main/java/cgeo/geocaching/brouter/expressions/BExpressionContext.java