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

:- discontiguous bytecode/5, class/2.

bytecode(0,'0',0,aload(0),1).
bytecode(1,'0',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'0',0,aload(0),1).
bytecode(5,'0',0,const(primitiveType(int),1),1).
bytecode(6,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int))),3).
bytecode(9,'0',0,aload(0),1).
bytecode(10,'0',0,const(primitiveType(int),1),1).
bytecode(11,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(14,'0',0,aload(0),1).
bytecode(15,'0',0,const(primitiveType(int),2006),3).
bytecode(18,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(year)),primitiveType(int))),3).
bytecode(21,'0',0,aload(0),1).
bytecode(22,'0',0,iload(1),1).
bytecode(23,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int))),3).
bytecode(26,'0',0,aload(0),1).
bytecode(27,'0',0,iload(2),1).
bytecode(28,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(31,'0',0,aload(0),1).
bytecode(32,'0',0,iload(3),1).
bytecode(33,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(year)),primitiveType(int))),3).
bytecode(36,'0',0,return,1).
bytecode(0,'0',1,aload(0),1).
bytecode(1,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int))),3).
bytecode(4,'0',1,istore(1),1).
bytecode(5,'0',1,aload(0),1).
bytecode(6,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(9,'0',1,istore(2),1).
bytecode(10,'0',1,aload(0),1).
bytecode(11,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(year)),primitiveType(int))),3).
bytecode(14,'0',1,istore(3),1).
bytecode(15,'0',1,aload(0),1).
bytecode(16,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int))),3).
bytecode(19,'0',1,const(primitiveType(int),31),2).
bytecode(21,'0',1,if_icmp(neInt,28),3).
bytecode(24,'0',1,const(primitiveType(int),1),1).
bytecode(25,'0',1,istore(1),1).
bytecode(26,'0',1,aload(0),1).
bytecode(27,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(30,'0',1,const(primitiveType(int),12),2).
bytecode(32,'0',1,if_icmp(neInt,11),3).
bytecode(35,'0',1,const(primitiveType(int),1),1).
bytecode(36,'0',1,istore(2),1).
bytecode(37,'0',1,iinc(3,1),3).
bytecode(40,'0',1,goto(88),3).
bytecode(43,'0',1,iinc(2,1),3).
bytecode(46,'0',1,goto(82),3).
bytecode(49,'0',1,aload(0),1).
bytecode(50,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int))),3).
bytecode(53,'0',1,const(primitiveType(int),28),2).
bytecode(55,'0',1,if_icmp(neInt,18),3).
bytecode(58,'0',1,aload(0),1).
bytecode(59,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(62,'0',1,const(primitiveType(int),2),1).
bytecode(63,'0',1,if_icmp(neInt,10),3).
bytecode(66,'0',1,const(primitiveType(int),1),1).
bytecode(67,'0',1,istore(1),1).
bytecode(68,'0',1,const(primitiveType(int),3),1).
bytecode(69,'0',1,istore(2),1).
bytecode(70,'0',1,goto(58),3).
bytecode(73,'0',1,aload(0),1).
bytecode(74,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int))),3).
bytecode(77,'0',1,const(primitiveType(int),30),2).
bytecode(79,'0',1,if_icmp(neInt,46),3).
bytecode(82,'0',1,aload(0),1).
bytecode(83,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(86,'0',1,const(primitiveType(int),4),1).
bytecode(87,'0',1,if_icmp(eqInt,30),3).
bytecode(90,'0',1,aload(0),1).
bytecode(91,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(94,'0',1,const(primitiveType(int),6),2).
bytecode(96,'0',1,if_icmp(eqInt,21),3).
bytecode(99,'0',1,aload(0),1).
bytecode(100,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(103,'0',1,const(primitiveType(int),9),2).
bytecode(105,'0',1,if_icmp(eqInt,12),3).
bytecode(108,'0',1,aload(0),1).
bytecode(109,'0',1,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int))),3).
bytecode(112,'0',1,const(primitiveType(int),11),2).
bytecode(114,'0',1,if_icmp(neInt,11),3).
bytecode(117,'0',1,const(primitiveType(int),1),1).
bytecode(118,'0',1,istore(1),1).
bytecode(119,'0',1,iinc(2,1),3).
bytecode(122,'0',1,goto(6),3).
bytecode(125,'0',1,iinc(1,1),3).
bytecode(128,'0',1,new(className(packageName(''),shortClassName('Date'))),3).
bytecode(131,'0',1,dup,1).
bytecode(132,'0',1,iload(1),1).
bytecode(133,'0',1,iload(2),1).
bytecode(134,'0',1,iload(3),1).
bytecode(135,'0',1,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Date')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int),primitiveType(int)],none)),3).
bytecode(138,'0',1,areturn,1).
class('0',class(className(packageName(''),shortClassName('Date')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[field(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int)),final(false),static(false),private,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int)),final(false),static(false),private,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(year)),primitiveType(int)),final(false),static(false),private,initialValue(undef))],[method(methodSignature(methodName(className(packageName(''),shortClassName('Date')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int),primitiveType(int)],none),bytecodeMethod(4,2,0,methodId('0',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Date')),shortMethodName(forward)),[],refType(classType(className(packageName(''),shortClassName('Date'))))),bytecodeMethod(4,5,0,methodId('0',1),[]),final(false),static(false),public)])).

bytecode(0,'Object',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(0,'String',0,aload(0),1).
bytecode(1,'String',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'String',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(0,'NullPointerException',0,aload(0),1).
bytecode(1,'NullPointerException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'NullPointerException',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(0,'ArrayStoreException',0,aload(0),1).
bytecode(1,'ArrayStoreException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArrayStoreException',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(0,'ArrayIndexOutOfBoundsException',0,aload(0),1).
bytecode(1,'ArrayIndexOutOfBoundsException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArrayIndexOutOfBoundsException',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(0,'NegativeArraySizeException',0,aload(0),1).
bytecode(1,'NegativeArraySizeException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'NegativeArraySizeException',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(0,'ClassCastException',0,aload(0),1).
bytecode(1,'ClassCastException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ClassCastException',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(0,'ArithmeticException',0,aload(0),1).
bytecode(1,'ArithmeticException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArithmeticException',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('Date')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[field(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int)),final(false),static(false),private,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int)),final(false),static(false),private,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(year)),primitiveType(int)),final(false),static(false),private,initialValue(undef))],[method(methodSignature(methodName(className(packageName(''),shortClassName('Date')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int),primitiveType(int)],none),bytecodeMethod(4,2,0,methodId('0',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Date')),shortMethodName(forward)),[],refType(classType(className(packageName(''),shortClassName('Date'))))),bytecodeMethod(4,5,0,methodId('0',1),[]),final(false),static(false),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('Date')),shortMethodName(forward)),[],refType(classType(className(packageName(''),shortClassName('Date'))))),[ref(loc(1))],heap(dynamicHeap([object(locationObject(className(packageName(''),shortClassName('Date'))),[objectField(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(day)),primitiveType(int)),num(int(_))),objectField(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(month)),primitiveType(int)),num(int(_))),objectField(fieldSignature(fieldName(className(packageName(''),shortClassName('Date')),shortFieldName(year)),primitiveType(int)),num(int(_)))])]),staticHeap([])))).
options([top,heap]).
