public String[] getLine() throws IOException{
        int lineNumber = -1;
        ArrayList<String> v = new ArrayList<String>();
        if (tokenCache != null){
            v.add(tokenCache);
            lineNumber = lineCache;
        }
        while ((tokenCache = lexer.getNextToken()) != null
                && (lineNumber == -1 || lexer.getLineNumber() == lineNumber)){
            v.add(tokenCache);
            lineNumber = lexer.getLineNumber();
        }
        if (v.size() == 0){
            return null;
        }
        lastLine = lineNumber;
        lineCache = lexer.getLineNumber();
        String[] result = new String[v.size()];
        return v.toArray(result);
    }