// ===========================================================================
// This file has been generated by
// xtc Factory Factory, version 1.15.0,
// (C) 2004-2009 Robert Grimm,
// on Wednesday, February 23, 2011 at 2:21:20 PM.
// Edit at your own risk.
// ===========================================================================
package xtc.lang.jeannie;
import java.util.List;
import xtc.tree.Node;
import xtc.tree.GNode;
/**
* Node factory <code>xtc.lang.jeannie.JeannieCFactory</code>.
*
* <p />This class has been generated by
* the xtc Factory Factory, version 1.15.0,
* (C) 2004-2009 Robert Grimm.
*/
public class JeannieCFactory {
/** Create a new node factory. */
public JeannieCFactory() {
// Nothing to do.
}
/**
* Create an if statement.
*
* @param fieldName The fieldName.
* @param abruptFlowJump The abruptFlowJump.
* @return The generic node.
*/
public Node abruptFlowCheck(Node fieldName, Node abruptFlowJump) {
Node v$1 = GNode.create("PrimaryIdentifier", "env");
Node v$2 = GNode.create("IndirectionExpression", v$1);
Node v$3 = GNode.create("IndirectComponentSelection", v$2,
"ExceptionCheck");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("ExpressionList", v$4);
Node v$6 = GNode.create("FunctionCall", v$3, v$5);
Node v$7 = GNode.create("TypedefName", "jclass");
Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
Node v$9 = GNode.create("SimpleDeclarator", "cls");
Node v$10 = GNode.create("PrimaryIdentifier", "env");
Node v$11 = GNode.create("IndirectionExpression", v$10);
Node v$12 = GNode.create("IndirectComponentSelection", v$11,
"GetObjectClass");
Node v$13 = GNode.create("PrimaryIdentifier", "env");
Node v$14 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$15 = GNode.create("ExpressionList", v$13, v$14);
Node v$16 = GNode.create("FunctionCall", v$12, v$15);
Node v$17 = GNode.create("InitializedDeclarator", null, v$9, null, null,
v$16);
Node v$18 = GNode.create("InitializedDeclaratorList", v$17);
Node v$19 = GNode.create("Declaration", null, v$8, v$18);
Node v$20 = GNode.create("TypedefName", "jfieldID");
Node v$21 = GNode.create("DeclarationSpecifiers", v$20);
Node v$22 = GNode.create("SimpleDeclarator", "fid");
Node v$23 = GNode.create("PrimaryIdentifier", "env");
Node v$24 = GNode.create("IndirectionExpression", v$23);
Node v$25 = GNode.create("IndirectComponentSelection", v$24,
"GetFieldID");
Node v$26 = GNode.create("PrimaryIdentifier", "env");
Node v$27 = GNode.create("PrimaryIdentifier", "cls");
Node v$28 = GNode.create("StringConstant", "\"Z\"");
Node v$29 = GNode.create("ExpressionList", v$26, v$27, fieldName, v$28);
Node v$30 = GNode.create("FunctionCall", v$25, v$29);
Node v$31 = GNode.create("InitializedDeclarator", null, v$22, null, null,
v$30);
Node v$32 = GNode.create("InitializedDeclaratorList", v$31);
Node v$33 = GNode.create("Declaration", null, v$21, v$32);
Node v$34 = GNode.create("TypedefName", "jboolean");
Node v$35 = GNode.create("DeclarationSpecifiers", v$34);
Node v$36 = GNode.create("SimpleDeclarator", "tmp");
Node v$37 = GNode.create("PrimaryIdentifier", "env");
Node v$38 = GNode.create("IndirectionExpression", v$37);
Node v$39 = GNode.create("IndirectComponentSelection", v$38,
"GetBooleanField");
Node v$40 = GNode.create("PrimaryIdentifier", "env");
Node v$41 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$42 = GNode.create("PrimaryIdentifier", "fid");
Node v$43 = GNode.create("ExpressionList", v$40, v$41, v$42);
Node v$44 = GNode.create("FunctionCall", v$39, v$43);
Node v$45 = GNode.create("InitializedDeclarator", null, v$36, null, null,
v$44);
Node v$46 = GNode.create("InitializedDeclaratorList", v$45);
Node v$47 = GNode.create("Declaration", null, v$35, v$46);
Node v$48 = GNode.create("PrimaryIdentifier", "env");
Node v$49 = GNode.create("IndirectionExpression", v$48);
Node v$50 = GNode.create("IndirectComponentSelection", v$49,
"DeleteLocalRef");
Node v$51 = GNode.create("PrimaryIdentifier", "env");
Node v$52 = GNode.create("PrimaryIdentifier", "cls");
Node v$53 = GNode.create("ExpressionList", v$51, v$52);
Node v$54 = GNode.create("FunctionCall", v$50, v$53);
Node v$55 = GNode.create("ExpressionStatement", v$54);
Node v$56 = GNode.create("PrimaryIdentifier", "tmp");
Node v$57 = GNode.create("ExpressionStatement", v$56);
Node v$58 = GNode.create("CompoundStatement", v$19, v$33, v$47, v$55,
v$57, null);
Node v$59 = GNode.create("StatementAsExpression", v$58);
Node v$60 = GNode.create("LogicalOrExpression", v$6, v$59);
Node v$61 = GNode.create("CompoundStatement", abruptFlowJump, null);
Node v$62 = GNode.create("IfStatement", v$60, v$61);
return v$62;
}
/**
* Create a compound statement.
*
* @param releaseAbrupt The releaseAbrupt.
* @param fieldName The fieldName.
* @param abruptFlowJump The abruptFlowJump.
* @return The generic node.
*/
public Node abruptFlowCheckOpenArray(String releaseAbrupt, Node fieldName,
Node abruptFlowJump) {
Node v$1 = GNode.create("PrimaryIdentifier", "env");
Node v$2 = GNode.create("IndirectionExpression", v$1);
Node v$3 = GNode.create("IndirectComponentSelection", v$2,
"ExceptionCheck");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("ExpressionList", v$4);
Node v$6 = GNode.create("FunctionCall", v$3, v$5);
Node v$7 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$8 = GNode.create("IndirectComponentSelection", v$7, releaseAbrupt);
Node v$9 = GNode.create("IntegerConstant", "2");
Node v$10 = GNode.create("AssignmentExpression", v$8, "=", v$9);
Node v$11 = GNode.create("ExpressionStatement", v$10);
Node v$12 = GNode.create("IfStatement", v$6, v$11);
Node v$13 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$14 = GNode.create("IndirectComponentSelection", v$13,
releaseAbrupt);
Node v$15 = GNode.create("TypedefName", "jclass");
Node v$16 = GNode.create("DeclarationSpecifiers", v$15);
Node v$17 = GNode.create("SimpleDeclarator", "cls");
Node v$18 = GNode.create("PrimaryIdentifier", "env");
Node v$19 = GNode.create("IndirectionExpression", v$18);
Node v$20 = GNode.create("IndirectComponentSelection", v$19,
"GetObjectClass");
Node v$21 = GNode.create("PrimaryIdentifier", "env");
Node v$22 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$23 = GNode.create("ExpressionList", v$21, v$22);
Node v$24 = GNode.create("FunctionCall", v$20, v$23);
Node v$25 = GNode.create("InitializedDeclarator", null, v$17, null, null,
v$24);
Node v$26 = GNode.create("InitializedDeclaratorList", v$25);
Node v$27 = GNode.create("Declaration", null, v$16, v$26);
Node v$28 = GNode.create("TypedefName", "jfieldID");
Node v$29 = GNode.create("DeclarationSpecifiers", v$28);
Node v$30 = GNode.create("SimpleDeclarator", "fid");
Node v$31 = GNode.create("PrimaryIdentifier", "env");
Node v$32 = GNode.create("IndirectionExpression", v$31);
Node v$33 = GNode.create("IndirectComponentSelection", v$32,
"GetFieldID");
Node v$34 = GNode.create("PrimaryIdentifier", "env");
Node v$35 = GNode.create("PrimaryIdentifier", "cls");
Node v$36 = GNode.create("StringConstant", "\"Z\"");
Node v$37 = GNode.create("ExpressionList", v$34, v$35, fieldName, v$36);
Node v$38 = GNode.create("FunctionCall", v$33, v$37);
Node v$39 = GNode.create("InitializedDeclarator", null, v$30, null, null,
v$38);
Node v$40 = GNode.create("InitializedDeclaratorList", v$39);
Node v$41 = GNode.create("Declaration", null, v$29, v$40);
Node v$42 = GNode.create("TypedefName", "jboolean");
Node v$43 = GNode.create("DeclarationSpecifiers", v$42);
Node v$44 = GNode.create("SimpleDeclarator", "tmp");
Node v$45 = GNode.create("PrimaryIdentifier", "env");
Node v$46 = GNode.create("IndirectionExpression", v$45);
Node v$47 = GNode.create("IndirectComponentSelection", v$46,
"GetBooleanField");
Node v$48 = GNode.create("PrimaryIdentifier", "env");
Node v$49 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$50 = GNode.create("PrimaryIdentifier", "fid");
Node v$51 = GNode.create("ExpressionList", v$48, v$49, v$50);
Node v$52 = GNode.create("FunctionCall", v$47, v$51);
Node v$53 = GNode.create("InitializedDeclarator", null, v$44, null, null,
v$52);
Node v$54 = GNode.create("InitializedDeclaratorList", v$53);
Node v$55 = GNode.create("Declaration", null, v$43, v$54);
Node v$56 = GNode.create("PrimaryIdentifier", "env");
Node v$57 = GNode.create("IndirectionExpression", v$56);
Node v$58 = GNode.create("IndirectComponentSelection", v$57,
"DeleteLocalRef");
Node v$59 = GNode.create("PrimaryIdentifier", "env");
Node v$60 = GNode.create("PrimaryIdentifier", "cls");
Node v$61 = GNode.create("ExpressionList", v$59, v$60);
Node v$62 = GNode.create("FunctionCall", v$58, v$61);
Node v$63 = GNode.create("ExpressionStatement", v$62);
Node v$64 = GNode.create("PrimaryIdentifier", "tmp");
Node v$65 = GNode.create("ExpressionStatement", v$64);
Node v$66 = GNode.create("CompoundStatement", v$27, v$41, v$55, v$63,
v$65, null);
Node v$67 = GNode.create("StatementAsExpression", v$66);
Node v$68 = GNode.create("LogicalOrExpression", v$14, v$67);
Node v$69 = GNode.create("CompoundStatement", abruptFlowJump, null);
Node v$70 = GNode.create("IfStatement", v$68, v$69);
Node v$71 = GNode.create("CompoundStatement", v$12, v$70, null);
return v$71;
}
/**
* Create a goto statement.
*
* @param label The label.
* @return The generic node.
*/
public Node abruptFlowJumpOpenArray(String label) {
Node v$1 = GNode.create("PrimaryIdentifier", label);
Node v$2 = GNode.create("GotoStatement", null, v$1);
return v$2;
}
/**
* Create a compound statement.
*
* @param statements The statements.
* @return The generic node.
*/
public Node block(List<Node> statements) {
Node v$1 = GNode.create("CompoundStatement", statements.size() + 1).
addAll(statements).add(null);
return v$1;
}
/**
* Create a compound statement.
*
* @param releaseAbrupt The releaseAbrupt.
* @param abruptFlowJump The abruptFlowJump.
* @return The generic node.
*/
public Node cancel(String releaseAbrupt, Node abruptFlowJump) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, releaseAbrupt);
Node v$3 = GNode.create("IntegerConstant", "2");
Node v$4 = GNode.create("AssignmentExpression", v$2, "=", v$3);
Node v$5 = GNode.create("ExpressionStatement", v$4);
Node v$6 = GNode.create("CompoundStatement", v$5, abruptFlowJump, null);
return v$6;
}
/**
* Create a statement as expression.
*
* @param tmpDeclaration The tmpDeclaration.
* @param call The call.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node checkedFunctionCallResult(Node tmpDeclaration, Node call,
Node abruptFlowCheck) {
Node v$1 = GNode.create("PrimaryIdentifier", "tmp");
Node v$2 = GNode.create("AssignmentExpression", v$1, "=", call);
Node v$3 = GNode.create("ExpressionStatement", v$2);
Node v$4 = GNode.create("PrimaryIdentifier", "tmp");
Node v$5 = GNode.create("ExpressionStatement", v$4);
Node v$6 = GNode.create("CompoundStatement", tmpDeclaration, v$3,
abruptFlowCheck, v$5, null);
Node v$7 = GNode.create("StatementAsExpression", v$6);
return v$7;
}
/**
* Create a compound statement.
*
* @param call The call.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node checkedFunctionCallVoid(Node call, Node abruptFlowCheck) {
Node v$1 = GNode.create("ExpressionStatement", call);
Node v$2 = GNode.create("CompoundStatement", v$1, abruptFlowCheck, null);
return v$2;
}
/**
* Create a compound statement.
*
* @param tag The tag.
* @param expression The expression.
* @return The generic node.
*/
public Node cInJavaExpressionWithCEnv(String tag, Node expression) {
Node v$1 = GNode.create("StructureTypeReference", null, tag);
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("TypeQualifierList", false);
Node v$4 = GNode.create("Pointer", v$3, null);
Node v$5 = GNode.create("SimpleDeclarator", "pcEnv");
Node v$6 = GNode.create("PointerDeclarator", v$4, v$5);
Node v$7 = GNode.create("StructureTypeReference", null, tag);
Node v$8 = GNode.create("SpecifierQualifierList", v$7);
Node v$9 = GNode.create("TypeQualifierList", false);
Node v$10 = GNode.create("Pointer", v$9, null);
Node v$11 = GNode.create("AbstractDeclarator", v$10, null);
Node v$12 = GNode.create("TypeName", v$8, v$11);
Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
Node v$14 = GNode.create("CastExpression", v$12, v$13);
Node v$15 = GNode.create("InitializedDeclarator", null, v$6, null, null,
v$14);
Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
Node v$17 = GNode.create("Declaration", null, v$2, v$16);
Node v$18 = GNode.create("ReturnStatement", expression);
Node v$19 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$20 = GNode.create("IntegerConstant", "0");
Node v$21 = GNode.create("AssignmentExpression", v$19, "=", v$20);
Node v$22 = GNode.create("ExpressionStatement", v$21);
Node v$23 = GNode.create("CompoundStatement", v$17, v$18, v$22, null);
return v$23;
}
/**
* Create a compound statement.
*
* @param tag The tag.
* @param expression The expression.
* @return The generic node.
*/
public Node cInJavaExpressionWithoutCEnv(String tag, Node expression) {
Node v$1 = GNode.create("StructureTypeReference", null, tag);
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cEnv");
Node v$4 = GNode.create("InitializedDeclarator", null, v$3, null, null,
null);
Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
Node v$6 = GNode.create("Declaration", null, v$2, v$5);
Node v$7 = GNode.create("StructureTypeReference", null, tag);
Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
Node v$9 = GNode.create("TypeQualifierList", false);
Node v$10 = GNode.create("Pointer", v$9, null);
Node v$11 = GNode.create("SimpleDeclarator", "pcEnv");
Node v$12 = GNode.create("PointerDeclarator", v$10, v$11);
Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
Node v$14 = GNode.create("AddressExpression", v$13);
Node v$15 = GNode.create("InitializedDeclarator", null, v$12, null, null,
v$14);
Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
Node v$17 = GNode.create("Declaration", null, v$8, v$16);
Node v$18 = GNode.create("ReturnStatement", expression);
Node v$19 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$20 = GNode.create("IntegerConstant", "0");
Node v$21 = GNode.create("AssignmentExpression", v$19, "=", v$20);
Node v$22 = GNode.create("ExpressionStatement", v$21);
Node v$23 = GNode.create("CompoundStatement", v$6, v$17, v$18, v$22,
null);
return v$23;
}
/**
* Create a compound statement.
*
* @param tag The tag.
* @param statement The statement.
* @return The generic node.
*/
public Node cInJavaStatementWithCEnv(String tag, Node statement) {
Node v$1 = GNode.create("StructureTypeReference", null, tag);
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("TypeQualifierList", false);
Node v$4 = GNode.create("Pointer", v$3, null);
Node v$5 = GNode.create("SimpleDeclarator", "pcEnv");
Node v$6 = GNode.create("PointerDeclarator", v$4, v$5);
Node v$7 = GNode.create("StructureTypeReference", null, tag);
Node v$8 = GNode.create("SpecifierQualifierList", v$7);
Node v$9 = GNode.create("TypeQualifierList", false);
Node v$10 = GNode.create("Pointer", v$9, null);
Node v$11 = GNode.create("AbstractDeclarator", v$10, null);
Node v$12 = GNode.create("TypeName", v$8, v$11);
Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
Node v$14 = GNode.create("CastExpression", v$12, v$13);
Node v$15 = GNode.create("InitializedDeclarator", null, v$6, null, null,
v$14);
Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
Node v$17 = GNode.create("Declaration", null, v$2, v$16);
Node v$18 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$19 = GNode.create("IntegerConstant", "0");
Node v$20 = GNode.create("AssignmentExpression", v$18, "=", v$19);
Node v$21 = GNode.create("ExpressionStatement", v$20);
Node v$22 = GNode.create("CompoundStatement", v$17, statement, v$21,
null);
return v$22;
}
/**
* Create a compound statement.
*
* @param tag The tag.
* @param statement The statement.
* @return The generic node.
*/
public Node cInJavaStatementWithoutCEnv(String tag, Node statement) {
Node v$1 = GNode.create("StructureTypeReference", null, tag);
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cEnv");
Node v$4 = GNode.create("InitializedDeclarator", null, v$3, null, null,
null);
Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
Node v$6 = GNode.create("Declaration", null, v$2, v$5);
Node v$7 = GNode.create("StructureTypeReference", null, tag);
Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
Node v$9 = GNode.create("TypeQualifierList", false);
Node v$10 = GNode.create("Pointer", v$9, null);
Node v$11 = GNode.create("SimpleDeclarator", "pcEnv");
Node v$12 = GNode.create("PointerDeclarator", v$10, v$11);
Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
Node v$14 = GNode.create("AddressExpression", v$13);
Node v$15 = GNode.create("InitializedDeclarator", null, v$12, null, null,
v$14);
Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
Node v$17 = GNode.create("Declaration", null, v$8, v$16);
Node v$18 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$19 = GNode.create("IntegerConstant", "0");
Node v$20 = GNode.create("AssignmentExpression", v$18, "=", v$19);
Node v$21 = GNode.create("ExpressionStatement", v$20);
Node v$22 = GNode.create("CompoundStatement", v$6, v$17, statement, v$21,
null);
return v$22;
}
/**
* Create a compound statement.
*
* @param tag The tag.
* @param copyFormals The copyFormals.
* @param className The className.
* @param statement The statement.
* @return The generic node.
*/
public Node closureStatement(String tag, Node copyFormals, Node className,
Node statement) {
Node v$1 = GNode.create("StructureTypeReference", null, tag);
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cEnv");
Node v$4 = GNode.create("InitializedDeclarator", null, v$3, null, null,
null);
Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
Node v$6 = GNode.create("Declaration", null, v$2, v$5);
Node v$7 = GNode.create("StructureTypeReference", null, tag);
Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
Node v$9 = GNode.create("TypeQualifierList", false);
Node v$10 = GNode.create("Pointer", v$9, null);
Node v$11 = GNode.create("SimpleDeclarator", "pcEnv");
Node v$12 = GNode.create("PointerDeclarator", v$10, v$11);
Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
Node v$14 = GNode.create("AddressExpression", v$13);
Node v$15 = GNode.create("InitializedDeclarator", null, v$12, null, null,
v$14);
Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
Node v$17 = GNode.create("Declaration", null, v$8, v$16);
Node v$18 = GNode.create("TypedefName", "jobject");
Node v$19 = GNode.create("DeclarationSpecifiers", v$18);
Node v$20 = GNode.create("SimpleDeclarator", "jEnv");
Node v$21 = GNode.create("TypedefName", "jclass");
Node v$22 = GNode.create("DeclarationSpecifiers", v$21);
Node v$23 = GNode.create("SimpleDeclarator", "cls");
Node v$24 = GNode.create("PrimaryIdentifier", "env");
Node v$25 = GNode.create("IndirectionExpression", v$24);
Node v$26 = GNode.create("IndirectComponentSelection", v$25, "FindClass");
Node v$27 = GNode.create("PrimaryIdentifier", "env");
Node v$28 = GNode.create("ExpressionList", v$27, className);
Node v$29 = GNode.create("FunctionCall", v$26, v$28);
Node v$30 = GNode.create("InitializedDeclarator", null, v$23, null, null,
v$29);
Node v$31 = GNode.create("InitializedDeclaratorList", v$30);
Node v$32 = GNode.create("Declaration", null, v$22, v$31);
Node v$33 = GNode.create("TypedefName", "jmethodID");
Node v$34 = GNode.create("DeclarationSpecifiers", v$33);
Node v$35 = GNode.create("SimpleDeclarator", "mid");
Node v$36 = GNode.create("PrimaryIdentifier", "env");
Node v$37 = GNode.create("IndirectionExpression", v$36);
Node v$38 = GNode.create("IndirectComponentSelection", v$37,
"GetMethodID");
Node v$39 = GNode.create("PrimaryIdentifier", "env");
Node v$40 = GNode.create("PrimaryIdentifier", "cls");
Node v$41 = GNode.create("StringConstant", "\"<init>\"");
Node v$42 = GNode.create("StringConstant", "\"()V\"");
Node v$43 = GNode.create("ExpressionList", v$39, v$40, v$41, v$42);
Node v$44 = GNode.create("FunctionCall", v$38, v$43);
Node v$45 = GNode.create("InitializedDeclarator", null, v$35, null, null,
v$44);
Node v$46 = GNode.create("InitializedDeclaratorList", v$45);
Node v$47 = GNode.create("Declaration", null, v$34, v$46);
Node v$48 = GNode.create("TypedefName", "jobject");
Node v$49 = GNode.create("DeclarationSpecifiers", v$48);
Node v$50 = GNode.create("SimpleDeclarator", "tmp");
Node v$51 = GNode.create("PrimaryIdentifier", "env");
Node v$52 = GNode.create("IndirectionExpression", v$51);
Node v$53 = GNode.create("IndirectComponentSelection", v$52, "NewObject");
Node v$54 = GNode.create("PrimaryIdentifier", "env");
Node v$55 = GNode.create("PrimaryIdentifier", "cls");
Node v$56 = GNode.create("PrimaryIdentifier", "mid");
Node v$57 = GNode.create("ExpressionList", v$54, v$55, v$56);
Node v$58 = GNode.create("FunctionCall", v$53, v$57);
Node v$59 = GNode.create("InitializedDeclarator", null, v$50, null, null,
v$58);
Node v$60 = GNode.create("InitializedDeclaratorList", v$59);
Node v$61 = GNode.create("Declaration", null, v$49, v$60);
Node v$62 = GNode.create("PrimaryIdentifier", "env");
Node v$63 = GNode.create("IndirectionExpression", v$62);
Node v$64 = GNode.create("IndirectComponentSelection", v$63,
"DeleteLocalRef");
Node v$65 = GNode.create("PrimaryIdentifier", "env");
Node v$66 = GNode.create("PrimaryIdentifier", "cls");
Node v$67 = GNode.create("ExpressionList", v$65, v$66);
Node v$68 = GNode.create("FunctionCall", v$64, v$67);
Node v$69 = GNode.create("ExpressionStatement", v$68);
Node v$70 = GNode.create("PrimaryIdentifier", "tmp");
Node v$71 = GNode.create("ExpressionStatement", v$70);
Node v$72 = GNode.create("CompoundStatement", v$32, v$47, v$61, v$69,
v$71, null);
Node v$73 = GNode.create("StatementAsExpression", v$72);
Node v$74 = GNode.create("InitializedDeclarator", null, v$20, null, null,
v$73);
Node v$75 = GNode.create("InitializedDeclaratorList", v$74);
Node v$76 = GNode.create("Declaration", null, v$19, v$75);
Node v$77 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$78 = GNode.create("IntegerConstant", "0");
Node v$79 = GNode.create("AssignmentExpression", v$77, "=", v$78);
Node v$80 = GNode.create("ExpressionStatement", v$79);
Node v$81 = GNode.create("CompoundStatement", v$6, v$17, copyFormals,
v$76, statement, v$80, null);
return v$81;
}
/**
* Create a compound statement.
*
* @param releaseAbrupt The releaseAbrupt.
* @param abruptFlowJump The abruptFlowJump.
* @return The generic node.
*/
public Node commit(String releaseAbrupt, Node abruptFlowJump) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, releaseAbrupt);
Node v$3 = GNode.create("IntegerConstant", "1");
Node v$4 = GNode.create("AssignmentExpression", v$2, "=", v$3);
Node v$5 = GNode.create("ExpressionStatement", v$4);
Node v$6 = GNode.create("CompoundStatement", v$5, abruptFlowJump, null);
return v$6;
}
/**
* Create a statement as expression.
*
* @param apiFunction The apiFunction.
* @param javaArray The javaArray.
* @param javaArrayStart The javaArrayStart.
* @param length The length.
* @param cArray The cArray.
* @param cArrayStart The cArrayStart.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node copyBetweenJavaAndC(String apiFunction, Node javaArray,
Node javaArrayStart, Node length,
Node cArray, Node cArrayStart,
Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jint");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "length");
Node v$4 = GNode.create("InitializedDeclarator", null, v$3, null, null,
null);
Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
Node v$6 = GNode.create("Declaration", null, v$2, v$5);
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("IndirectionExpression", v$7);
Node v$9 = GNode.create("IndirectComponentSelection", v$8, apiFunction);
Node v$10 = GNode.create("PrimaryIdentifier", "env");
Node v$11 = GNode.create("PrimaryIdentifier", "length");
Node v$12 = GNode.create("AssignmentExpression", v$11, "=", length);
Node v$13 = GNode.create("AdditiveExpression", cArray, "+", cArrayStart);
Node v$14 = GNode.create("ExpressionList", v$10, javaArray,
javaArrayStart, v$12, v$13);
Node v$15 = GNode.create("FunctionCall", v$9, v$14);
Node v$16 = GNode.create("ExpressionStatement", v$15);
Node v$17 = GNode.create("PrimaryIdentifier", "length");
Node v$18 = GNode.create("ExpressionStatement", v$17);
Node v$19 = GNode.create("CompoundStatement", v$6, v$16, abruptFlowCheck,
v$18, null);
Node v$20 = GNode.create("StatementAsExpression", v$19);
return v$20;
}
/**
* Create a statement as expression.
*
* @param javaArray The javaArray.
* @param javaArrayStart The javaArrayStart.
* @param length The length.
* @param apiFunction The apiFunction.
* @param cArray The cArray.
* @param cArrayStart The cArrayStart.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node copyBetweenJavaAndCUTF(Node javaArray, Node javaArrayStart,
Node length, String apiFunction,
Node cArray, Node cArrayStart,
Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jstring");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "javaArray");
Node v$4 = GNode.create("InitializedDeclarator", null, v$3, null, null,
javaArray);
Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
Node v$6 = GNode.create("Declaration", null, v$2, v$5);
Node v$7 = GNode.create("TypedefName", "jint");
Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
Node v$9 = GNode.create("SimpleDeclarator", "start");
Node v$10 = GNode.create("InitializedDeclarator", null, v$9, null, null,
javaArrayStart);
Node v$11 = GNode.create("SimpleDeclarator", "length");
Node v$12 = GNode.create("InitializedDeclarator", null, v$11, null, null,
length);
Node v$13 = GNode.create("InitializedDeclaratorList", v$10, v$12);
Node v$14 = GNode.create("Declaration", null, v$8, v$13);
Node v$15 = GNode.create("PrimaryIdentifier", "env");
Node v$16 = GNode.create("IndirectionExpression", v$15);
Node v$17 = GNode.create("IndirectComponentSelection", v$16, apiFunction);
Node v$18 = GNode.create("PrimaryIdentifier", "env");
Node v$19 = GNode.create("PrimaryIdentifier", "javaArray");
Node v$20 = GNode.create("PrimaryIdentifier", "start");
Node v$21 = GNode.create("PrimaryIdentifier", "length");
Node v$22 = GNode.create("Char", false);
Node v$23 = GNode.create("SpecifierQualifierList", v$22);
Node v$24 = GNode.create("TypeQualifierList", false);
Node v$25 = GNode.create("Pointer", v$24, null);
Node v$26 = GNode.create("AbstractDeclarator", v$25, null);
Node v$27 = GNode.create("TypeName", v$23, v$26);
Node v$28 = GNode.create("AdditiveExpression", cArray, "+", cArrayStart);
Node v$29 = GNode.create("CastExpression", v$27, v$28);
Node v$30 = GNode.create("ExpressionList", v$18, v$19, v$20, v$21, v$29);
Node v$31 = GNode.create("FunctionCall", v$17, v$30);
Node v$32 = GNode.create("ExpressionStatement", v$31);
Node v$33 = GNode.create("PrimaryIdentifier", "_stringUTFLength");
Node v$34 = GNode.create("PrimaryIdentifier", "env");
Node v$35 = GNode.create("PrimaryIdentifier", "javaArray");
Node v$36 = GNode.create("PrimaryIdentifier", "start");
Node v$37 = GNode.create("PrimaryIdentifier", "length");
Node v$38 = GNode.create("ExpressionList", v$34, v$35, v$36, v$37);
Node v$39 = GNode.create("FunctionCall", v$33, v$38);
Node v$40 = GNode.create("ExpressionStatement", v$39);
Node v$41 = GNode.create("CompoundStatement", v$6, v$14, v$32,
abruptFlowCheck, v$40, null);
Node v$42 = GNode.create("StatementAsExpression", v$41);
return v$42;
}
/**
* Create a statement as expression.
*
* @param javaArray The javaArray.
* @param javaArrayStart The javaArrayStart.
* @param length The length.
* @param cArray The cArray.
* @param cArrayStart The cArrayStart.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node copyFromJavaReference(Node javaArray, Node javaArrayStart,
Node length, Node cArray,
Node cArrayStart, Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jobjectArray");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "javaArray");
Node v$4 = GNode.create("InitializedDeclarator", null, v$3, null, null,
javaArray);
Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
Node v$6 = GNode.create("Declaration", null, v$2, v$5);
Node v$7 = GNode.create("TypedefName", "jint");
Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
Node v$9 = GNode.create("SimpleDeclarator", "start");
Node v$10 = GNode.create("InitializedDeclarator", null, v$9, null, null,
javaArrayStart);
Node v$11 = GNode.create("SimpleDeclarator", "length");
Node v$12 = GNode.create("InitializedDeclarator", null, v$11, null, null,
length);
Node v$13 = GNode.create("InitializedDeclaratorList", v$10, v$12);
Node v$14 = GNode.create("Declaration", null, v$8, v$13);
Node v$15 = GNode.create("TypedefName", "jobject");
Node v$16 = GNode.create("DeclarationSpecifiers", v$15);
Node v$17 = GNode.create("TypeQualifierList", false);
Node v$18 = GNode.create("Pointer", v$17, null);
Node v$19 = GNode.create("SimpleDeclarator", "cArray");
Node v$20 = GNode.create("PointerDeclarator", v$18, v$19);
Node v$21 = GNode.create("AdditiveExpression", cArray, "+", cArrayStart);
Node v$22 = GNode.create("InitializedDeclarator", null, v$20, null, null,
v$21);
Node v$23 = GNode.create("InitializedDeclaratorList", v$22);
Node v$24 = GNode.create("Declaration", null, v$16, v$23);
Node v$25 = GNode.create("TypedefName", "jint");
Node v$26 = GNode.create("DeclarationSpecifiers", v$25);
Node v$27 = GNode.create("SimpleDeclarator", "i");
Node v$28 = GNode.create("InitializedDeclarator", null, v$27, null, null,
null);
Node v$29 = GNode.create("InitializedDeclaratorList", v$28);
Node v$30 = GNode.create("Declaration", null, v$26, v$29);
Node v$31 = GNode.create("PrimaryIdentifier", "i");
Node v$32 = GNode.create("IntegerConstant", "0");
Node v$33 = GNode.create("AssignmentExpression", v$31, "=", v$32);
Node v$34 = GNode.create("PrimaryIdentifier", "i");
Node v$35 = GNode.create("PrimaryIdentifier", "length");
Node v$36 = GNode.create("RelationalExpression", v$34, "<", v$35);
Node v$37 = GNode.create("PrimaryIdentifier", "i");
Node v$38 = GNode.create("PostincrementExpression", v$37);
Node v$39 = GNode.create("PrimaryIdentifier", "cArray");
Node v$40 = GNode.create("PrimaryIdentifier", "i");
Node v$41 = GNode.create("SubscriptExpression", v$39, v$40);
Node v$42 = GNode.create("PrimaryIdentifier", "env");
Node v$43 = GNode.create("IndirectionExpression", v$42);
Node v$44 = GNode.create("IndirectComponentSelection", v$43,
"GetObjectArrayElement");
Node v$45 = GNode.create("PrimaryIdentifier", "env");
Node v$46 = GNode.create("PrimaryIdentifier", "javaArray");
Node v$47 = GNode.create("PrimaryIdentifier", "start");
Node v$48 = GNode.create("PrimaryIdentifier", "i");
Node v$49 = GNode.create("AdditiveExpression", v$47, "+", v$48);
Node v$50 = GNode.create("ExpressionList", v$45, v$46, v$49);
Node v$51 = GNode.create("FunctionCall", v$44, v$50);
Node v$52 = GNode.create("AssignmentExpression", v$41, "=", v$51);
Node v$53 = GNode.create("ExpressionStatement", v$52);
Node v$54 = GNode.create("PrimaryIdentifier", "env");
Node v$55 = GNode.create("IndirectionExpression", v$54);
Node v$56 = GNode.create("IndirectComponentSelection", v$55,
"ExceptionCheck");
Node v$57 = GNode.create("PrimaryIdentifier", "env");
Node v$58 = GNode.create("ExpressionList", v$57);
Node v$59 = GNode.create("FunctionCall", v$56, v$58);
Node v$60 = GNode.create("BreakStatement", false);
Node v$61 = GNode.create("IfStatement", v$59, v$60);
Node v$62 = GNode.create("CompoundStatement", v$53, v$61, null);
Node v$63 = GNode.create("ForStatement", v$33, v$36, v$38, v$62);
Node v$64 = GNode.create("PrimaryIdentifier", "length");
Node v$65 = GNode.create("ExpressionStatement", v$64);
Node v$66 = GNode.create("CompoundStatement", v$6, v$14, v$24, v$30,
v$63, abruptFlowCheck, v$65, null);
Node v$67 = GNode.create("StatementAsExpression", v$66);
return v$67;
}
/**
* Create a statement as expression.
*
* @param javaArray The javaArray.
* @param javaArrayStart The javaArrayStart.
* @param length The length.
* @param cArray The cArray.
* @param cArrayStart The cArrayStart.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node copyToJavaReference(Node javaArray, Node javaArrayStart,
Node length, Node cArray, Node cArrayStart,
Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jobjectArray");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "javaArray");
Node v$4 = GNode.create("InitializedDeclarator", null, v$3, null, null,
javaArray);
Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
Node v$6 = GNode.create("Declaration", null, v$2, v$5);
Node v$7 = GNode.create("TypedefName", "jint");
Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
Node v$9 = GNode.create("SimpleDeclarator", "start");
Node v$10 = GNode.create("InitializedDeclarator", null, v$9, null, null,
javaArrayStart);
Node v$11 = GNode.create("SimpleDeclarator", "length");
Node v$12 = GNode.create("InitializedDeclarator", null, v$11, null, null,
length);
Node v$13 = GNode.create("InitializedDeclaratorList", v$10, v$12);
Node v$14 = GNode.create("Declaration", null, v$8, v$13);
Node v$15 = GNode.create("TypedefName", "jobject");
Node v$16 = GNode.create("DeclarationSpecifiers", v$15);
Node v$17 = GNode.create("TypeQualifierList", false);
Node v$18 = GNode.create("Pointer", v$17, null);
Node v$19 = GNode.create("SimpleDeclarator", "cArray");
Node v$20 = GNode.create("PointerDeclarator", v$18, v$19);
Node v$21 = GNode.create("AdditiveExpression", cArray, "+", cArrayStart);
Node v$22 = GNode.create("InitializedDeclarator", null, v$20, null, null,
v$21);
Node v$23 = GNode.create("InitializedDeclaratorList", v$22);
Node v$24 = GNode.create("Declaration", null, v$16, v$23);
Node v$25 = GNode.create("TypedefName", "jint");
Node v$26 = GNode.create("DeclarationSpecifiers", v$25);
Node v$27 = GNode.create("SimpleDeclarator", "i");
Node v$28 = GNode.create("InitializedDeclarator", null, v$27, null, null,
null);
Node v$29 = GNode.create("InitializedDeclaratorList", v$28);
Node v$30 = GNode.create("Declaration", null, v$26, v$29);
Node v$31 = GNode.create("PrimaryIdentifier", "i");
Node v$32 = GNode.create("IntegerConstant", "0");
Node v$33 = GNode.create("AssignmentExpression", v$31, "=", v$32);
Node v$34 = GNode.create("PrimaryIdentifier", "i");
Node v$35 = GNode.create("PrimaryIdentifier", "length");
Node v$36 = GNode.create("RelationalExpression", v$34, "<", v$35);
Node v$37 = GNode.create("PrimaryIdentifier", "i");
Node v$38 = GNode.create("PostincrementExpression", v$37);
Node v$39 = GNode.create("PrimaryIdentifier", "env");
Node v$40 = GNode.create("IndirectionExpression", v$39);
Node v$41 = GNode.create("IndirectComponentSelection", v$40,
"SetObjectArrayElement");
Node v$42 = GNode.create("PrimaryIdentifier", "env");
Node v$43 = GNode.create("PrimaryIdentifier", "javaArray");
Node v$44 = GNode.create("PrimaryIdentifier", "start");
Node v$45 = GNode.create("PrimaryIdentifier", "i");
Node v$46 = GNode.create("AdditiveExpression", v$44, "+", v$45);
Node v$47 = GNode.create("PrimaryIdentifier", "cArray");
Node v$48 = GNode.create("PrimaryIdentifier", "i");
Node v$49 = GNode.create("SubscriptExpression", v$47, v$48);
Node v$50 = GNode.create("ExpressionList", v$42, v$43, v$46, v$49);
Node v$51 = GNode.create("FunctionCall", v$41, v$50);
Node v$52 = GNode.create("ExpressionStatement", v$51);
Node v$53 = GNode.create("PrimaryIdentifier", "env");
Node v$54 = GNode.create("IndirectionExpression", v$53);
Node v$55 = GNode.create("IndirectComponentSelection", v$54,
"ExceptionCheck");
Node v$56 = GNode.create("PrimaryIdentifier", "env");
Node v$57 = GNode.create("ExpressionList", v$56);
Node v$58 = GNode.create("FunctionCall", v$55, v$57);
Node v$59 = GNode.create("BreakStatement", false);
Node v$60 = GNode.create("IfStatement", v$58, v$59);
Node v$61 = GNode.create("CompoundStatement", v$52, v$60, null);
Node v$62 = GNode.create("ForStatement", v$33, v$36, v$38, v$61);
Node v$63 = GNode.create("PrimaryIdentifier", "length");
Node v$64 = GNode.create("ExpressionStatement", v$63);
Node v$65 = GNode.create("CompoundStatement", v$6, v$14, v$24, v$30,
v$62, abruptFlowCheck, v$64, null);
Node v$66 = GNode.create("StatementAsExpression", v$65);
return v$66;
}
/**
* Create a declaration.
*
* @param tag The tag.
* @param members The members.
* @return The generic node.
*/
public Node declareStruct(String tag, List<Node> members) {
Node v$1 = GNode.create("StructureDeclarationList", members.size() + 1).
addAll(members).add(null);
Node v$2 = GNode.create("StructureTypeDefinition", null, tag, v$1, null);
Node v$3 = GNode.create("DeclarationSpecifiers", v$2);
Node v$4 = GNode.create("Declaration", null, v$3, null);
return v$4;
}
/**
* Create an indirect component selection.
*
* @param name The name.
* @return The generic node.
*/
public Node getPCEnvField(String name) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, name);
return v$2;
}
/**
* Create a statement as expression.
*
* @param name The name.
* @param signature The signature.
* @param tmpDeclaration The tmpDeclaration.
* @param apiFunction The apiFunction.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node javaInCExpression32(Node name, Node signature,
Node tmpDeclaration, String apiFunction,
Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jclass");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cls");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("IndirectionExpression", v$4);
Node v$6 = GNode.create("IndirectComponentSelection", v$5,
"GetObjectClass");
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$9 = GNode.create("ExpressionList", v$7, v$8);
Node v$10 = GNode.create("FunctionCall", v$6, v$9);
Node v$11 = GNode.create("InitializedDeclarator", null, v$3, null, null,
v$10);
Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
Node v$13 = GNode.create("Declaration", null, v$2, v$12);
Node v$14 = GNode.create("TypedefName", "jmethodID");
Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
Node v$16 = GNode.create("SimpleDeclarator", "mid");
Node v$17 = GNode.create("PrimaryIdentifier", "env");
Node v$18 = GNode.create("IndirectionExpression", v$17);
Node v$19 = GNode.create("IndirectComponentSelection", v$18,
"GetMethodID");
Node v$20 = GNode.create("PrimaryIdentifier", "env");
Node v$21 = GNode.create("PrimaryIdentifier", "cls");
Node v$22 = GNode.create("ExpressionList", v$20, v$21, name, signature);
Node v$23 = GNode.create("FunctionCall", v$19, v$22);
Node v$24 = GNode.create("InitializedDeclarator", null, v$16, null, null,
v$23);
Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
Node v$26 = GNode.create("Declaration", null, v$15, v$25);
Node v$27 = GNode.create("PrimaryIdentifier", "tmp");
Node v$28 = GNode.create("PrimaryIdentifier", "env");
Node v$29 = GNode.create("IndirectionExpression", v$28);
Node v$30 = GNode.create("IndirectComponentSelection", v$29, apiFunction);
Node v$31 = GNode.create("PrimaryIdentifier", "env");
Node v$32 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$33 = GNode.create("PrimaryIdentifier", "cls");
Node v$34 = GNode.create("PrimaryIdentifier", "mid");
Node v$35 = GNode.create("TypedefName", "jint");
Node v$36 = GNode.create("SpecifierQualifierList", v$35);
Node v$37 = GNode.create("TypeName", v$36, null);
Node v$38 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$39 = GNode.create("CastExpression", v$37, v$38);
Node v$40 = GNode.create("ExpressionList", v$31, v$32, v$33, v$34, v$39);
Node v$41 = GNode.create("FunctionCall", v$30, v$40);
Node v$42 = GNode.create("AssignmentExpression", v$27, "=", v$41);
Node v$43 = GNode.create("ExpressionStatement", v$42);
Node v$44 = GNode.create("PrimaryIdentifier", "env");
Node v$45 = GNode.create("IndirectionExpression", v$44);
Node v$46 = GNode.create("IndirectComponentSelection", v$45,
"DeleteLocalRef");
Node v$47 = GNode.create("PrimaryIdentifier", "env");
Node v$48 = GNode.create("PrimaryIdentifier", "cls");
Node v$49 = GNode.create("ExpressionList", v$47, v$48);
Node v$50 = GNode.create("FunctionCall", v$46, v$49);
Node v$51 = GNode.create("ExpressionStatement", v$50);
Node v$52 = GNode.create("PrimaryIdentifier", "tmp");
Node v$53 = GNode.create("ExpressionStatement", v$52);
Node v$54 = GNode.create("CompoundStatement", v$13, v$26, tmpDeclaration,
v$43, v$51, abruptFlowCheck, v$53, null);
Node v$55 = GNode.create("StatementAsExpression", v$54);
return v$55;
}
/**
* Create a statement as expression.
*
* @param name The name.
* @param signature The signature.
* @param tmpDeclaration The tmpDeclaration.
* @param apiFunction The apiFunction.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node javaInCExpression64(Node name, Node signature,
Node tmpDeclaration, String apiFunction,
Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jclass");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cls");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("IndirectionExpression", v$4);
Node v$6 = GNode.create("IndirectComponentSelection", v$5,
"GetObjectClass");
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$9 = GNode.create("ExpressionList", v$7, v$8);
Node v$10 = GNode.create("FunctionCall", v$6, v$9);
Node v$11 = GNode.create("InitializedDeclarator", null, v$3, null, null,
v$10);
Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
Node v$13 = GNode.create("Declaration", null, v$2, v$12);
Node v$14 = GNode.create("TypedefName", "jmethodID");
Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
Node v$16 = GNode.create("SimpleDeclarator", "mid");
Node v$17 = GNode.create("PrimaryIdentifier", "env");
Node v$18 = GNode.create("IndirectionExpression", v$17);
Node v$19 = GNode.create("IndirectComponentSelection", v$18,
"GetMethodID");
Node v$20 = GNode.create("PrimaryIdentifier", "env");
Node v$21 = GNode.create("PrimaryIdentifier", "cls");
Node v$22 = GNode.create("ExpressionList", v$20, v$21, name, signature);
Node v$23 = GNode.create("FunctionCall", v$19, v$22);
Node v$24 = GNode.create("InitializedDeclarator", null, v$16, null, null,
v$23);
Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
Node v$26 = GNode.create("Declaration", null, v$15, v$25);
Node v$27 = GNode.create("PrimaryIdentifier", "tmp");
Node v$28 = GNode.create("PrimaryIdentifier", "env");
Node v$29 = GNode.create("IndirectionExpression", v$28);
Node v$30 = GNode.create("IndirectComponentSelection", v$29, apiFunction);
Node v$31 = GNode.create("PrimaryIdentifier", "env");
Node v$32 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$33 = GNode.create("PrimaryIdentifier", "cls");
Node v$34 = GNode.create("PrimaryIdentifier", "mid");
Node v$35 = GNode.create("TypedefName", "jlong");
Node v$36 = GNode.create("SpecifierQualifierList", v$35);
Node v$37 = GNode.create("TypeName", v$36, null);
Node v$38 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$39 = GNode.create("CastExpression", v$37, v$38);
Node v$40 = GNode.create("ExpressionList", v$31, v$32, v$33, v$34, v$39);
Node v$41 = GNode.create("FunctionCall", v$30, v$40);
Node v$42 = GNode.create("AssignmentExpression", v$27, "=", v$41);
Node v$43 = GNode.create("ExpressionStatement", v$42);
Node v$44 = GNode.create("PrimaryIdentifier", "env");
Node v$45 = GNode.create("IndirectionExpression", v$44);
Node v$46 = GNode.create("IndirectComponentSelection", v$45,
"DeleteLocalRef");
Node v$47 = GNode.create("PrimaryIdentifier", "env");
Node v$48 = GNode.create("PrimaryIdentifier", "cls");
Node v$49 = GNode.create("ExpressionList", v$47, v$48);
Node v$50 = GNode.create("FunctionCall", v$46, v$49);
Node v$51 = GNode.create("ExpressionStatement", v$50);
Node v$52 = GNode.create("PrimaryIdentifier", "tmp");
Node v$53 = GNode.create("ExpressionStatement", v$52);
Node v$54 = GNode.create("CompoundStatement", v$13, v$26, tmpDeclaration,
v$43, v$51, abruptFlowCheck, v$53, null);
Node v$55 = GNode.create("StatementAsExpression", v$54);
return v$55;
}
/**
* Create a compound statement.
*
* @param name The name.
* @param signature The signature.
* @param apiFunction The apiFunction.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node javaInCStatement32(Node name, Node signature,
String apiFunction, Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jclass");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cls");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("IndirectionExpression", v$4);
Node v$6 = GNode.create("IndirectComponentSelection", v$5,
"GetObjectClass");
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$9 = GNode.create("ExpressionList", v$7, v$8);
Node v$10 = GNode.create("FunctionCall", v$6, v$9);
Node v$11 = GNode.create("InitializedDeclarator", null, v$3, null, null,
v$10);
Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
Node v$13 = GNode.create("Declaration", null, v$2, v$12);
Node v$14 = GNode.create("TypedefName", "jmethodID");
Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
Node v$16 = GNode.create("SimpleDeclarator", "mid");
Node v$17 = GNode.create("PrimaryIdentifier", "env");
Node v$18 = GNode.create("IndirectionExpression", v$17);
Node v$19 = GNode.create("IndirectComponentSelection", v$18,
"GetMethodID");
Node v$20 = GNode.create("PrimaryIdentifier", "env");
Node v$21 = GNode.create("PrimaryIdentifier", "cls");
Node v$22 = GNode.create("ExpressionList", v$20, v$21, name, signature);
Node v$23 = GNode.create("FunctionCall", v$19, v$22);
Node v$24 = GNode.create("InitializedDeclarator", null, v$16, null, null,
v$23);
Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
Node v$26 = GNode.create("Declaration", null, v$15, v$25);
Node v$27 = GNode.create("PrimaryIdentifier", "env");
Node v$28 = GNode.create("IndirectionExpression", v$27);
Node v$29 = GNode.create("IndirectComponentSelection", v$28, apiFunction);
Node v$30 = GNode.create("PrimaryIdentifier", "env");
Node v$31 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$32 = GNode.create("PrimaryIdentifier", "cls");
Node v$33 = GNode.create("PrimaryIdentifier", "mid");
Node v$34 = GNode.create("TypedefName", "jint");
Node v$35 = GNode.create("SpecifierQualifierList", v$34);
Node v$36 = GNode.create("TypeName", v$35, null);
Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$38 = GNode.create("CastExpression", v$36, v$37);
Node v$39 = GNode.create("ExpressionList", v$30, v$31, v$32, v$33, v$38);
Node v$40 = GNode.create("FunctionCall", v$29, v$39);
Node v$41 = GNode.create("ExpressionStatement", v$40);
Node v$42 = GNode.create("PrimaryIdentifier", "env");
Node v$43 = GNode.create("IndirectionExpression", v$42);
Node v$44 = GNode.create("IndirectComponentSelection", v$43,
"DeleteLocalRef");
Node v$45 = GNode.create("PrimaryIdentifier", "env");
Node v$46 = GNode.create("PrimaryIdentifier", "cls");
Node v$47 = GNode.create("ExpressionList", v$45, v$46);
Node v$48 = GNode.create("FunctionCall", v$44, v$47);
Node v$49 = GNode.create("ExpressionStatement", v$48);
Node v$50 = GNode.create("CompoundStatement", v$13, v$26, v$41, v$49,
abruptFlowCheck, null);
return v$50;
}
/**
* Create a compound statement.
*
* @param name The name.
* @param signature The signature.
* @param apiFunction The apiFunction.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node javaInCStatement64(Node name, Node signature,
String apiFunction, Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jclass");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cls");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("IndirectionExpression", v$4);
Node v$6 = GNode.create("IndirectComponentSelection", v$5,
"GetObjectClass");
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$9 = GNode.create("ExpressionList", v$7, v$8);
Node v$10 = GNode.create("FunctionCall", v$6, v$9);
Node v$11 = GNode.create("InitializedDeclarator", null, v$3, null, null,
v$10);
Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
Node v$13 = GNode.create("Declaration", null, v$2, v$12);
Node v$14 = GNode.create("TypedefName", "jmethodID");
Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
Node v$16 = GNode.create("SimpleDeclarator", "mid");
Node v$17 = GNode.create("PrimaryIdentifier", "env");
Node v$18 = GNode.create("IndirectionExpression", v$17);
Node v$19 = GNode.create("IndirectComponentSelection", v$18,
"GetMethodID");
Node v$20 = GNode.create("PrimaryIdentifier", "env");
Node v$21 = GNode.create("PrimaryIdentifier", "cls");
Node v$22 = GNode.create("ExpressionList", v$20, v$21, name, signature);
Node v$23 = GNode.create("FunctionCall", v$19, v$22);
Node v$24 = GNode.create("InitializedDeclarator", null, v$16, null, null,
v$23);
Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
Node v$26 = GNode.create("Declaration", null, v$15, v$25);
Node v$27 = GNode.create("PrimaryIdentifier", "env");
Node v$28 = GNode.create("IndirectionExpression", v$27);
Node v$29 = GNode.create("IndirectComponentSelection", v$28, apiFunction);
Node v$30 = GNode.create("PrimaryIdentifier", "env");
Node v$31 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$32 = GNode.create("PrimaryIdentifier", "cls");
Node v$33 = GNode.create("PrimaryIdentifier", "mid");
Node v$34 = GNode.create("TypedefName", "jlong");
Node v$35 = GNode.create("SpecifierQualifierList", v$34);
Node v$36 = GNode.create("TypeName", v$35, null);
Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$38 = GNode.create("CastExpression", v$36, v$37);
Node v$39 = GNode.create("ExpressionList", v$30, v$31, v$32, v$33, v$38);
Node v$40 = GNode.create("FunctionCall", v$29, v$39);
Node v$41 = GNode.create("ExpressionStatement", v$40);
Node v$42 = GNode.create("PrimaryIdentifier", "env");
Node v$43 = GNode.create("IndirectionExpression", v$42);
Node v$44 = GNode.create("IndirectComponentSelection", v$43,
"DeleteLocalRef");
Node v$45 = GNode.create("PrimaryIdentifier", "env");
Node v$46 = GNode.create("PrimaryIdentifier", "cls");
Node v$47 = GNode.create("ExpressionList", v$45, v$46);
Node v$48 = GNode.create("FunctionCall", v$44, v$47);
Node v$49 = GNode.create("ExpressionStatement", v$48);
Node v$50 = GNode.create("CompoundStatement", v$13, v$26, v$41, v$49,
abruptFlowCheck, null);
return v$50;
}
/**
* Create a statement as expression.
*
* @param apiFunction The apiFunction.
* @param cString The cString.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node newJavaString(String apiFunction, Node cString,
Node abruptFlowCheck) {
Node v$1 = GNode.create("TypedefName", "jstring");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "tmp");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("IndirectionExpression", v$4);
Node v$6 = GNode.create("IndirectComponentSelection", v$5, apiFunction);
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("ExpressionList", v$7, cString);
Node v$9 = GNode.create("FunctionCall", v$6, v$8);
Node v$10 = GNode.create("InitializedDeclarator", null, v$3, null, null,
v$9);
Node v$11 = GNode.create("InitializedDeclaratorList", v$10);
Node v$12 = GNode.create("Declaration", null, v$2, v$11);
Node v$13 = GNode.create("PrimaryIdentifier", "tmp");
Node v$14 = GNode.create("ExpressionStatement", v$13);
Node v$15 = GNode.create("CompoundStatement", v$12, abruptFlowCheck,
v$14, null);
Node v$16 = GNode.create("StatementAsExpression", v$15);
return v$16;
}
/**
* Create an expression statement.
*
* @param name The name.
* @param value The value.
* @return The generic node.
*/
public Node setPCEnvField(String name, Node value) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, name);
Node v$3 = GNode.create("AssignmentExpression", v$2, "=", value);
Node v$4 = GNode.create("ExpressionStatement", v$3);
return v$4;
}
/**
* Create a function call.
*
* @param javaString The javaString.
* @return The generic node.
*/
public Node stringUTFLength1(Node javaString) {
Node v$1 = GNode.create("PrimaryIdentifier", "env");
Node v$2 = GNode.create("IndirectionExpression", v$1);
Node v$3 = GNode.create("IndirectComponentSelection", v$2,
"GetStringUTFLength");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("ExpressionList", v$4, javaString);
Node v$6 = GNode.create("FunctionCall", v$3, v$5);
return v$6;
}
/**
* Create a function call.
*
* @param javaString The javaString.
* @param start The start.
* @param length The length.
* @return The generic node.
*/
public Node stringUTFLength3(Node javaString, Node start, Node length) {
Node v$1 = GNode.create("PrimaryIdentifier", "_stringUTFLength");
Node v$2 = GNode.create("PrimaryIdentifier", "env");
Node v$3 = GNode.create("ExpressionList", v$2, javaString, start, length);
Node v$4 = GNode.create("FunctionCall", v$1, v$3);
return v$4;
}
/**
* Create a compound statement.
*
* @param result The result.
* @param signature The signature.
* @param apiFunction The apiFunction.
* @param value The value.
* @param abrupt The abrupt.
* @param abruptFlowJump The abruptFlowJump.
* @return The generic node.
*/
public Node returnResult(Node result, Node signature, String apiFunction,
Node value, Node abrupt, Node abruptFlowJump) {
Node v$1 = GNode.create("TypedefName", "jclass");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cls");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("IndirectionExpression", v$4);
Node v$6 = GNode.create("IndirectComponentSelection", v$5,
"GetObjectClass");
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$9 = GNode.create("ExpressionList", v$7, v$8);
Node v$10 = GNode.create("FunctionCall", v$6, v$9);
Node v$11 = GNode.create("InitializedDeclarator", null, v$3, null, null,
v$10);
Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
Node v$13 = GNode.create("Declaration", null, v$2, v$12);
Node v$14 = GNode.create("TypedefName", "jfieldID");
Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
Node v$16 = GNode.create("SimpleDeclarator", "fidResult");
Node v$17 = GNode.create("PrimaryIdentifier", "env");
Node v$18 = GNode.create("IndirectionExpression", v$17);
Node v$19 = GNode.create("IndirectComponentSelection", v$18,
"GetFieldID");
Node v$20 = GNode.create("PrimaryIdentifier", "env");
Node v$21 = GNode.create("PrimaryIdentifier", "cls");
Node v$22 = GNode.create("ExpressionList", v$20, v$21, result, signature);
Node v$23 = GNode.create("FunctionCall", v$19, v$22);
Node v$24 = GNode.create("InitializedDeclarator", null, v$16, null, null,
v$23);
Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
Node v$26 = GNode.create("Declaration", null, v$15, v$25);
Node v$27 = GNode.create("PrimaryIdentifier", "env");
Node v$28 = GNode.create("IndirectionExpression", v$27);
Node v$29 = GNode.create("IndirectComponentSelection", v$28, apiFunction);
Node v$30 = GNode.create("PrimaryIdentifier", "env");
Node v$31 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$32 = GNode.create("PrimaryIdentifier", "fidResult");
Node v$33 = GNode.create("ExpressionList", v$30, v$31, v$32, value);
Node v$34 = GNode.create("FunctionCall", v$29, v$33);
Node v$35 = GNode.create("ExpressionStatement", v$34);
Node v$36 = GNode.create("TypedefName", "jfieldID");
Node v$37 = GNode.create("DeclarationSpecifiers", v$36);
Node v$38 = GNode.create("SimpleDeclarator", "fidAbrupt");
Node v$39 = GNode.create("PrimaryIdentifier", "env");
Node v$40 = GNode.create("IndirectionExpression", v$39);
Node v$41 = GNode.create("IndirectComponentSelection", v$40,
"GetFieldID");
Node v$42 = GNode.create("PrimaryIdentifier", "env");
Node v$43 = GNode.create("PrimaryIdentifier", "cls");
Node v$44 = GNode.create("StringConstant", "\"Z\"");
Node v$45 = GNode.create("ExpressionList", v$42, v$43, abrupt, v$44);
Node v$46 = GNode.create("FunctionCall", v$41, v$45);
Node v$47 = GNode.create("InitializedDeclarator", null, v$38, null, null,
v$46);
Node v$48 = GNode.create("InitializedDeclaratorList", v$47);
Node v$49 = GNode.create("Declaration", null, v$37, v$48);
Node v$50 = GNode.create("PrimaryIdentifier", "env");
Node v$51 = GNode.create("IndirectionExpression", v$50);
Node v$52 = GNode.create("IndirectComponentSelection", v$51,
"SetBooleanField");
Node v$53 = GNode.create("PrimaryIdentifier", "env");
Node v$54 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$55 = GNode.create("PrimaryIdentifier", "fidAbrupt");
Node v$56 = GNode.create("IntegerConstant", "1");
Node v$57 = GNode.create("ExpressionList", v$53, v$54, v$55, v$56);
Node v$58 = GNode.create("FunctionCall", v$52, v$57);
Node v$59 = GNode.create("ExpressionStatement", v$58);
Node v$60 = GNode.create("CompoundStatement", v$13, v$26, v$35, v$49,
v$59, abruptFlowJump, null);
return v$60;
}
/**
* Create a compound statement.
*
* @param abrupt The abrupt.
* @param abruptFlowJump The abruptFlowJump.
* @return The generic node.
*/
public Node returnVoid(Node abrupt, Node abruptFlowJump) {
Node v$1 = GNode.create("TypedefName", "jclass");
Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
Node v$3 = GNode.create("SimpleDeclarator", "cls");
Node v$4 = GNode.create("PrimaryIdentifier", "env");
Node v$5 = GNode.create("IndirectionExpression", v$4);
Node v$6 = GNode.create("IndirectComponentSelection", v$5,
"GetObjectClass");
Node v$7 = GNode.create("PrimaryIdentifier", "env");
Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$9 = GNode.create("ExpressionList", v$7, v$8);
Node v$10 = GNode.create("FunctionCall", v$6, v$9);
Node v$11 = GNode.create("InitializedDeclarator", null, v$3, null, null,
v$10);
Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
Node v$13 = GNode.create("Declaration", null, v$2, v$12);
Node v$14 = GNode.create("TypedefName", "jfieldID");
Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
Node v$16 = GNode.create("SimpleDeclarator", "fidAbrupt");
Node v$17 = GNode.create("PrimaryIdentifier", "env");
Node v$18 = GNode.create("IndirectionExpression", v$17);
Node v$19 = GNode.create("IndirectComponentSelection", v$18,
"GetFieldID");
Node v$20 = GNode.create("PrimaryIdentifier", "env");
Node v$21 = GNode.create("PrimaryIdentifier", "cls");
Node v$22 = GNode.create("StringConstant", "\"Z\"");
Node v$23 = GNode.create("ExpressionList", v$20, v$21, abrupt, v$22);
Node v$24 = GNode.create("FunctionCall", v$19, v$23);
Node v$25 = GNode.create("InitializedDeclarator", null, v$16, null, null,
v$24);
Node v$26 = GNode.create("InitializedDeclaratorList", v$25);
Node v$27 = GNode.create("Declaration", null, v$15, v$26);
Node v$28 = GNode.create("PrimaryIdentifier", "env");
Node v$29 = GNode.create("IndirectionExpression", v$28);
Node v$30 = GNode.create("IndirectComponentSelection", v$29,
"SetBooleanField");
Node v$31 = GNode.create("PrimaryIdentifier", "env");
Node v$32 = GNode.create("PrimaryIdentifier", "jEnv");
Node v$33 = GNode.create("PrimaryIdentifier", "fidAbrupt");
Node v$34 = GNode.create("IntegerConstant", "1");
Node v$35 = GNode.create("ExpressionList", v$31, v$32, v$33, v$34);
Node v$36 = GNode.create("FunctionCall", v$30, v$35);
Node v$37 = GNode.create("ExpressionStatement", v$36);
Node v$38 = GNode.create("CompoundStatement", v$13, v$27, v$37,
abruptFlowJump, null);
return v$38;
}
/**
* Create a compound statement.
*
* @param jaField The jaField.
* @param init The init.
* @param releaseAbrupt The releaseAbrupt.
* @param caDecl The caDecl.
* @param caField The caField.
* @param getRegion The getRegion.
* @param body The body.
* @param label The label.
* @param setRegion The setRegion.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node withPrimitiveArray(String jaField, Node init,
String releaseAbrupt, Node caDecl,
String caField, String getRegion, Node body,
String label, String setRegion,
Node abruptFlowCheck) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, jaField);
Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
Node v$4 = GNode.create("ExpressionStatement", v$3);
Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$6 = GNode.create("IndirectComponentSelection", v$5, releaseAbrupt);
Node v$7 = GNode.create("IntegerConstant", "0");
Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
Node v$9 = GNode.create("ExpressionStatement", v$8);
Node v$10 = GNode.create("TypedefName", "jint");
Node v$11 = GNode.create("DeclarationSpecifiers", v$10);
Node v$12 = GNode.create("SimpleDeclarator", "length");
Node v$13 = GNode.create("PrimaryIdentifier", "env");
Node v$14 = GNode.create("IndirectionExpression", v$13);
Node v$15 = GNode.create("IndirectComponentSelection", v$14,
"GetArrayLength");
Node v$16 = GNode.create("PrimaryIdentifier", "env");
Node v$17 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$18 = GNode.create("IndirectComponentSelection", v$17, jaField);
Node v$19 = GNode.create("ExpressionList", v$16, v$18);
Node v$20 = GNode.create("FunctionCall", v$15, v$19);
Node v$21 = GNode.create("InitializedDeclarator", null, v$12, null, null,
v$20);
Node v$22 = GNode.create("InitializedDeclaratorList", v$21);
Node v$23 = GNode.create("Declaration", null, v$11, v$22);
Node v$24 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$25 = GNode.create("IndirectComponentSelection", v$24, caField);
Node v$26 = GNode.create("PrimaryIdentifier", "ca");
Node v$27 = GNode.create("AssignmentExpression", v$25, "=", v$26);
Node v$28 = GNode.create("ExpressionStatement", v$27);
Node v$29 = GNode.create("PrimaryIdentifier", "env");
Node v$30 = GNode.create("IndirectionExpression", v$29);
Node v$31 = GNode.create("IndirectComponentSelection", v$30, getRegion);
Node v$32 = GNode.create("PrimaryIdentifier", "env");
Node v$33 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$34 = GNode.create("IndirectComponentSelection", v$33, jaField);
Node v$35 = GNode.create("IntegerConstant", "0");
Node v$36 = GNode.create("PrimaryIdentifier", "length");
Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$38 = GNode.create("IndirectComponentSelection", v$37, caField);
Node v$39 = GNode.create("ExpressionList", v$32, v$34, v$35, v$36, v$38);
Node v$40 = GNode.create("FunctionCall", v$31, v$39);
Node v$41 = GNode.create("ExpressionStatement", v$40);
Node v$42 = GNode.create("PrimaryIdentifier", label);
Node v$43 = GNode.create("GotoStatement", null, v$42);
Node v$44 = GNode.create("NamedLabel", label, null);
Node v$45 = GNode.create("IntegerConstant", "2");
Node v$46 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$47 = GNode.create("IndirectComponentSelection", v$46,
releaseAbrupt);
Node v$48 = GNode.create("EqualityExpression", v$45, "!=", v$47);
Node v$49 = GNode.create("PrimaryIdentifier", "env");
Node v$50 = GNode.create("IndirectionExpression", v$49);
Node v$51 = GNode.create("IndirectComponentSelection", v$50, setRegion);
Node v$52 = GNode.create("PrimaryIdentifier", "env");
Node v$53 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$54 = GNode.create("IndirectComponentSelection", v$53, jaField);
Node v$55 = GNode.create("IntegerConstant", "0");
Node v$56 = GNode.create("PrimaryIdentifier", "length");
Node v$57 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$58 = GNode.create("IndirectComponentSelection", v$57, caField);
Node v$59 = GNode.create("ExpressionList", v$52, v$54, v$55, v$56, v$58);
Node v$60 = GNode.create("FunctionCall", v$51, v$59);
Node v$61 = GNode.create("ExpressionStatement", v$60);
Node v$62 = GNode.create("IfStatement", v$48, v$61);
Node v$63 = GNode.create("LabeledStatement", v$44, v$62);
Node v$64 = GNode.create("CompoundStatement", v$23, caDecl, v$28, v$41,
body, v$43, v$63, null);
Node v$65 = GNode.create("CompoundStatement", v$4, v$9, v$64,
abruptFlowCheck, null);
return v$65;
}
/**
* Create a compound statement.
*
* @param jaField The jaField.
* @param init The init.
* @param releaseAbrupt The releaseAbrupt.
* @param caField The caField.
* @param body The body.
* @param label The label.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node withReferenceArray(String jaField, Node init,
String releaseAbrupt, String caField,
Node body, String label, Node abruptFlowCheck) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, jaField);
Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
Node v$4 = GNode.create("ExpressionStatement", v$3);
Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$6 = GNode.create("IndirectComponentSelection", v$5, releaseAbrupt);
Node v$7 = GNode.create("IntegerConstant", "0");
Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
Node v$9 = GNode.create("ExpressionStatement", v$8);
Node v$10 = GNode.create("TypedefName", "jsize");
Node v$11 = GNode.create("DeclarationSpecifiers", v$10);
Node v$12 = GNode.create("SimpleDeclarator", "i");
Node v$13 = GNode.create("InitializedDeclarator", null, v$12, null, null,
null);
Node v$14 = GNode.create("InitializedDeclaratorList", v$13);
Node v$15 = GNode.create("Declaration", null, v$11, v$14);
Node v$16 = GNode.create("TypedefName", "jint");
Node v$17 = GNode.create("DeclarationSpecifiers", v$16);
Node v$18 = GNode.create("SimpleDeclarator", "length");
Node v$19 = GNode.create("PrimaryIdentifier", "env");
Node v$20 = GNode.create("IndirectionExpression", v$19);
Node v$21 = GNode.create("IndirectComponentSelection", v$20,
"GetArrayLength");
Node v$22 = GNode.create("PrimaryIdentifier", "env");
Node v$23 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$24 = GNode.create("IndirectComponentSelection", v$23, jaField);
Node v$25 = GNode.create("ExpressionList", v$22, v$24);
Node v$26 = GNode.create("FunctionCall", v$21, v$25);
Node v$27 = GNode.create("InitializedDeclarator", null, v$18, null, null,
v$26);
Node v$28 = GNode.create("InitializedDeclaratorList", v$27);
Node v$29 = GNode.create("Declaration", null, v$17, v$28);
Node v$30 = GNode.create("TypedefName", "jobject");
Node v$31 = GNode.create("DeclarationSpecifiers", v$30);
Node v$32 = GNode.create("SimpleDeclarator", "ca");
Node v$33 = GNode.create("ArrayQualifierList", false);
Node v$34 = GNode.create("PrimaryIdentifier", "length");
Node v$35 = GNode.create("ArrayDeclarator", v$32, v$33, v$34);
Node v$36 = GNode.create("InitializedDeclarator", null, v$35, null, null,
null);
Node v$37 = GNode.create("InitializedDeclaratorList", v$36);
Node v$38 = GNode.create("Declaration", null, v$31, v$37);
Node v$39 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$40 = GNode.create("IndirectComponentSelection", v$39, caField);
Node v$41 = GNode.create("PrimaryIdentifier", "ca");
Node v$42 = GNode.create("AssignmentExpression", v$40, "=", v$41);
Node v$43 = GNode.create("ExpressionStatement", v$42);
Node v$44 = GNode.create("PrimaryIdentifier", "i");
Node v$45 = GNode.create("IntegerConstant", "0");
Node v$46 = GNode.create("AssignmentExpression", v$44, "=", v$45);
Node v$47 = GNode.create("PrimaryIdentifier", "i");
Node v$48 = GNode.create("PrimaryIdentifier", "length");
Node v$49 = GNode.create("RelationalExpression", v$47, "<", v$48);
Node v$50 = GNode.create("PrimaryIdentifier", "i");
Node v$51 = GNode.create("PostincrementExpression", v$50);
Node v$52 = GNode.create("PrimaryIdentifier", "ca");
Node v$53 = GNode.create("PrimaryIdentifier", "i");
Node v$54 = GNode.create("SubscriptExpression", v$52, v$53);
Node v$55 = GNode.create("PrimaryIdentifier", "env");
Node v$56 = GNode.create("IndirectionExpression", v$55);
Node v$57 = GNode.create("IndirectComponentSelection", v$56,
"GetObjectArrayElement");
Node v$58 = GNode.create("PrimaryIdentifier", "env");
Node v$59 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$60 = GNode.create("IndirectComponentSelection", v$59, jaField);
Node v$61 = GNode.create("PrimaryIdentifier", "i");
Node v$62 = GNode.create("ExpressionList", v$58, v$60, v$61);
Node v$63 = GNode.create("FunctionCall", v$57, v$62);
Node v$64 = GNode.create("AssignmentExpression", v$54, "=", v$63);
Node v$65 = GNode.create("ExpressionStatement", v$64);
Node v$66 = GNode.create("ForStatement", v$46, v$49, v$51, v$65);
Node v$67 = GNode.create("PrimaryIdentifier", label);
Node v$68 = GNode.create("GotoStatement", null, v$67);
Node v$69 = GNode.create("NamedLabel", label, null);
Node v$70 = GNode.create("IntegerConstant", "2");
Node v$71 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$72 = GNode.create("IndirectComponentSelection", v$71,
releaseAbrupt);
Node v$73 = GNode.create("EqualityExpression", v$70, "!=", v$72);
Node v$74 = GNode.create("PrimaryIdentifier", "i");
Node v$75 = GNode.create("IntegerConstant", "0");
Node v$76 = GNode.create("AssignmentExpression", v$74, "=", v$75);
Node v$77 = GNode.create("PrimaryIdentifier", "i");
Node v$78 = GNode.create("PrimaryIdentifier", "length");
Node v$79 = GNode.create("RelationalExpression", v$77, "<", v$78);
Node v$80 = GNode.create("PrimaryIdentifier", "i");
Node v$81 = GNode.create("PostincrementExpression", v$80);
Node v$82 = GNode.create("PrimaryIdentifier", "env");
Node v$83 = GNode.create("IndirectionExpression", v$82);
Node v$84 = GNode.create("IndirectComponentSelection", v$83,
"SetObjectArrayElement");
Node v$85 = GNode.create("PrimaryIdentifier", "env");
Node v$86 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$87 = GNode.create("IndirectComponentSelection", v$86, jaField);
Node v$88 = GNode.create("PrimaryIdentifier", "i");
Node v$89 = GNode.create("PrimaryIdentifier", "ca");
Node v$90 = GNode.create("PrimaryIdentifier", "i");
Node v$91 = GNode.create("SubscriptExpression", v$89, v$90);
Node v$92 = GNode.create("ExpressionList", v$85, v$87, v$88, v$91);
Node v$93 = GNode.create("FunctionCall", v$84, v$92);
Node v$94 = GNode.create("ExpressionStatement", v$93);
Node v$95 = GNode.create("PrimaryIdentifier", "env");
Node v$96 = GNode.create("IndirectionExpression", v$95);
Node v$97 = GNode.create("IndirectComponentSelection", v$96,
"ExceptionCheck");
Node v$98 = GNode.create("PrimaryIdentifier", "env");
Node v$99 = GNode.create("ExpressionList", v$98);
Node v$100 = GNode.create("FunctionCall", v$97, v$99);
Node v$101 = GNode.create("BreakStatement", false);
Node v$102 = GNode.create("IfStatement", v$100, v$101);
Node v$103 = GNode.create("CompoundStatement", v$94, v$102, null);
Node v$104 = GNode.create("ForStatement", v$76, v$79, v$81, v$103);
Node v$105 = GNode.create("IfStatement", v$73, v$104);
Node v$106 = GNode.create("LabeledStatement", v$69, v$105);
Node v$107 = GNode.create("CompoundStatement", 9).
add(v$15).add(v$29).add(v$38).add(v$43).add(v$66).add(body).add(v$68).
add(v$106).add(null);
Node v$108 = GNode.create("CompoundStatement", v$4, v$9, v$107,
abruptFlowCheck, null);
return v$108;
}
/**
* Create a compound statement.
*
* @param jsField The jsField.
* @param init The init.
* @param releaseAbrupt The releaseAbrupt.
* @param csField The csField.
* @param body The body.
* @param label The label.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node withString(String jsField, Node init, String releaseAbrupt,
String csField, Node body, String label,
Node abruptFlowCheck) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, jsField);
Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
Node v$4 = GNode.create("ExpressionStatement", v$3);
Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$6 = GNode.create("IndirectComponentSelection", v$5, releaseAbrupt);
Node v$7 = GNode.create("IntegerConstant", "0");
Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
Node v$9 = GNode.create("ExpressionStatement", v$8);
Node v$10 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$11 = GNode.create("IndirectComponentSelection", v$10, csField);
Node v$12 = GNode.create("TypedefName", "jchar");
Node v$13 = GNode.create("SpecifierQualifierList", v$12);
Node v$14 = GNode.create("TypeQualifierList", false);
Node v$15 = GNode.create("Pointer", v$14, null);
Node v$16 = GNode.create("AbstractDeclarator", v$15, null);
Node v$17 = GNode.create("TypeName", v$13, v$16);
Node v$18 = GNode.create("PrimaryIdentifier", "env");
Node v$19 = GNode.create("IndirectionExpression", v$18);
Node v$20 = GNode.create("IndirectComponentSelection", v$19,
"GetStringChars");
Node v$21 = GNode.create("PrimaryIdentifier", "env");
Node v$22 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$23 = GNode.create("IndirectComponentSelection", v$22, jsField);
Node v$24 = GNode.create("IntegerConstant", "0");
Node v$25 = GNode.create("ExpressionList", v$21, v$23, v$24);
Node v$26 = GNode.create("FunctionCall", v$20, v$25);
Node v$27 = GNode.create("CastExpression", v$17, v$26);
Node v$28 = GNode.create("AssignmentExpression", v$11, "=", v$27);
Node v$29 = GNode.create("ExpressionStatement", v$28);
Node v$30 = GNode.create("PrimaryIdentifier", label);
Node v$31 = GNode.create("GotoStatement", null, v$30);
Node v$32 = GNode.create("NamedLabel", label, null);
Node v$33 = GNode.create("PrimaryIdentifier", "env");
Node v$34 = GNode.create("IndirectionExpression", v$33);
Node v$35 = GNode.create("IndirectComponentSelection", v$34,
"ReleaseStringChars");
Node v$36 = GNode.create("PrimaryIdentifier", "env");
Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$38 = GNode.create("IndirectComponentSelection", v$37, jsField);
Node v$39 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$40 = GNode.create("IndirectComponentSelection", v$39, csField);
Node v$41 = GNode.create("ExpressionList", v$36, v$38, v$40);
Node v$42 = GNode.create("FunctionCall", v$35, v$41);
Node v$43 = GNode.create("ExpressionStatement", v$42);
Node v$44 = GNode.create("LabeledStatement", v$32, v$43);
Node v$45 = GNode.create("CompoundStatement", v$4, v$9, v$29, body, v$31,
v$44, abruptFlowCheck, null);
return v$45;
}
/**
* Create a compound statement.
*
* @param jsField The jsField.
* @param init The init.
* @param releaseAbrupt The releaseAbrupt.
* @param csField The csField.
* @param body The body.
* @param label The label.
* @param abruptFlowCheck The abruptFlowCheck.
* @return The generic node.
*/
public Node withStringUTF(String jsField, Node init, String releaseAbrupt,
String csField, Node body, String label,
Node abruptFlowCheck) {
Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$2 = GNode.create("IndirectComponentSelection", v$1, jsField);
Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
Node v$4 = GNode.create("ExpressionStatement", v$3);
Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$6 = GNode.create("IndirectComponentSelection", v$5, releaseAbrupt);
Node v$7 = GNode.create("IntegerConstant", "0");
Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
Node v$9 = GNode.create("ExpressionStatement", v$8);
Node v$10 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$11 = GNode.create("IndirectComponentSelection", v$10, csField);
Node v$12 = GNode.create("TypedefName", "jbyte");
Node v$13 = GNode.create("SpecifierQualifierList", v$12);
Node v$14 = GNode.create("TypeQualifierList", false);
Node v$15 = GNode.create("Pointer", v$14, null);
Node v$16 = GNode.create("AbstractDeclarator", v$15, null);
Node v$17 = GNode.create("TypeName", v$13, v$16);
Node v$18 = GNode.create("PrimaryIdentifier", "env");
Node v$19 = GNode.create("IndirectionExpression", v$18);
Node v$20 = GNode.create("IndirectComponentSelection", v$19,
"GetStringUTFChars");
Node v$21 = GNode.create("PrimaryIdentifier", "env");
Node v$22 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$23 = GNode.create("IndirectComponentSelection", v$22, jsField);
Node v$24 = GNode.create("IntegerConstant", "0");
Node v$25 = GNode.create("ExpressionList", v$21, v$23, v$24);
Node v$26 = GNode.create("FunctionCall", v$20, v$25);
Node v$27 = GNode.create("CastExpression", v$17, v$26);
Node v$28 = GNode.create("AssignmentExpression", v$11, "=", v$27);
Node v$29 = GNode.create("ExpressionStatement", v$28);
Node v$30 = GNode.create("NamedLabel", label, null);
Node v$31 = GNode.create("PrimaryIdentifier", "env");
Node v$32 = GNode.create("IndirectionExpression", v$31);
Node v$33 = GNode.create("IndirectComponentSelection", v$32,
"ReleaseStringUTFChars");
Node v$34 = GNode.create("PrimaryIdentifier", "env");
Node v$35 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$36 = GNode.create("IndirectComponentSelection", v$35, jsField);
Node v$37 = GNode.create("Char", false);
Node v$38 = GNode.create("SpecifierQualifierList", v$37);
Node v$39 = GNode.create("TypeQualifierList", false);
Node v$40 = GNode.create("Pointer", v$39, null);
Node v$41 = GNode.create("AbstractDeclarator", v$40, null);
Node v$42 = GNode.create("TypeName", v$38, v$41);
Node v$43 = GNode.create("PrimaryIdentifier", "pcEnv");
Node v$44 = GNode.create("IndirectComponentSelection", v$43, csField);
Node v$45 = GNode.create("CastExpression", v$42, v$44);
Node v$46 = GNode.create("ExpressionList", v$34, v$36, v$45);
Node v$47 = GNode.create("FunctionCall", v$33, v$46);
Node v$48 = GNode.create("ExpressionStatement", v$47);
Node v$49 = GNode.create("LabeledStatement", v$30, v$48);
Node v$50 = GNode.create("CompoundStatement", v$4, v$9, v$29, body, v$49,
abruptFlowCheck, null);
return v$50;
}
}