// =========================================================================== // 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; } }