public Program loadCodes() {
        Program program = new Program();
        String line;
        try {
            while ((line = source.readLine()) != null) {
                StringTokenizer tokenizer = new StringTokenizer(line);
                List<String> argumentList = new ArrayList<String>();
                ByteCode bytecode = (ByteCode) (Class.forName("interpreter.bytecodes." + CodeTable.
                                                get(tokenizer.nextToken()))).
                        newInstance();
                while (tokenizer.hasMoreTokens()) {
                    argumentList.add(tokenizer.nextToken());
                }
                bytecode.init(argumentList);
                program.addCode(bytecode);
            }
            program.resolveAddress();
        } catch (Exception e) {
            System.out.println(e);
        }
        return program;
    }