/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @author jrose
*/
+ "-source: +> = \n"
+ "-dest: +> = \n"
+ "-encoding: +> = \n"
+ "-parseBytes $ \n"
+ "- *? \n"
+ "\n");
boolean destMade = false;
File f;
Element e;
f = new File(a);
//System.out.println(e);
} else {
continue;
}
// Now write it:
if (!destMade) {
destMade = true;
}
}
}
}
}
}
try {
} finally {
}
}
}
private void setupAttrTypes() {
if (pos >= 0) {
}
}
//System.out.println("attrTypesByTag: "+attrTypesByTag);
}
if (nab == 0) {
return new ByteArrayOutputStream(1024);
}
return ab;
}
}
}
}
new String[]{
"minver", "0", "majver", "46",});
} else {
}
}
switch (tag) {
case CONSTANT_Long:
case CONSTANT_Double:
cpLen += 1;
}
}
}
return 0;
}
}
//System.out.println("getCPIndex "+cpTagName(tag)+" "+name);
return 0;
}
if (id == 0) {
cpoolSize += 1;
int pos;
switch (tag) {
case CONSTANT_Long:
case CONSTANT_Double:
cpoolSize += 1;
break;
case CONSTANT_Class:
case CONSTANT_String:
break;
case CONSTANT_Fieldref:
case CONSTANT_Methodref:
break;
case CONSTANT_NameAndType:
break;
}
}
return id;
}
//System.out.println("setCPIndex id="+id+" tag="+tag+" name="+name);
}
}
//assert(ids[tag] == 0 || ids[tag] == id);
}
int flags = 0;
int i = -1;
++i;
continue;
}
if (pos >= 0) {
flags |= (1 << i);
}
}
}
return flags;
}
// write the body of the class file first
writeClass();
// write the file header last
writeCP();
// recopy the file tail
}
}
}
}
}
//System.out.println("writeMember "+member);
}
}
return;
}
if (x.getName() == "Code") {
currentCode = x;
} else {
currentMember = x;
}
}
//System.out.println("tag "+qtag+" => key "+key+"; type "+type);
}
} else {
try {
// unparse according to type desc.
writeStackMap(attrs, false);
writeStackMap(attrs, true);
} else {
}
} finally {
//System.out.println("Attr Bytes = \""+attrBuf.toString(EIGHT_BIT_CHAR_ENCODING).replace('"', (char)('"'|0x80))+"\"");
}
}
}
if (x.getName() == "Code") {
} else {
}
}
}
//System.out.println("writeAttribute "+aval+" using "+type);
boolean afterElemHead = false;
int value;
char intKind;
int tag;
int sigChar;
case '<':
assert (nextAttrName == null);
// elem_placement = '<' elemname '>'
if (aval.isAnonymous()) {
}
afterElemHead = true;
} else {
// attr_placement = '(' attrname '=' (value)? ')'
assert (eqPos >= 0);
// value is implicit, not placed in file
nextAttrName = null;
}
afterElemHead = false;
}
continue;
case '(':
continue;
case 'N': // replication = 'N' int '[' type ... ']'
{
assert (nextAttrName == null);
afterElemHead = false;
next = i + 2;
// Select only matching members of aval.
}
}
}
continue;
case 'T': // union = 'T' any_int union_case* '(' ')' '[' body ']'
// write the value
if (intKind == 'S') {
}
nextAttrName = null;
afterElemHead = false;
++i; // skip the int type char
// union_case = '(' ('-')? digit+ ')' '[' body ']'
for (boolean foundCase = false;;) {
assert (next >= i);
if (!foundCase
foundCase = true;
// Execute this body.
}
if (lastCase) {
break;
}
}
continue;
case 'B':
case 'H':
case 'I': // int = oneof "BHI"
next = i + 1;
break;
case 'K':
if (sigChar == 'Q') {
switch (sigChar) {
case 'Z':
case 'B':
case 'C':
case 'S':
sigChar = 'I';
break;
}
}
switch (sigChar) {
case 'I':
break;
case 'J':
tag = CONSTANT_Long;
break;
case 'F':
break;
case 'D':
break;
case 'L':
break;
default:
assert (false);
tag = 0;
}
next = i + 3;
//System.out.println("get attr "+nextAttrName+" in "+aval);
if (nextAttrName != null) {
} else {
}
break;
case 'R':
switch (sigChar) {
case 'C':
break;
case 'S':
tag = CONSTANT_Utf8;
break;
case 'D':
break;
case 'F':
break;
case 'M':
break;
case 'I':
break;
case 'U':
tag = CONSTANT_Utf8;
break;
//case 'Q': tag = CONSTANT_Class; break;
default:
assert (false);
tag = 0;
}
next = i + 3;
//System.out.println("get attr "+nextAttrName+" in "+aval);
if (nextAttrName != null) {
} else {
}
break;
case 'P': // bci = 'P' int
case 'S': // signed_int = 'S' int
next = i + 2;
break;
case 'F':
next = i + 2;
break;
default:
}
// write the value
nextAttrName = null;
afterElemHead = false;
}
assert (nextAttrName == null);
}
switch (ch) {
case 'B':
u1(x);
break;
case 'H':
u2(x);
break;
case 'I':
u4(x);
break;
}
}
//System.out.println("writeCode "+code);
//Element m = new Element(currentMember); m.remove(code);
//System.out.println(" in "+m);
} else {
// Cache the assembled bytecodes:
}
for (int i = 0; i < length; i++) {
}
}
}
if (uoffsetIsU4) {
} else {
}
if (uoffsetIsU4) {
} else {
}
if (hasXOption) {
}
// Scan local and stack types in this frame:
if (j == LOCALS) {
if (ulocalvarIsU4) {
} else {
}
} else { // STACK
if (ustackIsU4) {
} else {
}
}
continue;
}
switch (tag) {
case ITEM_Object:
break;
case ITEM_Uninitialized:
case ITEM_ReturnAddress: {
if (uoffsetIsU4) {
} else {
}
}
break;
}
}
}
}
}
if (!c.isText()) {
}
int pos;
switch (tag) {
case CONSTANT_Utf8: {
int done = 0;
if (next < 0) {
}
}
next++;
}
}
}
break;
case CONSTANT_Integer:
break;
case CONSTANT_Float:
break;
case CONSTANT_Long:
//i += 1; // no need: extra cp slot is implicit
break;
case CONSTANT_Double:
//i += 1; // no need: extra cp slot is implicit
break;
case CONSTANT_Class:
case CONSTANT_String:
break;
case CONSTANT_Fieldref:
case CONSTANT_Methodref:
break;
case CONSTANT_NameAndType:
break;
}
}
}
}
u4((int) (x >>> 32));
u4((int) (x >>> 0));
}
u2(x >>> 16);
u2(x >>> 0);
}
u1(x >>> 8);
u1(x >>> 0);
}
}
}