protected void processFuzzify(String block, Engine engine) throws Exception {
        BufferedReader reader = new BufferedReader(new StringReader(block));
        String line = reader.readLine();
        String name;
        int index = line.indexOf(' ');
        if (index >= 0) {
            name = Op.makeValidId(line.substring(index + 1));
        } else {
            throw new RuntimeException("[syntax error] expected name of input variable in line: " + line);
        }
        if (!engine.hasInputVariable(name)) {
            throw new RuntimeException(String.format(
                    "[syntax error] engine does not contain input variable <%s> from line: %s",
                    name, line));
        }
        InputVariable inputVariable = engine.getInputVariable(name);
        while ((line = reader.readLine()) != null) {
            StringTokenizer tokenizer = new StringTokenizer(line);
            String firstToken = tokenizer.nextToken();
            if ("RANGE".equals(firstToken)) {
                Op.Pair<Double, Double> range = extractRange(line);
                inputVariable.setRange(range.first, range.second);
            } else if ("ENABLED".equals(firstToken)) {
                inputVariable.setEnabled(extractEnabled(line));
            } else if ("TERM".equals(firstToken)) {
                inputVariable.addTerm(prepareTerm(extractTerm(line), engine));
            } else {
                throw new RuntimeException(String.format(
                        "[syntax error] token <%s> not recognized", firstToken));
            }
        }
    }