:- module('Rational_expMain_pe',[main/2],[]).

:- discontiguous bytecode/5, class/2.

bytecode('Rational_class',0,0,aload(0),1).
bytecode('Rational_class',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('Rational_class',4,0,aload(0),1).
bytecode('Rational_class',5,0,const(primitiveType(int),0),1).
bytecode('Rational_class',6,0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode('Rational_class',9,0,aload(0),1).
bytecode('Rational_class',10,0,const(primitiveType(int),1),1).
bytecode('Rational_class',11,0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',14,0,return,1).
bytecode('Rational_class',0,1,aload(0),1).
bytecode('Rational_class',1,1,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('Rational_class',4,1,aload(0),1).
bytecode('Rational_class',5,1,iload(1),1).
bytecode('Rational_class',6,1,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode('Rational_class',9,1,aload(0),1).
bytecode('Rational_class',10,1,iload(2),1).
bytecode('Rational_class',11,1,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',14,1,return,1).
bytecode('Rational_class',0,2,const(primitiveType(int),1),1).
bytecode('Rational_class',1,2,istore(2),1).
bytecode('Rational_class',2,2,const(primitiveType(int),1),1).
bytecode('Rational_class',3,2,istore(3),1).
bytecode('Rational_class',4,2,iload(1),1).
bytecode('Rational_class',5,2,if0(leInt,23),3).
bytecode('Rational_class',8,2,iload(2),1).
bytecode('Rational_class',9,2,aload(0),1).
bytecode('Rational_class',10,2,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode('Rational_class',13,2,ibinop(mulInt),1).
bytecode('Rational_class',14,2,istore(2),1).
bytecode('Rational_class',15,2,iload(3),1).
bytecode('Rational_class',16,2,aload(0),1).
bytecode('Rational_class',17,2,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',20,2,ibinop(mulInt),1).
bytecode('Rational_class',21,2,istore(3),1).
bytecode('Rational_class',22,2,iinc(1,-1),3).
bytecode('Rational_class',25,2,goto(-21),3).
bytecode('Rational_class',28,2,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode('Rational_class',31,2,dup,1).
bytecode('Rational_class',32,2,iload(2),1).
bytecode('Rational_class',33,2,iload(3),1).
bytecode('Rational_class',34,2,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode('Rational_class',37,2,areturn,1).
bytecode('Rational_class',0,3,aload(0),1).
bytecode('Rational_class',1,3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',4,3,aload(1),1).
bytecode('Rational_class',5,3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',8,3,ibinop(mulInt),1).
bytecode('Rational_class',9,3,istore(2),1).
bytecode('Rational_class',10,3,aload(0),1).
bytecode('Rational_class',11,3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode('Rational_class',14,3,aload(1),1).
bytecode('Rational_class',15,3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',18,3,ibinop(mulInt),1).
bytecode('Rational_class',19,3,aload(0),1).
bytecode('Rational_class',20,3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',23,3,aload(1),1).
bytecode('Rational_class',24,3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode('Rational_class',27,3,ibinop(mulInt),1).
bytecode('Rational_class',28,3,ibinop(addInt),1).
bytecode('Rational_class',29,3,istore(3),1).
bytecode('Rational_class',30,3,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode('Rational_class',33,3,dup,1).
bytecode('Rational_class',34,3,iload(3),1).
bytecode('Rational_class',35,3,iload(2),1).
bytecode('Rational_class',36,3,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode('Rational_class',39,3,areturn,1).
bytecode('Rational_class',0,4,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode('Rational_class',3,4,dup,1).
bytecode('Rational_class',4,4,aload(0),1).
bytecode('Rational_class',5,4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode('Rational_class',8,4,aload(1),1).
bytecode('Rational_class',9,4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode('Rational_class',12,4,ibinop(mulInt),1).
bytecode('Rational_class',13,4,aload(0),1).
bytecode('Rational_class',14,4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',17,4,aload(1),1).
bytecode('Rational_class',18,4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode('Rational_class',21,4,ibinop(mulInt),1).
bytecode('Rational_class',22,4,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode('Rational_class',25,4,areturn,1).
bytecode('Rational_class',0,5,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode('Rational_class',3,5,dup,1).
bytecode('Rational_class',4,5,iload(0),1).
bytecode('Rational_class',5,5,iload(1),1).
bytecode('Rational_class',6,5,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode('Rational_class',9,5,iload(2),1).
bytecode('Rational_class',10,5,invokevirtual(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(exp)),[primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational')))))),3).
bytecode('Rational_class',13,5,areturn,1).
class('Rational_class',class(className(packageName(''),shortClassName('Rational')),final(false),public(true),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int)),final(false),static(false),public,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int)),final(false),static(false),public,initialValue(undef))],[method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[],none),bytecodeMethod(1,2,0,methodId('Rational_class',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none),bytecodeMethod(3,2,0,methodId('Rational_class',1),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(exp)),[primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('Rational_class',2),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(add)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('Rational_class',3),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(mul)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(2,5,0,methodId('Rational_class',4),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(expMain)),[primitiveType(int),primitiveType(int),primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(3,4,0,methodId('Rational_class',5),[]),final(false),static(true),public)])).

bytecode('Object',0,0,return,1).
class('Object',class(className(packageName('java/lang/'),shortClassName('Object')),final(false),public(false),abstract(false),none,[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('Object',0),[]),final(false),static(false),public)])).

bytecode('String',0,0,aload(0),1).
bytecode('String',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('String',4,0,return,1).
class('String',class(className(packageName('java/lang/'),shortClassName('String')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('String')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('String',0),[]),final(false),static(false),private)])).

bytecode('NullPointerException',0,0,aload(0),1).
bytecode('NullPointerException',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('NullPointerException',4,0,return,1).
class('NullPointerException',class(className(packageName('java/lang/'),shortClassName('NullPointerException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NullPointerException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NullPointerException',0),[]),final(false),static(false),private)])).

bytecode('ArrayStoreException',0,0,aload(0),1).
bytecode('ArrayStoreException',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('ArrayStoreException',4,0,return,1).
class('ArrayStoreException',class(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayStoreException',0),[]),final(false),static(false),private)])).

bytecode('ArrayIndexOutOfBoundsException',0,0,aload(0),1).
bytecode('ArrayIndexOutOfBoundsException',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('ArrayIndexOutOfBoundsException',4,0,return,1).
class('ArrayIndexOutOfBoundsException',class(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayIndexOutOfBoundsException',0),[]),final(false),static(false),private)])).

bytecode('NegativeArraySizeException',0,0,aload(0),1).
bytecode('NegativeArraySizeException',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('NegativeArraySizeException',4,0,return,1).
class('NegativeArraySizeException',class(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NegativeArraySizeException',0),[]),final(false),static(false),private)])).

bytecode('ClassCastException',0,0,aload(0),1).
bytecode('ClassCastException',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('ClassCastException',4,0,return,1).
class('ClassCastException',class(className(packageName('java/lang/'),shortClassName('ClassCastException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ClassCastException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ClassCastException',0),[]),final(false),static(false),private)])).

bytecode('ArithmeticException',0,0,aload(0),1).
bytecode('ArithmeticException',1,0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode('ArithmeticException',4,0,return,1).
class('ArithmeticException',class(className(packageName('java/lang/'),shortClassName('ArithmeticException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArithmeticException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArithmeticException',0),[]),final(false),static(false),private)])).

source_program(program([class(className(packageName(''),shortClassName('Rational')),final(false),public(true),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int)),final(false),static(false),public,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int)),final(false),static(false),public,initialValue(undef))],[method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[],none),bytecodeMethod(1,2,0,methodId('Rational_class',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none),bytecodeMethod(3,2,0,methodId('Rational_class',1),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(exp)),[primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('Rational_class',2),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(add)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('Rational_class',3),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(mul)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(2,5,0,methodId('Rational_class',4),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(expMain)),[primitiveType(int),primitiveType(int),primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(3,4,0,methodId('Rational_class',5),[]),final(false),static(true),public)]),class(className(packageName('java/lang/'),shortClassName('Object')),final(false),public(false),abstract(false),none,[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('Object',0),[]),final(false),static(false),public)]),class(className(packageName('java/lang/'),shortClassName('String')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('String')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('String',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('NullPointerException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NullPointerException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NullPointerException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayStoreException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayIndexOutOfBoundsException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NegativeArraySizeException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ClassCastException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ClassCastException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ClassCastException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArithmeticException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArithmeticException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArithmeticException',0),[]),final(false),static(false),private)])],[])).

:- include(library('jvm_in_ciao/interpreter/pe_i.pl')).

current_mis(mis(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(expMain)),[primitiveType(int),primitiveType(int),primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),[num(int(_)),num(int(_)),num(int(_))],heap(dynamicHeap([]),staticHeap([])))).
options([trace]).
