java/com/googlecode/prolog_cafe/builtin/PRED_$read_token0_3.java [38:95]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public Operation exec(Prolog engine) {
        engine.setB0();
	Term a1, a2, a3;
	a1 = arg1;
	a2 = arg2;
	a3 = arg3;

	Object stream = null;
	StringBuffer s;
	int type;
	Term token;

	// S_or_a
	a1 = a1.dereference(); 
	if (a1 instanceof VariableTerm) {
	    throw new PInstantiationException(this, 1);
	} else if (a1 instanceof SymbolTerm) {
	    if (! engine.getStreamManager().containsKey(a1))
		throw new ExistenceException(this, 1, "stream", a1, "");
	    stream = ((JavaObjectTerm) engine.getStreamManager().get(a1)).object();
	} else if (a1 instanceof JavaObjectTerm) {
	    stream = ((JavaObjectTerm) a1).object();
	} else {
	    throw new IllegalDomainException(this, 1, "stream_or_alias", a1);
	}
	if (! (stream instanceof PushbackReader))
	    throw new PermissionException(this, "input", "stream", a1, "");
	// read token
	s = new StringBuffer();
	try {
	    type = Token.read_token(s, (PushbackReader)stream);
	    switch(type) {
	    case 'I':
		token = new IntegerTerm(Integer.parseInt(s.toString())); 
		break;
	    case 'D':
		token = new DoubleTerm(Double.parseDouble(s.toString())); 
		break;
	    case 'S':
		char[] chars = (s.toString()).toCharArray();
		token = Prolog.Nil;
		for (int i=chars.length; i>0; i--){
		    token = new ListTerm(new IntegerTerm(chars[i-1]), token);
		}
		break;
	    default :
		token = SymbolTerm.create(s.toString());
		break;
	    }
	} catch (Exception e) {
	    throw new JavaException(this, 1, e);
	}
	if (! a2.unify(new IntegerTerm(type), engine.trail))
	    return engine.fail();
	if (! a3.unify(token, engine.trail))
	    return engine.fail();
	return cont;
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/builtin/PRED_$read_token0_3.java [38:95]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public Operation exec(Prolog engine) {
        engine.setB0();
	Term a1, a2, a3;
	a1 = arg1;
	a2 = arg2;
	a3 = arg3;

	Object stream = null;
	StringBuffer s;
	int type;
	Term token;

	// S_or_a
	a1 = a1.dereference(); 
	if (a1 instanceof VariableTerm) {
	    throw new PInstantiationException(this, 1);
	} else if (a1 instanceof SymbolTerm) {
	    if (! engine.getStreamManager().containsKey(a1))
		throw new ExistenceException(this, 1, "stream", a1, "");
	    stream = ((JavaObjectTerm) engine.getStreamManager().get(a1)).object();
	} else if (a1 instanceof JavaObjectTerm) {
	    stream = ((JavaObjectTerm) a1).object();
	} else {
	    throw new IllegalDomainException(this, 1, "stream_or_alias", a1);
	}
	if (! (stream instanceof PushbackReader))
	    throw new PermissionException(this, "input", "stream", a1, "");
	// read token
	s = new StringBuffer();
	try {
	    type = Token.read_token(s, (PushbackReader)stream);
	    switch(type) {
	    case 'I':
		token = new IntegerTerm(Integer.parseInt(s.toString())); 
		break;
	    case 'D':
		token = new DoubleTerm(Double.parseDouble(s.toString())); 
		break;
	    case 'S':
		char[] chars = (s.toString()).toCharArray();
		token = Prolog.Nil;
		for (int i=chars.length; i>0; i--){
		    token = new ListTerm(new IntegerTerm(chars[i-1]), token);
		}
		break;
	    default :
		token = SymbolTerm.create(s.toString());
		break;
	    }
	} catch (Exception e) {
	    throw new JavaException(this, 1, e);
	}
	if (! a2.unify(new IntegerTerm(type), engine.trail))
	    return engine.fail();
	if (! a3.unify(token, engine.trail))
	    return engine.fail();
	return cont;
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



