lojix/wam_prolog/src/main/com/thesett/aima/logic/fol/wam/interpreter/WAMNativeInterpreter.java
public static void main(String[] args)
    {
        try
        {
            SymbolTableImpl<Integer, String, Object> symbolTable = new SymbolTableImpl<Integer, String, Object>();

            WAMResolvingMachine machine = new WAMResolvingNativeMachine(symbolTable);

            Parser<Clause, Token> parser = new SentenceParser(machine);
            parser.setTokenSource(TokenSource.getTokenSourceForInputStream(System.in));

            LogicCompiler<Clause, WAMCompiledPredicate, WAMCompiledQuery> compiler =
                new WAMCompiler(symbolTable, machine);

            ResolutionEngine<Clause, WAMCompiledPredicate, WAMCompiledQuery> engine =
                new WAMEngine(parser, machine, compiler, machine);
            engine.reset();

            ResolutionInterpreter<WAMCompiledPredicate, WAMCompiledQuery> interpreter =
                new ResolutionInterpreter<WAMCompiledPredicate, WAMCompiledQuery>(engine);

            interpreter.interpreterLoop();
        }
        catch (Exception e)
        {
            /*log.log(java.util.logging.Level.SEVERE, e.getMessage(), e);*/
            e.printStackTrace(new PrintStream(System.err));
            System.exit(-1);
        }
    }
public static void main(String[] args)
    {
        try
        {
            SymbolTableImpl<Integer, String, Object> symbolTable = new SymbolTableImpl<Integer, String, Object>();

            WAMResolvingMachine machine = new WAMResolvingNativeMachine(symbolTable);

            Parser<Clause, Token> parser = new SentenceParser(machine);
            parser.setTokenSource(TokenSource.getTokenSourceForInputStream(System.in));

            LogicCompiler<Clause, WAMCompiledPredicate, WAMCompiledQuery> compiler =
                new WAMCompiler(symbolTable, machine);

            ResolutionEngine<Clause, WAMCompiledPredicate, WAMCompiledQuery> engine =
                new WAMEngine(parser, machine, compiler, machine);
            engine.reset();

            ResolutionInterpreter<WAMCompiledPredicate, WAMCompiledQuery> interpreter =
                new ResolutionInterpreter<WAMCompiledPredicate, WAMCompiledQuery>(engine);

            interpreter.interpreterLoop();
        }
        catch (Exception e)
        {
            /*log.log(java.util.logging.Level.SEVERE, e.getMessage(), e);*/
            e.printStackTrace(new PrintStream(System.err));
            System.exit(-1);
        }
    }
Creates the interpreter and launches its top-level run loop.

@param args The command line arguments.