public MyParser.declare_return declare() { declare_return retval=new MyParser.declare_return(); retval.start=input.LT(1); //LT(1) is the next token Object root=adapter.nil(); //null root object //create 'int' node Token intToken=(Token)match(input, INT); adaptor.addChild(root,adaptor.create(intToken)); //create ID node, and make it as the root Token idToken=(Token)match(input, ID); root=adaptor.becomeRoot(adaptor.create(idToken,root); //create init node MyParser.init_return initRet=init(); adaptor.addChild(root,initRet.getTree()); //match ';' and throw away match(input,SEMI); retval.stop=input.LT(-1); retval.tree=adaptor.rulePostProcessing(root); adaptor.setTokenBoundaries(retval.tree,retval.start,retval.stop); }