Source Code Cross Referenced for JeannieCFactory.java in  » Parser » Rats-Parser-Generators » xtc » lang » jeannie » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Parser » Rats Parser Generators » xtc.lang.jeannie 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


0001:        // ===========================================================================
0002:        // This file has been generated by
0003:        // xtc Factory Factory, version 1.13.1,
0004:        // (C) 2004-2007 Robert Grimm,
0005:        // on Tuesday, September 25, 2007 at 8:00:25 PM.
0006:        // Edit at your own risk.
0007:        // ===========================================================================
0008:
0009:        package xtc.lang.jeannie;
0010:
0011:        import java.util.List;
0012:
0013:        import xtc.tree.Node;
0014:        import xtc.tree.GNode;
0015:
0016:        /**
0017:         * Node factory <code>xtc.lang.jeannie.JeannieCFactory</code>.
0018:         *
0019:         * <p />This class has been generated by
0020:         * the xtc Factory Factory, version 1.13.1,
0021:         * (C) 2004-2007 Robert Grimm.
0022:         */
0023:        public class JeannieCFactory {
0024:
0025:            /** Create a new node factory. */
0026:            public JeannieCFactory() {
0027:                // Nothing to do.
0028:            }
0029:
0030:            /**
0031:             * Create an if statement.
0032:             *
0033:             * @param fieldName The fieldName.
0034:             * @param abruptFlowJump The abruptFlowJump.
0035:             * @return The generic node.
0036:             */
0037:            public Node abruptFlowCheck(Node fieldName, Node abruptFlowJump) {
0038:                Node v$1 = GNode.create("PrimaryIdentifier", "env");
0039:                Node v$2 = GNode.create("IndirectionExpression", v$1);
0040:                Node v$3 = GNode.create("IndirectComponentSelection", v$2,
0041:                        "ExceptionCheck");
0042:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
0043:                Node v$5 = GNode.create("ExpressionList", v$4);
0044:                Node v$6 = GNode.create("FunctionCall", v$3, v$5);
0045:                Node v$7 = GNode.create("TypedefName", "jclass");
0046:                Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
0047:                Node v$9 = GNode.create("SimpleDeclarator", "cls");
0048:                Node v$10 = GNode.create("PrimaryIdentifier", "env");
0049:                Node v$11 = GNode.create("IndirectionExpression", v$10);
0050:                Node v$12 = GNode.create("IndirectComponentSelection", v$11,
0051:                        "GetObjectClass");
0052:                Node v$13 = GNode.create("PrimaryIdentifier", "env");
0053:                Node v$14 = GNode.create("PrimaryIdentifier", "jEnv");
0054:                Node v$15 = GNode.create("ExpressionList", v$13, v$14);
0055:                Node v$16 = GNode.create("FunctionCall", v$12, v$15);
0056:                Node v$17 = GNode.create("InitializedDeclarator", null, v$9,
0057:                        null, null, v$16);
0058:                Node v$18 = GNode.create("InitializedDeclaratorList", v$17);
0059:                Node v$19 = GNode.create("Declaration", null, v$8, v$18);
0060:                Node v$20 = GNode.create("TypedefName", "jfieldID");
0061:                Node v$21 = GNode.create("DeclarationSpecifiers", v$20);
0062:                Node v$22 = GNode.create("SimpleDeclarator", "fid");
0063:                Node v$23 = GNode.create("PrimaryIdentifier", "env");
0064:                Node v$24 = GNode.create("IndirectionExpression", v$23);
0065:                Node v$25 = GNode.create("IndirectComponentSelection", v$24,
0066:                        "GetFieldID");
0067:                Node v$26 = GNode.create("PrimaryIdentifier", "env");
0068:                Node v$27 = GNode.create("PrimaryIdentifier", "cls");
0069:                Node v$28 = GNode.create("StringConstant", "\"Z\"");
0070:                Node v$29 = GNode.create("ExpressionList", v$26, v$27,
0071:                        fieldName, v$28);
0072:                Node v$30 = GNode.create("FunctionCall", v$25, v$29);
0073:                Node v$31 = GNode.create("InitializedDeclarator", null, v$22,
0074:                        null, null, v$30);
0075:                Node v$32 = GNode.create("InitializedDeclaratorList", v$31);
0076:                Node v$33 = GNode.create("Declaration", null, v$21, v$32);
0077:                Node v$34 = GNode.create("TypedefName", "jboolean");
0078:                Node v$35 = GNode.create("DeclarationSpecifiers", v$34);
0079:                Node v$36 = GNode.create("SimpleDeclarator", "tmp");
0080:                Node v$37 = GNode.create("PrimaryIdentifier", "env");
0081:                Node v$38 = GNode.create("IndirectionExpression", v$37);
0082:                Node v$39 = GNode.create("IndirectComponentSelection", v$38,
0083:                        "GetBooleanField");
0084:                Node v$40 = GNode.create("PrimaryIdentifier", "env");
0085:                Node v$41 = GNode.create("PrimaryIdentifier", "jEnv");
0086:                Node v$42 = GNode.create("PrimaryIdentifier", "fid");
0087:                Node v$43 = GNode.create("ExpressionList", v$40, v$41, v$42);
0088:                Node v$44 = GNode.create("FunctionCall", v$39, v$43);
0089:                Node v$45 = GNode.create("InitializedDeclarator", null, v$36,
0090:                        null, null, v$44);
0091:                Node v$46 = GNode.create("InitializedDeclaratorList", v$45);
0092:                Node v$47 = GNode.create("Declaration", null, v$35, v$46);
0093:                Node v$48 = GNode.create("PrimaryIdentifier", "env");
0094:                Node v$49 = GNode.create("IndirectionExpression", v$48);
0095:                Node v$50 = GNode.create("IndirectComponentSelection", v$49,
0096:                        "DeleteLocalRef");
0097:                Node v$51 = GNode.create("PrimaryIdentifier", "env");
0098:                Node v$52 = GNode.create("PrimaryIdentifier", "cls");
0099:                Node v$53 = GNode.create("ExpressionList", v$51, v$52);
0100:                Node v$54 = GNode.create("FunctionCall", v$50, v$53);
0101:                Node v$55 = GNode.create("ExpressionStatement", v$54);
0102:                Node v$56 = GNode.create("PrimaryIdentifier", "tmp");
0103:                Node v$57 = GNode.create("ExpressionStatement", v$56);
0104:                Node v$58 = GNode.create("CompoundStatement", v$19, v$33, v$47,
0105:                        v$55, v$57, null);
0106:                Node v$59 = GNode.create("StatementAsExpression", v$58);
0107:                Node v$60 = GNode.create("LogicalOrExpression", v$6, v$59);
0108:                Node v$61 = GNode.create("CompoundStatement", abruptFlowJump,
0109:                        null);
0110:                Node v$62 = GNode.create("IfStatement", v$60, v$61);
0111:                return v$62;
0112:            }
0113:
0114:            /**
0115:             * Create a compound statement.
0116:             *
0117:             * @param releaseAbrupt The releaseAbrupt.
0118:             * @param fieldName The fieldName.
0119:             * @param abruptFlowJump The abruptFlowJump.
0120:             * @return The generic node.
0121:             */
0122:            public Node abruptFlowCheckOpenArray(String releaseAbrupt,
0123:                    Node fieldName, Node abruptFlowJump) {
0124:                Node v$1 = GNode.create("PrimaryIdentifier", "env");
0125:                Node v$2 = GNode.create("IndirectionExpression", v$1);
0126:                Node v$3 = GNode.create("IndirectComponentSelection", v$2,
0127:                        "ExceptionCheck");
0128:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
0129:                Node v$5 = GNode.create("ExpressionList", v$4);
0130:                Node v$6 = GNode.create("FunctionCall", v$3, v$5);
0131:                Node v$7 = GNode.create("PrimaryIdentifier", "pcEnv");
0132:                Node v$8 = GNode.create("IndirectComponentSelection", v$7,
0133:                        releaseAbrupt);
0134:                Node v$9 = GNode.create("IntegerConstant", "2");
0135:                Node v$10 = GNode.create("AssignmentExpression", v$8, "=", v$9);
0136:                Node v$11 = GNode.create("ExpressionStatement", v$10);
0137:                Node v$12 = GNode.create("IfStatement", v$6, v$11);
0138:                Node v$13 = GNode.create("PrimaryIdentifier", "pcEnv");
0139:                Node v$14 = GNode.create("IndirectComponentSelection", v$13,
0140:                        releaseAbrupt);
0141:                Node v$15 = GNode.create("TypedefName", "jclass");
0142:                Node v$16 = GNode.create("DeclarationSpecifiers", v$15);
0143:                Node v$17 = GNode.create("SimpleDeclarator", "cls");
0144:                Node v$18 = GNode.create("PrimaryIdentifier", "env");
0145:                Node v$19 = GNode.create("IndirectionExpression", v$18);
0146:                Node v$20 = GNode.create("IndirectComponentSelection", v$19,
0147:                        "GetObjectClass");
0148:                Node v$21 = GNode.create("PrimaryIdentifier", "env");
0149:                Node v$22 = GNode.create("PrimaryIdentifier", "jEnv");
0150:                Node v$23 = GNode.create("ExpressionList", v$21, v$22);
0151:                Node v$24 = GNode.create("FunctionCall", v$20, v$23);
0152:                Node v$25 = GNode.create("InitializedDeclarator", null, v$17,
0153:                        null, null, v$24);
0154:                Node v$26 = GNode.create("InitializedDeclaratorList", v$25);
0155:                Node v$27 = GNode.create("Declaration", null, v$16, v$26);
0156:                Node v$28 = GNode.create("TypedefName", "jfieldID");
0157:                Node v$29 = GNode.create("DeclarationSpecifiers", v$28);
0158:                Node v$30 = GNode.create("SimpleDeclarator", "fid");
0159:                Node v$31 = GNode.create("PrimaryIdentifier", "env");
0160:                Node v$32 = GNode.create("IndirectionExpression", v$31);
0161:                Node v$33 = GNode.create("IndirectComponentSelection", v$32,
0162:                        "GetFieldID");
0163:                Node v$34 = GNode.create("PrimaryIdentifier", "env");
0164:                Node v$35 = GNode.create("PrimaryIdentifier", "cls");
0165:                Node v$36 = GNode.create("StringConstant", "\"Z\"");
0166:                Node v$37 = GNode.create("ExpressionList", v$34, v$35,
0167:                        fieldName, v$36);
0168:                Node v$38 = GNode.create("FunctionCall", v$33, v$37);
0169:                Node v$39 = GNode.create("InitializedDeclarator", null, v$30,
0170:                        null, null, v$38);
0171:                Node v$40 = GNode.create("InitializedDeclaratorList", v$39);
0172:                Node v$41 = GNode.create("Declaration", null, v$29, v$40);
0173:                Node v$42 = GNode.create("TypedefName", "jboolean");
0174:                Node v$43 = GNode.create("DeclarationSpecifiers", v$42);
0175:                Node v$44 = GNode.create("SimpleDeclarator", "tmp");
0176:                Node v$45 = GNode.create("PrimaryIdentifier", "env");
0177:                Node v$46 = GNode.create("IndirectionExpression", v$45);
0178:                Node v$47 = GNode.create("IndirectComponentSelection", v$46,
0179:                        "GetBooleanField");
0180:                Node v$48 = GNode.create("PrimaryIdentifier", "env");
0181:                Node v$49 = GNode.create("PrimaryIdentifier", "jEnv");
0182:                Node v$50 = GNode.create("PrimaryIdentifier", "fid");
0183:                Node v$51 = GNode.create("ExpressionList", v$48, v$49, v$50);
0184:                Node v$52 = GNode.create("FunctionCall", v$47, v$51);
0185:                Node v$53 = GNode.create("InitializedDeclarator", null, v$44,
0186:                        null, null, v$52);
0187:                Node v$54 = GNode.create("InitializedDeclaratorList", v$53);
0188:                Node v$55 = GNode.create("Declaration", null, v$43, v$54);
0189:                Node v$56 = GNode.create("PrimaryIdentifier", "env");
0190:                Node v$57 = GNode.create("IndirectionExpression", v$56);
0191:                Node v$58 = GNode.create("IndirectComponentSelection", v$57,
0192:                        "DeleteLocalRef");
0193:                Node v$59 = GNode.create("PrimaryIdentifier", "env");
0194:                Node v$60 = GNode.create("PrimaryIdentifier", "cls");
0195:                Node v$61 = GNode.create("ExpressionList", v$59, v$60);
0196:                Node v$62 = GNode.create("FunctionCall", v$58, v$61);
0197:                Node v$63 = GNode.create("ExpressionStatement", v$62);
0198:                Node v$64 = GNode.create("PrimaryIdentifier", "tmp");
0199:                Node v$65 = GNode.create("ExpressionStatement", v$64);
0200:                Node v$66 = GNode.create("CompoundStatement", v$27, v$41, v$55,
0201:                        v$63, v$65, null);
0202:                Node v$67 = GNode.create("StatementAsExpression", v$66);
0203:                Node v$68 = GNode.create("LogicalOrExpression", v$14, v$67);
0204:                Node v$69 = GNode.create("CompoundStatement", abruptFlowJump,
0205:                        null);
0206:                Node v$70 = GNode.create("IfStatement", v$68, v$69);
0207:                Node v$71 = GNode.create("CompoundStatement", v$12, v$70, null);
0208:                return v$71;
0209:            }
0210:
0211:            /**
0212:             * Create a goto statement.
0213:             *
0214:             * @param label The label.
0215:             * @return The generic node.
0216:             */
0217:            public Node abruptFlowJumpOpenArray(String label) {
0218:                Node v$1 = GNode.create("PrimaryIdentifier", label);
0219:                Node v$2 = GNode.create("GotoStatement", null, v$1);
0220:                return v$2;
0221:            }
0222:
0223:            /**
0224:             * Create a compound statement.
0225:             *
0226:             * @param statements The statements.
0227:             * @return The generic node.
0228:             */
0229:            public Node block(List<Node> statements) {
0230:                Node v$1 = GNode.create("CompoundStatement",
0231:                        statements.size() + 1).addAll(statements).add(null);
0232:                return v$1;
0233:            }
0234:
0235:            /**
0236:             * Create a compound statement.
0237:             *
0238:             * @param releaseAbrupt The releaseAbrupt.
0239:             * @param abruptFlowJump The abruptFlowJump.
0240:             * @return The generic node.
0241:             */
0242:            public Node cancel(String releaseAbrupt, Node abruptFlowJump) {
0243:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
0244:                Node v$2 = GNode.create("IndirectComponentSelection", v$1,
0245:                        releaseAbrupt);
0246:                Node v$3 = GNode.create("IntegerConstant", "2");
0247:                Node v$4 = GNode.create("AssignmentExpression", v$2, "=", v$3);
0248:                Node v$5 = GNode.create("ExpressionStatement", v$4);
0249:                Node v$6 = GNode.create("CompoundStatement", v$5,
0250:                        abruptFlowJump, null);
0251:                return v$6;
0252:            }
0253:
0254:            /**
0255:             * Create a statement as expression.
0256:             *
0257:             * @param tmpDeclaration The tmpDeclaration.
0258:             * @param call The call.
0259:             * @param abruptFlowCheck The abruptFlowCheck.
0260:             * @return The generic node.
0261:             */
0262:            public Node checkedFunctionCallResult(Node tmpDeclaration,
0263:                    Node call, Node abruptFlowCheck) {
0264:                Node v$1 = GNode.create("PrimaryIdentifier", "tmp");
0265:                Node v$2 = GNode.create("AssignmentExpression", v$1, "=", call);
0266:                Node v$3 = GNode.create("ExpressionStatement", v$2);
0267:                Node v$4 = GNode.create("PrimaryIdentifier", "tmp");
0268:                Node v$5 = GNode.create("ExpressionStatement", v$4);
0269:                Node v$6 = GNode.create("CompoundStatement", tmpDeclaration,
0270:                        v$3, abruptFlowCheck, v$5, null);
0271:                Node v$7 = GNode.create("StatementAsExpression", v$6);
0272:                return v$7;
0273:            }
0274:
0275:            /**
0276:             * Create a compound statement.
0277:             *
0278:             * @param call The call.
0279:             * @param abruptFlowCheck The abruptFlowCheck.
0280:             * @return The generic node.
0281:             */
0282:            public Node checkedFunctionCallVoid(Node call, Node abruptFlowCheck) {
0283:                Node v$1 = GNode.create("ExpressionStatement", call);
0284:                Node v$2 = GNode.create("CompoundStatement", v$1,
0285:                        abruptFlowCheck, null);
0286:                return v$2;
0287:            }
0288:
0289:            /**
0290:             * Create a compound statement.
0291:             *
0292:             * @param tag The tag.
0293:             * @param expression The expression.
0294:             * @return The generic node.
0295:             */
0296:            public Node cInJavaExpressionWithCEnv(String tag, Node expression) {
0297:                Node v$1 = GNode.create("StructureTypeReference", null, tag);
0298:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0299:                Node v$3 = GNode.create("TypeQualifierList", false);
0300:                Node v$4 = GNode.create("Pointer", v$3, null);
0301:                Node v$5 = GNode.create("SimpleDeclarator", "pcEnv");
0302:                Node v$6 = GNode.create("PointerDeclarator", v$4, v$5);
0303:                Node v$7 = GNode.create("StructureTypeReference", null, tag);
0304:                Node v$8 = GNode.create("SpecifierQualifierList", v$7);
0305:                Node v$9 = GNode.create("TypeQualifierList", false);
0306:                Node v$10 = GNode.create("Pointer", v$9, null);
0307:                Node v$11 = GNode.create("AbstractDeclarator", v$10, null);
0308:                Node v$12 = GNode.create("TypeName", v$8, v$11);
0309:                Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
0310:                Node v$14 = GNode.create("CastExpression", v$12, v$13);
0311:                Node v$15 = GNode.create("InitializedDeclarator", null, v$6,
0312:                        null, null, v$14);
0313:                Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
0314:                Node v$17 = GNode.create("Declaration", null, v$2, v$16);
0315:                Node v$18 = GNode.create("ReturnStatement", expression);
0316:                Node v$19 = GNode.create("PrimaryIdentifier", "pcEnv");
0317:                Node v$20 = GNode.create("IntegerConstant", "0");
0318:                Node v$21 = GNode.create("AssignmentExpression", v$19, "=",
0319:                        v$20);
0320:                Node v$22 = GNode.create("ExpressionStatement", v$21);
0321:                Node v$23 = GNode.create("CompoundStatement", v$17, v$18, v$22,
0322:                        null);
0323:                return v$23;
0324:            }
0325:
0326:            /**
0327:             * Create a compound statement.
0328:             *
0329:             * @param tag The tag.
0330:             * @param expression The expression.
0331:             * @return The generic node.
0332:             */
0333:            public Node cInJavaExpressionWithoutCEnv(String tag, Node expression) {
0334:                Node v$1 = GNode.create("StructureTypeReference", null, tag);
0335:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0336:                Node v$3 = GNode.create("SimpleDeclarator", "cEnv");
0337:                Node v$4 = GNode.create("InitializedDeclarator", null, v$3,
0338:                        null, null, null);
0339:                Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
0340:                Node v$6 = GNode.create("Declaration", null, v$2, v$5);
0341:                Node v$7 = GNode.create("StructureTypeReference", null, tag);
0342:                Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
0343:                Node v$9 = GNode.create("TypeQualifierList", false);
0344:                Node v$10 = GNode.create("Pointer", v$9, null);
0345:                Node v$11 = GNode.create("SimpleDeclarator", "pcEnv");
0346:                Node v$12 = GNode.create("PointerDeclarator", v$10, v$11);
0347:                Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
0348:                Node v$14 = GNode.create("AddressExpression", v$13);
0349:                Node v$15 = GNode.create("InitializedDeclarator", null, v$12,
0350:                        null, null, v$14);
0351:                Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
0352:                Node v$17 = GNode.create("Declaration", null, v$8, v$16);
0353:                Node v$18 = GNode.create("ReturnStatement", expression);
0354:                Node v$19 = GNode.create("PrimaryIdentifier", "pcEnv");
0355:                Node v$20 = GNode.create("IntegerConstant", "0");
0356:                Node v$21 = GNode.create("AssignmentExpression", v$19, "=",
0357:                        v$20);
0358:                Node v$22 = GNode.create("ExpressionStatement", v$21);
0359:                Node v$23 = GNode.create("CompoundStatement", v$6, v$17, v$18,
0360:                        v$22, null);
0361:                return v$23;
0362:            }
0363:
0364:            /**
0365:             * Create a compound statement.
0366:             *
0367:             * @param tag The tag.
0368:             * @param statement The statement.
0369:             * @return The generic node.
0370:             */
0371:            public Node cInJavaStatementWithCEnv(String tag, Node statement) {
0372:                Node v$1 = GNode.create("StructureTypeReference", null, tag);
0373:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0374:                Node v$3 = GNode.create("TypeQualifierList", false);
0375:                Node v$4 = GNode.create("Pointer", v$3, null);
0376:                Node v$5 = GNode.create("SimpleDeclarator", "pcEnv");
0377:                Node v$6 = GNode.create("PointerDeclarator", v$4, v$5);
0378:                Node v$7 = GNode.create("StructureTypeReference", null, tag);
0379:                Node v$8 = GNode.create("SpecifierQualifierList", v$7);
0380:                Node v$9 = GNode.create("TypeQualifierList", false);
0381:                Node v$10 = GNode.create("Pointer", v$9, null);
0382:                Node v$11 = GNode.create("AbstractDeclarator", v$10, null);
0383:                Node v$12 = GNode.create("TypeName", v$8, v$11);
0384:                Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
0385:                Node v$14 = GNode.create("CastExpression", v$12, v$13);
0386:                Node v$15 = GNode.create("InitializedDeclarator", null, v$6,
0387:                        null, null, v$14);
0388:                Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
0389:                Node v$17 = GNode.create("Declaration", null, v$2, v$16);
0390:                Node v$18 = GNode.create("PrimaryIdentifier", "pcEnv");
0391:                Node v$19 = GNode.create("IntegerConstant", "0");
0392:                Node v$20 = GNode.create("AssignmentExpression", v$18, "=",
0393:                        v$19);
0394:                Node v$21 = GNode.create("ExpressionStatement", v$20);
0395:                Node v$22 = GNode.create("CompoundStatement", v$17, statement,
0396:                        v$21, null);
0397:                return v$22;
0398:            }
0399:
0400:            /**
0401:             * Create a compound statement.
0402:             *
0403:             * @param tag The tag.
0404:             * @param statement The statement.
0405:             * @return The generic node.
0406:             */
0407:            public Node cInJavaStatementWithoutCEnv(String tag, Node statement) {
0408:                Node v$1 = GNode.create("StructureTypeReference", null, tag);
0409:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0410:                Node v$3 = GNode.create("SimpleDeclarator", "cEnv");
0411:                Node v$4 = GNode.create("InitializedDeclarator", null, v$3,
0412:                        null, null, null);
0413:                Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
0414:                Node v$6 = GNode.create("Declaration", null, v$2, v$5);
0415:                Node v$7 = GNode.create("StructureTypeReference", null, tag);
0416:                Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
0417:                Node v$9 = GNode.create("TypeQualifierList", false);
0418:                Node v$10 = GNode.create("Pointer", v$9, null);
0419:                Node v$11 = GNode.create("SimpleDeclarator", "pcEnv");
0420:                Node v$12 = GNode.create("PointerDeclarator", v$10, v$11);
0421:                Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
0422:                Node v$14 = GNode.create("AddressExpression", v$13);
0423:                Node v$15 = GNode.create("InitializedDeclarator", null, v$12,
0424:                        null, null, v$14);
0425:                Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
0426:                Node v$17 = GNode.create("Declaration", null, v$8, v$16);
0427:                Node v$18 = GNode.create("PrimaryIdentifier", "pcEnv");
0428:                Node v$19 = GNode.create("IntegerConstant", "0");
0429:                Node v$20 = GNode.create("AssignmentExpression", v$18, "=",
0430:                        v$19);
0431:                Node v$21 = GNode.create("ExpressionStatement", v$20);
0432:                Node v$22 = GNode.create("CompoundStatement", v$6, v$17,
0433:                        statement, v$21, null);
0434:                return v$22;
0435:            }
0436:
0437:            /**
0438:             * Create a compound statement.
0439:             *
0440:             * @param tag The tag.
0441:             * @param copyFormals The copyFormals.
0442:             * @param className The className.
0443:             * @param statement The statement.
0444:             * @return The generic node.
0445:             */
0446:            public Node closureStatement(String tag, Node copyFormals,
0447:                    Node className, Node statement) {
0448:                Node v$1 = GNode.create("StructureTypeReference", null, tag);
0449:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0450:                Node v$3 = GNode.create("SimpleDeclarator", "cEnv");
0451:                Node v$4 = GNode.create("InitializedDeclarator", null, v$3,
0452:                        null, null, null);
0453:                Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
0454:                Node v$6 = GNode.create("Declaration", null, v$2, v$5);
0455:                Node v$7 = GNode.create("StructureTypeReference", null, tag);
0456:                Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
0457:                Node v$9 = GNode.create("TypeQualifierList", false);
0458:                Node v$10 = GNode.create("Pointer", v$9, null);
0459:                Node v$11 = GNode.create("SimpleDeclarator", "pcEnv");
0460:                Node v$12 = GNode.create("PointerDeclarator", v$10, v$11);
0461:                Node v$13 = GNode.create("PrimaryIdentifier", "cEnv");
0462:                Node v$14 = GNode.create("AddressExpression", v$13);
0463:                Node v$15 = GNode.create("InitializedDeclarator", null, v$12,
0464:                        null, null, v$14);
0465:                Node v$16 = GNode.create("InitializedDeclaratorList", v$15);
0466:                Node v$17 = GNode.create("Declaration", null, v$8, v$16);
0467:                Node v$18 = GNode.create("TypedefName", "jobject");
0468:                Node v$19 = GNode.create("DeclarationSpecifiers", v$18);
0469:                Node v$20 = GNode.create("SimpleDeclarator", "jEnv");
0470:                Node v$21 = GNode.create("TypedefName", "jclass");
0471:                Node v$22 = GNode.create("DeclarationSpecifiers", v$21);
0472:                Node v$23 = GNode.create("SimpleDeclarator", "cls");
0473:                Node v$24 = GNode.create("PrimaryIdentifier", "env");
0474:                Node v$25 = GNode.create("IndirectionExpression", v$24);
0475:                Node v$26 = GNode.create("IndirectComponentSelection", v$25,
0476:                        "FindClass");
0477:                Node v$27 = GNode.create("PrimaryIdentifier", "env");
0478:                Node v$28 = GNode.create("ExpressionList", v$27, className);
0479:                Node v$29 = GNode.create("FunctionCall", v$26, v$28);
0480:                Node v$30 = GNode.create("InitializedDeclarator", null, v$23,
0481:                        null, null, v$29);
0482:                Node v$31 = GNode.create("InitializedDeclaratorList", v$30);
0483:                Node v$32 = GNode.create("Declaration", null, v$22, v$31);
0484:                Node v$33 = GNode.create("TypedefName", "jmethodID");
0485:                Node v$34 = GNode.create("DeclarationSpecifiers", v$33);
0486:                Node v$35 = GNode.create("SimpleDeclarator", "mid");
0487:                Node v$36 = GNode.create("PrimaryIdentifier", "env");
0488:                Node v$37 = GNode.create("IndirectionExpression", v$36);
0489:                Node v$38 = GNode.create("IndirectComponentSelection", v$37,
0490:                        "GetMethodID");
0491:                Node v$39 = GNode.create("PrimaryIdentifier", "env");
0492:                Node v$40 = GNode.create("PrimaryIdentifier", "cls");
0493:                Node v$41 = GNode.create("StringConstant", "\"<init>\"");
0494:                Node v$42 = GNode.create("StringConstant", "\"()V\"");
0495:                Node v$43 = GNode.create("ExpressionList", v$39, v$40, v$41,
0496:                        v$42);
0497:                Node v$44 = GNode.create("FunctionCall", v$38, v$43);
0498:                Node v$45 = GNode.create("InitializedDeclarator", null, v$35,
0499:                        null, null, v$44);
0500:                Node v$46 = GNode.create("InitializedDeclaratorList", v$45);
0501:                Node v$47 = GNode.create("Declaration", null, v$34, v$46);
0502:                Node v$48 = GNode.create("TypedefName", "jobject");
0503:                Node v$49 = GNode.create("DeclarationSpecifiers", v$48);
0504:                Node v$50 = GNode.create("SimpleDeclarator", "tmp");
0505:                Node v$51 = GNode.create("PrimaryIdentifier", "env");
0506:                Node v$52 = GNode.create("IndirectionExpression", v$51);
0507:                Node v$53 = GNode.create("IndirectComponentSelection", v$52,
0508:                        "NewObject");
0509:                Node v$54 = GNode.create("PrimaryIdentifier", "env");
0510:                Node v$55 = GNode.create("PrimaryIdentifier", "cls");
0511:                Node v$56 = GNode.create("PrimaryIdentifier", "mid");
0512:                Node v$57 = GNode.create("ExpressionList", v$54, v$55, v$56);
0513:                Node v$58 = GNode.create("FunctionCall", v$53, v$57);
0514:                Node v$59 = GNode.create("InitializedDeclarator", null, v$50,
0515:                        null, null, v$58);
0516:                Node v$60 = GNode.create("InitializedDeclaratorList", v$59);
0517:                Node v$61 = GNode.create("Declaration", null, v$49, v$60);
0518:                Node v$62 = GNode.create("PrimaryIdentifier", "env");
0519:                Node v$63 = GNode.create("IndirectionExpression", v$62);
0520:                Node v$64 = GNode.create("IndirectComponentSelection", v$63,
0521:                        "DeleteLocalRef");
0522:                Node v$65 = GNode.create("PrimaryIdentifier", "env");
0523:                Node v$66 = GNode.create("PrimaryIdentifier", "cls");
0524:                Node v$67 = GNode.create("ExpressionList", v$65, v$66);
0525:                Node v$68 = GNode.create("FunctionCall", v$64, v$67);
0526:                Node v$69 = GNode.create("ExpressionStatement", v$68);
0527:                Node v$70 = GNode.create("PrimaryIdentifier", "tmp");
0528:                Node v$71 = GNode.create("ExpressionStatement", v$70);
0529:                Node v$72 = GNode.create("CompoundStatement", v$32, v$47, v$61,
0530:                        v$69, v$71, null);
0531:                Node v$73 = GNode.create("StatementAsExpression", v$72);
0532:                Node v$74 = GNode.create("InitializedDeclarator", null, v$20,
0533:                        null, null, v$73);
0534:                Node v$75 = GNode.create("InitializedDeclaratorList", v$74);
0535:                Node v$76 = GNode.create("Declaration", null, v$19, v$75);
0536:                Node v$77 = GNode.create("PrimaryIdentifier", "pcEnv");
0537:                Node v$78 = GNode.create("IntegerConstant", "0");
0538:                Node v$79 = GNode.create("AssignmentExpression", v$77, "=",
0539:                        v$78);
0540:                Node v$80 = GNode.create("ExpressionStatement", v$79);
0541:                Node v$81 = GNode.create("CompoundStatement", v$6, v$17,
0542:                        copyFormals, v$76, statement, v$80, null);
0543:                return v$81;
0544:            }
0545:
0546:            /**
0547:             * Create a compound statement.
0548:             *
0549:             * @param releaseAbrupt The releaseAbrupt.
0550:             * @param abruptFlowJump The abruptFlowJump.
0551:             * @return The generic node.
0552:             */
0553:            public Node commit(String releaseAbrupt, Node abruptFlowJump) {
0554:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
0555:                Node v$2 = GNode.create("IndirectComponentSelection", v$1,
0556:                        releaseAbrupt);
0557:                Node v$3 = GNode.create("IntegerConstant", "1");
0558:                Node v$4 = GNode.create("AssignmentExpression", v$2, "=", v$3);
0559:                Node v$5 = GNode.create("ExpressionStatement", v$4);
0560:                Node v$6 = GNode.create("CompoundStatement", v$5,
0561:                        abruptFlowJump, null);
0562:                return v$6;
0563:            }
0564:
0565:            /**
0566:             * Create a statement as expression.
0567:             *
0568:             * @param apiFunction The apiFunction.
0569:             * @param javaArray The javaArray.
0570:             * @param javaArrayStart The javaArrayStart.
0571:             * @param length The length.
0572:             * @param cArray The cArray.
0573:             * @param cArrayStart The cArrayStart.
0574:             * @param abruptFlowCheck The abruptFlowCheck.
0575:             * @return The generic node.
0576:             */
0577:            public Node copyBetweenJavaAndC(String apiFunction, Node javaArray,
0578:                    Node javaArrayStart, Node length, Node cArray,
0579:                    Node cArrayStart, Node abruptFlowCheck) {
0580:                Node v$1 = GNode.create("TypedefName", "jint");
0581:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0582:                Node v$3 = GNode.create("SimpleDeclarator", "length");
0583:                Node v$4 = GNode.create("InitializedDeclarator", null, v$3,
0584:                        null, null, null);
0585:                Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
0586:                Node v$6 = GNode.create("Declaration", null, v$2, v$5);
0587:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
0588:                Node v$8 = GNode.create("IndirectionExpression", v$7);
0589:                Node v$9 = GNode.create("IndirectComponentSelection", v$8,
0590:                        apiFunction);
0591:                Node v$10 = GNode.create("PrimaryIdentifier", "env");
0592:                Node v$11 = GNode.create("PrimaryIdentifier", "length");
0593:                Node v$12 = GNode.create("AssignmentExpression", v$11, "=",
0594:                        length);
0595:                Node v$13 = GNode.create("AdditiveExpression", cArray, "+",
0596:                        cArrayStart);
0597:                Node v$14 = GNode.create("ExpressionList", v$10, javaArray,
0598:                        javaArrayStart, v$12, v$13);
0599:                Node v$15 = GNode.create("FunctionCall", v$9, v$14);
0600:                Node v$16 = GNode.create("ExpressionStatement", v$15);
0601:                Node v$17 = GNode.create("PrimaryIdentifier", "length");
0602:                Node v$18 = GNode.create("ExpressionStatement", v$17);
0603:                Node v$19 = GNode.create("CompoundStatement", v$6, v$16,
0604:                        abruptFlowCheck, v$18, null);
0605:                Node v$20 = GNode.create("StatementAsExpression", v$19);
0606:                return v$20;
0607:            }
0608:
0609:            /**
0610:             * Create a statement as expression.
0611:             *
0612:             * @param javaArray The javaArray.
0613:             * @param javaArrayStart The javaArrayStart.
0614:             * @param length The length.
0615:             * @param apiFunction The apiFunction.
0616:             * @param cArray The cArray.
0617:             * @param cArrayStart The cArrayStart.
0618:             * @param abruptFlowCheck The abruptFlowCheck.
0619:             * @return The generic node.
0620:             */
0621:            public Node copyBetweenJavaAndCUTF(Node javaArray,
0622:                    Node javaArrayStart, Node length, String apiFunction,
0623:                    Node cArray, Node cArrayStart, Node abruptFlowCheck) {
0624:                Node v$1 = GNode.create("TypedefName", "jstring");
0625:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0626:                Node v$3 = GNode.create("SimpleDeclarator", "javaArray");
0627:                Node v$4 = GNode.create("InitializedDeclarator", null, v$3,
0628:                        null, null, javaArray);
0629:                Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
0630:                Node v$6 = GNode.create("Declaration", null, v$2, v$5);
0631:                Node v$7 = GNode.create("TypedefName", "jint");
0632:                Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
0633:                Node v$9 = GNode.create("SimpleDeclarator", "start");
0634:                Node v$10 = GNode.create("InitializedDeclarator", null, v$9,
0635:                        null, null, javaArrayStart);
0636:                Node v$11 = GNode.create("SimpleDeclarator", "length");
0637:                Node v$12 = GNode.create("InitializedDeclarator", null, v$11,
0638:                        null, null, length);
0639:                Node v$13 = GNode.create("InitializedDeclaratorList", v$10,
0640:                        v$12);
0641:                Node v$14 = GNode.create("Declaration", null, v$8, v$13);
0642:                Node v$15 = GNode.create("PrimaryIdentifier", "env");
0643:                Node v$16 = GNode.create("IndirectionExpression", v$15);
0644:                Node v$17 = GNode.create("IndirectComponentSelection", v$16,
0645:                        apiFunction);
0646:                Node v$18 = GNode.create("PrimaryIdentifier", "env");
0647:                Node v$19 = GNode.create("PrimaryIdentifier", "javaArray");
0648:                Node v$20 = GNode.create("PrimaryIdentifier", "start");
0649:                Node v$21 = GNode.create("PrimaryIdentifier", "length");
0650:                Node v$22 = GNode.create("Char", false);
0651:                Node v$23 = GNode.create("SpecifierQualifierList", v$22);
0652:                Node v$24 = GNode.create("TypeQualifierList", false);
0653:                Node v$25 = GNode.create("Pointer", v$24, null);
0654:                Node v$26 = GNode.create("AbstractDeclarator", v$25, null);
0655:                Node v$27 = GNode.create("TypeName", v$23, v$26);
0656:                Node v$28 = GNode.create("AdditiveExpression", cArray, "+",
0657:                        cArrayStart);
0658:                Node v$29 = GNode.create("CastExpression", v$27, v$28);
0659:                Node v$30 = GNode.create("ExpressionList", v$18, v$19, v$20,
0660:                        v$21, v$29);
0661:                Node v$31 = GNode.create("FunctionCall", v$17, v$30);
0662:                Node v$32 = GNode.create("ExpressionStatement", v$31);
0663:                Node v$33 = GNode.create("PrimaryIdentifier",
0664:                        "_stringUTFLength");
0665:                Node v$34 = GNode.create("PrimaryIdentifier", "env");
0666:                Node v$35 = GNode.create("PrimaryIdentifier", "javaArray");
0667:                Node v$36 = GNode.create("PrimaryIdentifier", "start");
0668:                Node v$37 = GNode.create("PrimaryIdentifier", "length");
0669:                Node v$38 = GNode.create("ExpressionList", v$34, v$35, v$36,
0670:                        v$37);
0671:                Node v$39 = GNode.create("FunctionCall", v$33, v$38);
0672:                Node v$40 = GNode.create("ExpressionStatement", v$39);
0673:                Node v$41 = GNode.create("CompoundStatement", v$6, v$14, v$32,
0674:                        abruptFlowCheck, v$40, null);
0675:                Node v$42 = GNode.create("StatementAsExpression", v$41);
0676:                return v$42;
0677:            }
0678:
0679:            /**
0680:             * Create a statement as expression.
0681:             *
0682:             * @param javaArray The javaArray.
0683:             * @param javaArrayStart The javaArrayStart.
0684:             * @param length The length.
0685:             * @param cArray The cArray.
0686:             * @param cArrayStart The cArrayStart.
0687:             * @param abruptFlowCheck The abruptFlowCheck.
0688:             * @return The generic node.
0689:             */
0690:            public Node copyFromJavaReference(Node javaArray,
0691:                    Node javaArrayStart, Node length, Node cArray,
0692:                    Node cArrayStart, Node abruptFlowCheck) {
0693:                Node v$1 = GNode.create("TypedefName", "jobjectArray");
0694:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0695:                Node v$3 = GNode.create("SimpleDeclarator", "javaArray");
0696:                Node v$4 = GNode.create("InitializedDeclarator", null, v$3,
0697:                        null, null, javaArray);
0698:                Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
0699:                Node v$6 = GNode.create("Declaration", null, v$2, v$5);
0700:                Node v$7 = GNode.create("TypedefName", "jint");
0701:                Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
0702:                Node v$9 = GNode.create("SimpleDeclarator", "start");
0703:                Node v$10 = GNode.create("InitializedDeclarator", null, v$9,
0704:                        null, null, javaArrayStart);
0705:                Node v$11 = GNode.create("SimpleDeclarator", "length");
0706:                Node v$12 = GNode.create("InitializedDeclarator", null, v$11,
0707:                        null, null, length);
0708:                Node v$13 = GNode.create("InitializedDeclaratorList", v$10,
0709:                        v$12);
0710:                Node v$14 = GNode.create("Declaration", null, v$8, v$13);
0711:                Node v$15 = GNode.create("TypedefName", "jobject");
0712:                Node v$16 = GNode.create("DeclarationSpecifiers", v$15);
0713:                Node v$17 = GNode.create("TypeQualifierList", false);
0714:                Node v$18 = GNode.create("Pointer", v$17, null);
0715:                Node v$19 = GNode.create("SimpleDeclarator", "cArray");
0716:                Node v$20 = GNode.create("PointerDeclarator", v$18, v$19);
0717:                Node v$21 = GNode.create("AdditiveExpression", cArray, "+",
0718:                        cArrayStart);
0719:                Node v$22 = GNode.create("InitializedDeclarator", null, v$20,
0720:                        null, null, v$21);
0721:                Node v$23 = GNode.create("InitializedDeclaratorList", v$22);
0722:                Node v$24 = GNode.create("Declaration", null, v$16, v$23);
0723:                Node v$25 = GNode.create("TypedefName", "jint");
0724:                Node v$26 = GNode.create("DeclarationSpecifiers", v$25);
0725:                Node v$27 = GNode.create("SimpleDeclarator", "i");
0726:                Node v$28 = GNode.create("InitializedDeclarator", null, v$27,
0727:                        null, null, null);
0728:                Node v$29 = GNode.create("InitializedDeclaratorList", v$28);
0729:                Node v$30 = GNode.create("Declaration", null, v$26, v$29);
0730:                Node v$31 = GNode.create("PrimaryIdentifier", "i");
0731:                Node v$32 = GNode.create("IntegerConstant", "0");
0732:                Node v$33 = GNode.create("AssignmentExpression", v$31, "=",
0733:                        v$32);
0734:                Node v$34 = GNode.create("PrimaryIdentifier", "i");
0735:                Node v$35 = GNode.create("PrimaryIdentifier", "length");
0736:                Node v$36 = GNode.create("RelationalExpression", v$34, "<",
0737:                        v$35);
0738:                Node v$37 = GNode.create("PrimaryIdentifier", "i");
0739:                Node v$38 = GNode.create("PostincrementExpression", v$37);
0740:                Node v$39 = GNode.create("PrimaryIdentifier", "cArray");
0741:                Node v$40 = GNode.create("PrimaryIdentifier", "i");
0742:                Node v$41 = GNode.create("SubscriptExpression", v$39, v$40);
0743:                Node v$42 = GNode.create("PrimaryIdentifier", "env");
0744:                Node v$43 = GNode.create("IndirectionExpression", v$42);
0745:                Node v$44 = GNode.create("IndirectComponentSelection", v$43,
0746:                        "GetObjectArrayElement");
0747:                Node v$45 = GNode.create("PrimaryIdentifier", "env");
0748:                Node v$46 = GNode.create("PrimaryIdentifier", "javaArray");
0749:                Node v$47 = GNode.create("PrimaryIdentifier", "start");
0750:                Node v$48 = GNode.create("PrimaryIdentifier", "i");
0751:                Node v$49 = GNode.create("AdditiveExpression", v$47, "+", v$48);
0752:                Node v$50 = GNode.create("ExpressionList", v$45, v$46, v$49);
0753:                Node v$51 = GNode.create("FunctionCall", v$44, v$50);
0754:                Node v$52 = GNode.create("AssignmentExpression", v$41, "=",
0755:                        v$51);
0756:                Node v$53 = GNode.create("ExpressionStatement", v$52);
0757:                Node v$54 = GNode.create("PrimaryIdentifier", "env");
0758:                Node v$55 = GNode.create("IndirectionExpression", v$54);
0759:                Node v$56 = GNode.create("IndirectComponentSelection", v$55,
0760:                        "ExceptionCheck");
0761:                Node v$57 = GNode.create("PrimaryIdentifier", "env");
0762:                Node v$58 = GNode.create("ExpressionList", v$57);
0763:                Node v$59 = GNode.create("FunctionCall", v$56, v$58);
0764:                Node v$60 = GNode.create("BreakStatement", false);
0765:                Node v$61 = GNode.create("IfStatement", v$59, v$60);
0766:                Node v$62 = GNode.create("CompoundStatement", v$53, v$61, null);
0767:                Node v$63 = GNode
0768:                        .create("ForStatement", v$33, v$36, v$38, v$62);
0769:                Node v$64 = GNode.create("PrimaryIdentifier", "length");
0770:                Node v$65 = GNode.create("ExpressionStatement", v$64);
0771:                Node v$66 = GNode.create("CompoundStatement", v$6, v$14, v$24,
0772:                        v$30, v$63, abruptFlowCheck, v$65, null);
0773:                Node v$67 = GNode.create("StatementAsExpression", v$66);
0774:                return v$67;
0775:            }
0776:
0777:            /**
0778:             * Create a statement as expression.
0779:             *
0780:             * @param javaArray The javaArray.
0781:             * @param javaArrayStart The javaArrayStart.
0782:             * @param length The length.
0783:             * @param cArray The cArray.
0784:             * @param cArrayStart The cArrayStart.
0785:             * @param abruptFlowCheck The abruptFlowCheck.
0786:             * @return The generic node.
0787:             */
0788:            public Node copyToJavaReference(Node javaArray,
0789:                    Node javaArrayStart, Node length, Node cArray,
0790:                    Node cArrayStart, Node abruptFlowCheck) {
0791:                Node v$1 = GNode.create("TypedefName", "jobjectArray");
0792:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0793:                Node v$3 = GNode.create("SimpleDeclarator", "javaArray");
0794:                Node v$4 = GNode.create("InitializedDeclarator", null, v$3,
0795:                        null, null, javaArray);
0796:                Node v$5 = GNode.create("InitializedDeclaratorList", v$4);
0797:                Node v$6 = GNode.create("Declaration", null, v$2, v$5);
0798:                Node v$7 = GNode.create("TypedefName", "jint");
0799:                Node v$8 = GNode.create("DeclarationSpecifiers", v$7);
0800:                Node v$9 = GNode.create("SimpleDeclarator", "start");
0801:                Node v$10 = GNode.create("InitializedDeclarator", null, v$9,
0802:                        null, null, javaArrayStart);
0803:                Node v$11 = GNode.create("SimpleDeclarator", "length");
0804:                Node v$12 = GNode.create("InitializedDeclarator", null, v$11,
0805:                        null, null, length);
0806:                Node v$13 = GNode.create("InitializedDeclaratorList", v$10,
0807:                        v$12);
0808:                Node v$14 = GNode.create("Declaration", null, v$8, v$13);
0809:                Node v$15 = GNode.create("TypedefName", "jobject");
0810:                Node v$16 = GNode.create("DeclarationSpecifiers", v$15);
0811:                Node v$17 = GNode.create("TypeQualifierList", false);
0812:                Node v$18 = GNode.create("Pointer", v$17, null);
0813:                Node v$19 = GNode.create("SimpleDeclarator", "cArray");
0814:                Node v$20 = GNode.create("PointerDeclarator", v$18, v$19);
0815:                Node v$21 = GNode.create("AdditiveExpression", cArray, "+",
0816:                        cArrayStart);
0817:                Node v$22 = GNode.create("InitializedDeclarator", null, v$20,
0818:                        null, null, v$21);
0819:                Node v$23 = GNode.create("InitializedDeclaratorList", v$22);
0820:                Node v$24 = GNode.create("Declaration", null, v$16, v$23);
0821:                Node v$25 = GNode.create("TypedefName", "jint");
0822:                Node v$26 = GNode.create("DeclarationSpecifiers", v$25);
0823:                Node v$27 = GNode.create("SimpleDeclarator", "i");
0824:                Node v$28 = GNode.create("InitializedDeclarator", null, v$27,
0825:                        null, null, null);
0826:                Node v$29 = GNode.create("InitializedDeclaratorList", v$28);
0827:                Node v$30 = GNode.create("Declaration", null, v$26, v$29);
0828:                Node v$31 = GNode.create("PrimaryIdentifier", "i");
0829:                Node v$32 = GNode.create("IntegerConstant", "0");
0830:                Node v$33 = GNode.create("AssignmentExpression", v$31, "=",
0831:                        v$32);
0832:                Node v$34 = GNode.create("PrimaryIdentifier", "i");
0833:                Node v$35 = GNode.create("PrimaryIdentifier", "length");
0834:                Node v$36 = GNode.create("RelationalExpression", v$34, "<",
0835:                        v$35);
0836:                Node v$37 = GNode.create("PrimaryIdentifier", "i");
0837:                Node v$38 = GNode.create("PostincrementExpression", v$37);
0838:                Node v$39 = GNode.create("PrimaryIdentifier", "env");
0839:                Node v$40 = GNode.create("IndirectionExpression", v$39);
0840:                Node v$41 = GNode.create("IndirectComponentSelection", v$40,
0841:                        "SetObjectArrayElement");
0842:                Node v$42 = GNode.create("PrimaryIdentifier", "env");
0843:                Node v$43 = GNode.create("PrimaryIdentifier", "javaArray");
0844:                Node v$44 = GNode.create("PrimaryIdentifier", "start");
0845:                Node v$45 = GNode.create("PrimaryIdentifier", "i");
0846:                Node v$46 = GNode.create("AdditiveExpression", v$44, "+", v$45);
0847:                Node v$47 = GNode.create("PrimaryIdentifier", "cArray");
0848:                Node v$48 = GNode.create("PrimaryIdentifier", "i");
0849:                Node v$49 = GNode.create("SubscriptExpression", v$47, v$48);
0850:                Node v$50 = GNode.create("ExpressionList", v$42, v$43, v$46,
0851:                        v$49);
0852:                Node v$51 = GNode.create("FunctionCall", v$41, v$50);
0853:                Node v$52 = GNode.create("ExpressionStatement", v$51);
0854:                Node v$53 = GNode.create("PrimaryIdentifier", "env");
0855:                Node v$54 = GNode.create("IndirectionExpression", v$53);
0856:                Node v$55 = GNode.create("IndirectComponentSelection", v$54,
0857:                        "ExceptionCheck");
0858:                Node v$56 = GNode.create("PrimaryIdentifier", "env");
0859:                Node v$57 = GNode.create("ExpressionList", v$56);
0860:                Node v$58 = GNode.create("FunctionCall", v$55, v$57);
0861:                Node v$59 = GNode.create("BreakStatement", false);
0862:                Node v$60 = GNode.create("IfStatement", v$58, v$59);
0863:                Node v$61 = GNode.create("CompoundStatement", v$52, v$60, null);
0864:                Node v$62 = GNode
0865:                        .create("ForStatement", v$33, v$36, v$38, v$61);
0866:                Node v$63 = GNode.create("PrimaryIdentifier", "length");
0867:                Node v$64 = GNode.create("ExpressionStatement", v$63);
0868:                Node v$65 = GNode.create("CompoundStatement", v$6, v$14, v$24,
0869:                        v$30, v$62, abruptFlowCheck, v$64, null);
0870:                Node v$66 = GNode.create("StatementAsExpression", v$65);
0871:                return v$66;
0872:            }
0873:
0874:            /**
0875:             * Create a declaration.
0876:             *
0877:             * @param tag The tag.
0878:             * @param members The members.
0879:             * @return The generic node.
0880:             */
0881:            public Node declareStruct(String tag, List<Node> members) {
0882:                Node v$1 = GNode.create("StructureDeclarationList",
0883:                        members.size() + 1).addAll(members).add(null);
0884:                Node v$2 = GNode.create("StructureTypeDefinition", null, tag,
0885:                        v$1, null);
0886:                Node v$3 = GNode.create("DeclarationSpecifiers", v$2);
0887:                Node v$4 = GNode.create("Declaration", null, v$3, null);
0888:                return v$4;
0889:            }
0890:
0891:            /**
0892:             * Create an indirect component selection.
0893:             *
0894:             * @param name The name.
0895:             * @return The generic node.
0896:             */
0897:            public Node getPCEnvField(String name) {
0898:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
0899:                Node v$2 = GNode
0900:                        .create("IndirectComponentSelection", v$1, name);
0901:                return v$2;
0902:            }
0903:
0904:            /**
0905:             * Create a statement as expression.
0906:             *
0907:             * @param name The name.
0908:             * @param signature The signature.
0909:             * @param tmpDeclaration The tmpDeclaration.
0910:             * @param apiFunction The apiFunction.
0911:             * @param abruptFlowCheck The abruptFlowCheck.
0912:             * @return The generic node.
0913:             */
0914:            public Node javaInCExpression32(Node name, Node signature,
0915:                    Node tmpDeclaration, String apiFunction,
0916:                    Node abruptFlowCheck) {
0917:                Node v$1 = GNode.create("TypedefName", "jclass");
0918:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
0919:                Node v$3 = GNode.create("SimpleDeclarator", "cls");
0920:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
0921:                Node v$5 = GNode.create("IndirectionExpression", v$4);
0922:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
0923:                        "GetObjectClass");
0924:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
0925:                Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
0926:                Node v$9 = GNode.create("ExpressionList", v$7, v$8);
0927:                Node v$10 = GNode.create("FunctionCall", v$6, v$9);
0928:                Node v$11 = GNode.create("InitializedDeclarator", null, v$3,
0929:                        null, null, v$10);
0930:                Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
0931:                Node v$13 = GNode.create("Declaration", null, v$2, v$12);
0932:                Node v$14 = GNode.create("TypedefName", "jmethodID");
0933:                Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
0934:                Node v$16 = GNode.create("SimpleDeclarator", "mid");
0935:                Node v$17 = GNode.create("PrimaryIdentifier", "env");
0936:                Node v$18 = GNode.create("IndirectionExpression", v$17);
0937:                Node v$19 = GNode.create("IndirectComponentSelection", v$18,
0938:                        "GetMethodID");
0939:                Node v$20 = GNode.create("PrimaryIdentifier", "env");
0940:                Node v$21 = GNode.create("PrimaryIdentifier", "cls");
0941:                Node v$22 = GNode.create("ExpressionList", v$20, v$21, name,
0942:                        signature);
0943:                Node v$23 = GNode.create("FunctionCall", v$19, v$22);
0944:                Node v$24 = GNode.create("InitializedDeclarator", null, v$16,
0945:                        null, null, v$23);
0946:                Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
0947:                Node v$26 = GNode.create("Declaration", null, v$15, v$25);
0948:                Node v$27 = GNode.create("PrimaryIdentifier", "tmp");
0949:                Node v$28 = GNode.create("PrimaryIdentifier", "env");
0950:                Node v$29 = GNode.create("IndirectionExpression", v$28);
0951:                Node v$30 = GNode.create("IndirectComponentSelection", v$29,
0952:                        apiFunction);
0953:                Node v$31 = GNode.create("PrimaryIdentifier", "env");
0954:                Node v$32 = GNode.create("PrimaryIdentifier", "jEnv");
0955:                Node v$33 = GNode.create("PrimaryIdentifier", "cls");
0956:                Node v$34 = GNode.create("PrimaryIdentifier", "mid");
0957:                Node v$35 = GNode.create("TypedefName", "jint");
0958:                Node v$36 = GNode.create("SpecifierQualifierList", v$35);
0959:                Node v$37 = GNode.create("TypeName", v$36, null);
0960:                Node v$38 = GNode.create("PrimaryIdentifier", "pcEnv");
0961:                Node v$39 = GNode.create("CastExpression", v$37, v$38);
0962:                Node v$40 = GNode.create("ExpressionList", v$31, v$32, v$33,
0963:                        v$34, v$39);
0964:                Node v$41 = GNode.create("FunctionCall", v$30, v$40);
0965:                Node v$42 = GNode.create("AssignmentExpression", v$27, "=",
0966:                        v$41);
0967:                Node v$43 = GNode.create("ExpressionStatement", v$42);
0968:                Node v$44 = GNode.create("PrimaryIdentifier", "env");
0969:                Node v$45 = GNode.create("IndirectionExpression", v$44);
0970:                Node v$46 = GNode.create("IndirectComponentSelection", v$45,
0971:                        "DeleteLocalRef");
0972:                Node v$47 = GNode.create("PrimaryIdentifier", "env");
0973:                Node v$48 = GNode.create("PrimaryIdentifier", "cls");
0974:                Node v$49 = GNode.create("ExpressionList", v$47, v$48);
0975:                Node v$50 = GNode.create("FunctionCall", v$46, v$49);
0976:                Node v$51 = GNode.create("ExpressionStatement", v$50);
0977:                Node v$52 = GNode.create("PrimaryIdentifier", "tmp");
0978:                Node v$53 = GNode.create("ExpressionStatement", v$52);
0979:                Node v$54 = GNode
0980:                        .create("CompoundStatement", v$13, v$26,
0981:                                tmpDeclaration, v$43, v$51, abruptFlowCheck,
0982:                                v$53, null);
0983:                Node v$55 = GNode.create("StatementAsExpression", v$54);
0984:                return v$55;
0985:            }
0986:
0987:            /**
0988:             * Create a statement as expression.
0989:             *
0990:             * @param name The name.
0991:             * @param signature The signature.
0992:             * @param tmpDeclaration The tmpDeclaration.
0993:             * @param apiFunction The apiFunction.
0994:             * @param abruptFlowCheck The abruptFlowCheck.
0995:             * @return The generic node.
0996:             */
0997:            public Node javaInCExpression64(Node name, Node signature,
0998:                    Node tmpDeclaration, String apiFunction,
0999:                    Node abruptFlowCheck) {
1000:                Node v$1 = GNode.create("TypedefName", "jclass");
1001:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
1002:                Node v$3 = GNode.create("SimpleDeclarator", "cls");
1003:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
1004:                Node v$5 = GNode.create("IndirectionExpression", v$4);
1005:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1006:                        "GetObjectClass");
1007:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
1008:                Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
1009:                Node v$9 = GNode.create("ExpressionList", v$7, v$8);
1010:                Node v$10 = GNode.create("FunctionCall", v$6, v$9);
1011:                Node v$11 = GNode.create("InitializedDeclarator", null, v$3,
1012:                        null, null, v$10);
1013:                Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
1014:                Node v$13 = GNode.create("Declaration", null, v$2, v$12);
1015:                Node v$14 = GNode.create("TypedefName", "jmethodID");
1016:                Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
1017:                Node v$16 = GNode.create("SimpleDeclarator", "mid");
1018:                Node v$17 = GNode.create("PrimaryIdentifier", "env");
1019:                Node v$18 = GNode.create("IndirectionExpression", v$17);
1020:                Node v$19 = GNode.create("IndirectComponentSelection", v$18,
1021:                        "GetMethodID");
1022:                Node v$20 = GNode.create("PrimaryIdentifier", "env");
1023:                Node v$21 = GNode.create("PrimaryIdentifier", "cls");
1024:                Node v$22 = GNode.create("ExpressionList", v$20, v$21, name,
1025:                        signature);
1026:                Node v$23 = GNode.create("FunctionCall", v$19, v$22);
1027:                Node v$24 = GNode.create("InitializedDeclarator", null, v$16,
1028:                        null, null, v$23);
1029:                Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
1030:                Node v$26 = GNode.create("Declaration", null, v$15, v$25);
1031:                Node v$27 = GNode.create("PrimaryIdentifier", "tmp");
1032:                Node v$28 = GNode.create("PrimaryIdentifier", "env");
1033:                Node v$29 = GNode.create("IndirectionExpression", v$28);
1034:                Node v$30 = GNode.create("IndirectComponentSelection", v$29,
1035:                        apiFunction);
1036:                Node v$31 = GNode.create("PrimaryIdentifier", "env");
1037:                Node v$32 = GNode.create("PrimaryIdentifier", "jEnv");
1038:                Node v$33 = GNode.create("PrimaryIdentifier", "cls");
1039:                Node v$34 = GNode.create("PrimaryIdentifier", "mid");
1040:                Node v$35 = GNode.create("TypedefName", "jlong");
1041:                Node v$36 = GNode.create("SpecifierQualifierList", v$35);
1042:                Node v$37 = GNode.create("TypeName", v$36, null);
1043:                Node v$38 = GNode.create("PrimaryIdentifier", "pcEnv");
1044:                Node v$39 = GNode.create("CastExpression", v$37, v$38);
1045:                Node v$40 = GNode.create("ExpressionList", v$31, v$32, v$33,
1046:                        v$34, v$39);
1047:                Node v$41 = GNode.create("FunctionCall", v$30, v$40);
1048:                Node v$42 = GNode.create("AssignmentExpression", v$27, "=",
1049:                        v$41);
1050:                Node v$43 = GNode.create("ExpressionStatement", v$42);
1051:                Node v$44 = GNode.create("PrimaryIdentifier", "env");
1052:                Node v$45 = GNode.create("IndirectionExpression", v$44);
1053:                Node v$46 = GNode.create("IndirectComponentSelection", v$45,
1054:                        "DeleteLocalRef");
1055:                Node v$47 = GNode.create("PrimaryIdentifier", "env");
1056:                Node v$48 = GNode.create("PrimaryIdentifier", "cls");
1057:                Node v$49 = GNode.create("ExpressionList", v$47, v$48);
1058:                Node v$50 = GNode.create("FunctionCall", v$46, v$49);
1059:                Node v$51 = GNode.create("ExpressionStatement", v$50);
1060:                Node v$52 = GNode.create("PrimaryIdentifier", "tmp");
1061:                Node v$53 = GNode.create("ExpressionStatement", v$52);
1062:                Node v$54 = GNode
1063:                        .create("CompoundStatement", v$13, v$26,
1064:                                tmpDeclaration, v$43, v$51, abruptFlowCheck,
1065:                                v$53, null);
1066:                Node v$55 = GNode.create("StatementAsExpression", v$54);
1067:                return v$55;
1068:            }
1069:
1070:            /**
1071:             * Create a compound statement.
1072:             *
1073:             * @param name The name.
1074:             * @param signature The signature.
1075:             * @param apiFunction The apiFunction.
1076:             * @param abruptFlowCheck The abruptFlowCheck.
1077:             * @return The generic node.
1078:             */
1079:            public Node javaInCStatement32(Node name, Node signature,
1080:                    String apiFunction, Node abruptFlowCheck) {
1081:                Node v$1 = GNode.create("TypedefName", "jclass");
1082:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
1083:                Node v$3 = GNode.create("SimpleDeclarator", "cls");
1084:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
1085:                Node v$5 = GNode.create("IndirectionExpression", v$4);
1086:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1087:                        "GetObjectClass");
1088:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
1089:                Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
1090:                Node v$9 = GNode.create("ExpressionList", v$7, v$8);
1091:                Node v$10 = GNode.create("FunctionCall", v$6, v$9);
1092:                Node v$11 = GNode.create("InitializedDeclarator", null, v$3,
1093:                        null, null, v$10);
1094:                Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
1095:                Node v$13 = GNode.create("Declaration", null, v$2, v$12);
1096:                Node v$14 = GNode.create("TypedefName", "jmethodID");
1097:                Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
1098:                Node v$16 = GNode.create("SimpleDeclarator", "mid");
1099:                Node v$17 = GNode.create("PrimaryIdentifier", "env");
1100:                Node v$18 = GNode.create("IndirectionExpression", v$17);
1101:                Node v$19 = GNode.create("IndirectComponentSelection", v$18,
1102:                        "GetMethodID");
1103:                Node v$20 = GNode.create("PrimaryIdentifier", "env");
1104:                Node v$21 = GNode.create("PrimaryIdentifier", "cls");
1105:                Node v$22 = GNode.create("ExpressionList", v$20, v$21, name,
1106:                        signature);
1107:                Node v$23 = GNode.create("FunctionCall", v$19, v$22);
1108:                Node v$24 = GNode.create("InitializedDeclarator", null, v$16,
1109:                        null, null, v$23);
1110:                Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
1111:                Node v$26 = GNode.create("Declaration", null, v$15, v$25);
1112:                Node v$27 = GNode.create("PrimaryIdentifier", "env");
1113:                Node v$28 = GNode.create("IndirectionExpression", v$27);
1114:                Node v$29 = GNode.create("IndirectComponentSelection", v$28,
1115:                        apiFunction);
1116:                Node v$30 = GNode.create("PrimaryIdentifier", "env");
1117:                Node v$31 = GNode.create("PrimaryIdentifier", "jEnv");
1118:                Node v$32 = GNode.create("PrimaryIdentifier", "cls");
1119:                Node v$33 = GNode.create("PrimaryIdentifier", "mid");
1120:                Node v$34 = GNode.create("TypedefName", "jint");
1121:                Node v$35 = GNode.create("SpecifierQualifierList", v$34);
1122:                Node v$36 = GNode.create("TypeName", v$35, null);
1123:                Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
1124:                Node v$38 = GNode.create("CastExpression", v$36, v$37);
1125:                Node v$39 = GNode.create("ExpressionList", v$30, v$31, v$32,
1126:                        v$33, v$38);
1127:                Node v$40 = GNode.create("FunctionCall", v$29, v$39);
1128:                Node v$41 = GNode.create("ExpressionStatement", v$40);
1129:                Node v$42 = GNode.create("PrimaryIdentifier", "env");
1130:                Node v$43 = GNode.create("IndirectionExpression", v$42);
1131:                Node v$44 = GNode.create("IndirectComponentSelection", v$43,
1132:                        "DeleteLocalRef");
1133:                Node v$45 = GNode.create("PrimaryIdentifier", "env");
1134:                Node v$46 = GNode.create("PrimaryIdentifier", "cls");
1135:                Node v$47 = GNode.create("ExpressionList", v$45, v$46);
1136:                Node v$48 = GNode.create("FunctionCall", v$44, v$47);
1137:                Node v$49 = GNode.create("ExpressionStatement", v$48);
1138:                Node v$50 = GNode.create("CompoundStatement", v$13, v$26, v$41,
1139:                        v$49, abruptFlowCheck, null);
1140:                return v$50;
1141:            }
1142:
1143:            /**
1144:             * Create a compound statement.
1145:             *
1146:             * @param name The name.
1147:             * @param signature The signature.
1148:             * @param apiFunction The apiFunction.
1149:             * @param abruptFlowCheck The abruptFlowCheck.
1150:             * @return The generic node.
1151:             */
1152:            public Node javaInCStatement64(Node name, Node signature,
1153:                    String apiFunction, Node abruptFlowCheck) {
1154:                Node v$1 = GNode.create("TypedefName", "jclass");
1155:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
1156:                Node v$3 = GNode.create("SimpleDeclarator", "cls");
1157:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
1158:                Node v$5 = GNode.create("IndirectionExpression", v$4);
1159:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1160:                        "GetObjectClass");
1161:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
1162:                Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
1163:                Node v$9 = GNode.create("ExpressionList", v$7, v$8);
1164:                Node v$10 = GNode.create("FunctionCall", v$6, v$9);
1165:                Node v$11 = GNode.create("InitializedDeclarator", null, v$3,
1166:                        null, null, v$10);
1167:                Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
1168:                Node v$13 = GNode.create("Declaration", null, v$2, v$12);
1169:                Node v$14 = GNode.create("TypedefName", "jmethodID");
1170:                Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
1171:                Node v$16 = GNode.create("SimpleDeclarator", "mid");
1172:                Node v$17 = GNode.create("PrimaryIdentifier", "env");
1173:                Node v$18 = GNode.create("IndirectionExpression", v$17);
1174:                Node v$19 = GNode.create("IndirectComponentSelection", v$18,
1175:                        "GetMethodID");
1176:                Node v$20 = GNode.create("PrimaryIdentifier", "env");
1177:                Node v$21 = GNode.create("PrimaryIdentifier", "cls");
1178:                Node v$22 = GNode.create("ExpressionList", v$20, v$21, name,
1179:                        signature);
1180:                Node v$23 = GNode.create("FunctionCall", v$19, v$22);
1181:                Node v$24 = GNode.create("InitializedDeclarator", null, v$16,
1182:                        null, null, v$23);
1183:                Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
1184:                Node v$26 = GNode.create("Declaration", null, v$15, v$25);
1185:                Node v$27 = GNode.create("PrimaryIdentifier", "env");
1186:                Node v$28 = GNode.create("IndirectionExpression", v$27);
1187:                Node v$29 = GNode.create("IndirectComponentSelection", v$28,
1188:                        apiFunction);
1189:                Node v$30 = GNode.create("PrimaryIdentifier", "env");
1190:                Node v$31 = GNode.create("PrimaryIdentifier", "jEnv");
1191:                Node v$32 = GNode.create("PrimaryIdentifier", "cls");
1192:                Node v$33 = GNode.create("PrimaryIdentifier", "mid");
1193:                Node v$34 = GNode.create("TypedefName", "jlong");
1194:                Node v$35 = GNode.create("SpecifierQualifierList", v$34);
1195:                Node v$36 = GNode.create("TypeName", v$35, null);
1196:                Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
1197:                Node v$38 = GNode.create("CastExpression", v$36, v$37);
1198:                Node v$39 = GNode.create("ExpressionList", v$30, v$31, v$32,
1199:                        v$33, v$38);
1200:                Node v$40 = GNode.create("FunctionCall", v$29, v$39);
1201:                Node v$41 = GNode.create("ExpressionStatement", v$40);
1202:                Node v$42 = GNode.create("PrimaryIdentifier", "env");
1203:                Node v$43 = GNode.create("IndirectionExpression", v$42);
1204:                Node v$44 = GNode.create("IndirectComponentSelection", v$43,
1205:                        "DeleteLocalRef");
1206:                Node v$45 = GNode.create("PrimaryIdentifier", "env");
1207:                Node v$46 = GNode.create("PrimaryIdentifier", "cls");
1208:                Node v$47 = GNode.create("ExpressionList", v$45, v$46);
1209:                Node v$48 = GNode.create("FunctionCall", v$44, v$47);
1210:                Node v$49 = GNode.create("ExpressionStatement", v$48);
1211:                Node v$50 = GNode.create("CompoundStatement", v$13, v$26, v$41,
1212:                        v$49, abruptFlowCheck, null);
1213:                return v$50;
1214:            }
1215:
1216:            /**
1217:             * Create a statement as expression.
1218:             *
1219:             * @param apiFunction The apiFunction.
1220:             * @param cString The cString.
1221:             * @param abruptFlowCheck The abruptFlowCheck.
1222:             * @return The generic node.
1223:             */
1224:            public Node newJavaString(String apiFunction, Node cString,
1225:                    Node abruptFlowCheck) {
1226:                Node v$1 = GNode.create("TypedefName", "jstring");
1227:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
1228:                Node v$3 = GNode.create("SimpleDeclarator", "tmp");
1229:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
1230:                Node v$5 = GNode.create("IndirectionExpression", v$4);
1231:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1232:                        apiFunction);
1233:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
1234:                Node v$8 = GNode.create("ExpressionList", v$7, cString);
1235:                Node v$9 = GNode.create("FunctionCall", v$6, v$8);
1236:                Node v$10 = GNode.create("InitializedDeclarator", null, v$3,
1237:                        null, null, v$9);
1238:                Node v$11 = GNode.create("InitializedDeclaratorList", v$10);
1239:                Node v$12 = GNode.create("Declaration", null, v$2, v$11);
1240:                Node v$13 = GNode.create("PrimaryIdentifier", "tmp");
1241:                Node v$14 = GNode.create("ExpressionStatement", v$13);
1242:                Node v$15 = GNode.create("CompoundStatement", v$12,
1243:                        abruptFlowCheck, v$14, null);
1244:                Node v$16 = GNode.create("StatementAsExpression", v$15);
1245:                return v$16;
1246:            }
1247:
1248:            /**
1249:             * Create an expression statement.
1250:             *
1251:             * @param name The name.
1252:             * @param value The value.
1253:             * @return The generic node.
1254:             */
1255:            public Node setPCEnvField(String name, Node value) {
1256:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
1257:                Node v$2 = GNode
1258:                        .create("IndirectComponentSelection", v$1, name);
1259:                Node v$3 = GNode
1260:                        .create("AssignmentExpression", v$2, "=", value);
1261:                Node v$4 = GNode.create("ExpressionStatement", v$3);
1262:                return v$4;
1263:            }
1264:
1265:            /**
1266:             * Create a function call.
1267:             *
1268:             * @param javaString The javaString.
1269:             * @return The generic node.
1270:             */
1271:            public Node stringUTFLength1(Node javaString) {
1272:                Node v$1 = GNode.create("PrimaryIdentifier", "env");
1273:                Node v$2 = GNode.create("IndirectionExpression", v$1);
1274:                Node v$3 = GNode.create("IndirectComponentSelection", v$2,
1275:                        "GetStringUTFLength");
1276:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
1277:                Node v$5 = GNode.create("ExpressionList", v$4, javaString);
1278:                Node v$6 = GNode.create("FunctionCall", v$3, v$5);
1279:                return v$6;
1280:            }
1281:
1282:            /**
1283:             * Create a function call.
1284:             *
1285:             * @param javaString The javaString.
1286:             * @param start The start.
1287:             * @param length The length.
1288:             * @return The generic node.
1289:             */
1290:            public Node stringUTFLength3(Node javaString, Node start,
1291:                    Node length) {
1292:                Node v$1 = GNode
1293:                        .create("PrimaryIdentifier", "_stringUTFLength");
1294:                Node v$2 = GNode.create("PrimaryIdentifier", "env");
1295:                Node v$3 = GNode.create("ExpressionList", v$2, javaString,
1296:                        start, length);
1297:                Node v$4 = GNode.create("FunctionCall", v$1, v$3);
1298:                return v$4;
1299:            }
1300:
1301:            /**
1302:             * Create a compound statement.
1303:             *
1304:             * @param result The result.
1305:             * @param signature The signature.
1306:             * @param apiFunction The apiFunction.
1307:             * @param value The value.
1308:             * @param abrupt The abrupt.
1309:             * @param abruptFlowJump The abruptFlowJump.
1310:             * @return The generic node.
1311:             */
1312:            public Node returnResult(Node result, Node signature,
1313:                    String apiFunction, Node value, Node abrupt,
1314:                    Node abruptFlowJump) {
1315:                Node v$1 = GNode.create("TypedefName", "jclass");
1316:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
1317:                Node v$3 = GNode.create("SimpleDeclarator", "cls");
1318:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
1319:                Node v$5 = GNode.create("IndirectionExpression", v$4);
1320:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1321:                        "GetObjectClass");
1322:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
1323:                Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
1324:                Node v$9 = GNode.create("ExpressionList", v$7, v$8);
1325:                Node v$10 = GNode.create("FunctionCall", v$6, v$9);
1326:                Node v$11 = GNode.create("InitializedDeclarator", null, v$3,
1327:                        null, null, v$10);
1328:                Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
1329:                Node v$13 = GNode.create("Declaration", null, v$2, v$12);
1330:                Node v$14 = GNode.create("TypedefName", "jfieldID");
1331:                Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
1332:                Node v$16 = GNode.create("SimpleDeclarator", "fidResult");
1333:                Node v$17 = GNode.create("PrimaryIdentifier", "env");
1334:                Node v$18 = GNode.create("IndirectionExpression", v$17);
1335:                Node v$19 = GNode.create("IndirectComponentSelection", v$18,
1336:                        "GetFieldID");
1337:                Node v$20 = GNode.create("PrimaryIdentifier", "env");
1338:                Node v$21 = GNode.create("PrimaryIdentifier", "cls");
1339:                Node v$22 = GNode.create("ExpressionList", v$20, v$21, result,
1340:                        signature);
1341:                Node v$23 = GNode.create("FunctionCall", v$19, v$22);
1342:                Node v$24 = GNode.create("InitializedDeclarator", null, v$16,
1343:                        null, null, v$23);
1344:                Node v$25 = GNode.create("InitializedDeclaratorList", v$24);
1345:                Node v$26 = GNode.create("Declaration", null, v$15, v$25);
1346:                Node v$27 = GNode.create("PrimaryIdentifier", "env");
1347:                Node v$28 = GNode.create("IndirectionExpression", v$27);
1348:                Node v$29 = GNode.create("IndirectComponentSelection", v$28,
1349:                        apiFunction);
1350:                Node v$30 = GNode.create("PrimaryIdentifier", "env");
1351:                Node v$31 = GNode.create("PrimaryIdentifier", "jEnv");
1352:                Node v$32 = GNode.create("PrimaryIdentifier", "fidResult");
1353:                Node v$33 = GNode.create("ExpressionList", v$30, v$31, v$32,
1354:                        value);
1355:                Node v$34 = GNode.create("FunctionCall", v$29, v$33);
1356:                Node v$35 = GNode.create("ExpressionStatement", v$34);
1357:                Node v$36 = GNode.create("TypedefName", "jfieldID");
1358:                Node v$37 = GNode.create("DeclarationSpecifiers", v$36);
1359:                Node v$38 = GNode.create("SimpleDeclarator", "fidAbrupt");
1360:                Node v$39 = GNode.create("PrimaryIdentifier", "env");
1361:                Node v$40 = GNode.create("IndirectionExpression", v$39);
1362:                Node v$41 = GNode.create("IndirectComponentSelection", v$40,
1363:                        "GetFieldID");
1364:                Node v$42 = GNode.create("PrimaryIdentifier", "env");
1365:                Node v$43 = GNode.create("PrimaryIdentifier", "cls");
1366:                Node v$44 = GNode.create("StringConstant", "\"Z\"");
1367:                Node v$45 = GNode.create("ExpressionList", v$42, v$43, abrupt,
1368:                        v$44);
1369:                Node v$46 = GNode.create("FunctionCall", v$41, v$45);
1370:                Node v$47 = GNode.create("InitializedDeclarator", null, v$38,
1371:                        null, null, v$46);
1372:                Node v$48 = GNode.create("InitializedDeclaratorList", v$47);
1373:                Node v$49 = GNode.create("Declaration", null, v$37, v$48);
1374:                Node v$50 = GNode.create("PrimaryIdentifier", "env");
1375:                Node v$51 = GNode.create("IndirectionExpression", v$50);
1376:                Node v$52 = GNode.create("IndirectComponentSelection", v$51,
1377:                        "SetBooleanField");
1378:                Node v$53 = GNode.create("PrimaryIdentifier", "env");
1379:                Node v$54 = GNode.create("PrimaryIdentifier", "jEnv");
1380:                Node v$55 = GNode.create("PrimaryIdentifier", "fidAbrupt");
1381:                Node v$56 = GNode.create("IntegerConstant", "1");
1382:                Node v$57 = GNode.create("ExpressionList", v$53, v$54, v$55,
1383:                        v$56);
1384:                Node v$58 = GNode.create("FunctionCall", v$52, v$57);
1385:                Node v$59 = GNode.create("ExpressionStatement", v$58);
1386:                Node v$60 = GNode.create("CompoundStatement", v$13, v$26, v$35,
1387:                        v$49, v$59, abruptFlowJump, null);
1388:                return v$60;
1389:            }
1390:
1391:            /**
1392:             * Create a compound statement.
1393:             *
1394:             * @param abrupt The abrupt.
1395:             * @param abruptFlowJump The abruptFlowJump.
1396:             * @return The generic node.
1397:             */
1398:            public Node returnVoid(Node abrupt, Node abruptFlowJump) {
1399:                Node v$1 = GNode.create("TypedefName", "jclass");
1400:                Node v$2 = GNode.create("DeclarationSpecifiers", v$1);
1401:                Node v$3 = GNode.create("SimpleDeclarator", "cls");
1402:                Node v$4 = GNode.create("PrimaryIdentifier", "env");
1403:                Node v$5 = GNode.create("IndirectionExpression", v$4);
1404:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1405:                        "GetObjectClass");
1406:                Node v$7 = GNode.create("PrimaryIdentifier", "env");
1407:                Node v$8 = GNode.create("PrimaryIdentifier", "jEnv");
1408:                Node v$9 = GNode.create("ExpressionList", v$7, v$8);
1409:                Node v$10 = GNode.create("FunctionCall", v$6, v$9);
1410:                Node v$11 = GNode.create("InitializedDeclarator", null, v$3,
1411:                        null, null, v$10);
1412:                Node v$12 = GNode.create("InitializedDeclaratorList", v$11);
1413:                Node v$13 = GNode.create("Declaration", null, v$2, v$12);
1414:                Node v$14 = GNode.create("TypedefName", "jfieldID");
1415:                Node v$15 = GNode.create("DeclarationSpecifiers", v$14);
1416:                Node v$16 = GNode.create("SimpleDeclarator", "fidAbrupt");
1417:                Node v$17 = GNode.create("PrimaryIdentifier", "env");
1418:                Node v$18 = GNode.create("IndirectionExpression", v$17);
1419:                Node v$19 = GNode.create("IndirectComponentSelection", v$18,
1420:                        "GetFieldID");
1421:                Node v$20 = GNode.create("PrimaryIdentifier", "env");
1422:                Node v$21 = GNode.create("PrimaryIdentifier", "cls");
1423:                Node v$22 = GNode.create("StringConstant", "\"Z\"");
1424:                Node v$23 = GNode.create("ExpressionList", v$20, v$21, abrupt,
1425:                        v$22);
1426:                Node v$24 = GNode.create("FunctionCall", v$19, v$23);
1427:                Node v$25 = GNode.create("InitializedDeclarator", null, v$16,
1428:                        null, null, v$24);
1429:                Node v$26 = GNode.create("InitializedDeclaratorList", v$25);
1430:                Node v$27 = GNode.create("Declaration", null, v$15, v$26);
1431:                Node v$28 = GNode.create("PrimaryIdentifier", "env");
1432:                Node v$29 = GNode.create("IndirectionExpression", v$28);
1433:                Node v$30 = GNode.create("IndirectComponentSelection", v$29,
1434:                        "SetBooleanField");
1435:                Node v$31 = GNode.create("PrimaryIdentifier", "env");
1436:                Node v$32 = GNode.create("PrimaryIdentifier", "jEnv");
1437:                Node v$33 = GNode.create("PrimaryIdentifier", "fidAbrupt");
1438:                Node v$34 = GNode.create("IntegerConstant", "1");
1439:                Node v$35 = GNode.create("ExpressionList", v$31, v$32, v$33,
1440:                        v$34);
1441:                Node v$36 = GNode.create("FunctionCall", v$30, v$35);
1442:                Node v$37 = GNode.create("ExpressionStatement", v$36);
1443:                Node v$38 = GNode.create("CompoundStatement", v$13, v$27, v$37,
1444:                        abruptFlowJump, null);
1445:                return v$38;
1446:            }
1447:
1448:            /**
1449:             * Create a compound statement.
1450:             *
1451:             * @param jaField The jaField.
1452:             * @param init The init.
1453:             * @param releaseAbrupt The releaseAbrupt.
1454:             * @param caDecl The caDecl.
1455:             * @param caField The caField.
1456:             * @param getRegion The getRegion.
1457:             * @param body The body.
1458:             * @param label The label.
1459:             * @param setRegion The setRegion.
1460:             * @param abruptFlowCheck The abruptFlowCheck.
1461:             * @return The generic node.
1462:             */
1463:            public Node withPrimitiveArray(String jaField, Node init,
1464:                    String releaseAbrupt, Node caDecl, String caField,
1465:                    String getRegion, Node body, String label,
1466:                    String setRegion, Node abruptFlowCheck) {
1467:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
1468:                Node v$2 = GNode.create("IndirectComponentSelection", v$1,
1469:                        jaField);
1470:                Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
1471:                Node v$4 = GNode.create("ExpressionStatement", v$3);
1472:                Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
1473:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1474:                        releaseAbrupt);
1475:                Node v$7 = GNode.create("IntegerConstant", "0");
1476:                Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
1477:                Node v$9 = GNode.create("ExpressionStatement", v$8);
1478:                Node v$10 = GNode.create("TypedefName", "jint");
1479:                Node v$11 = GNode.create("DeclarationSpecifiers", v$10);
1480:                Node v$12 = GNode.create("SimpleDeclarator", "length");
1481:                Node v$13 = GNode.create("PrimaryIdentifier", "env");
1482:                Node v$14 = GNode.create("IndirectionExpression", v$13);
1483:                Node v$15 = GNode.create("IndirectComponentSelection", v$14,
1484:                        "GetArrayLength");
1485:                Node v$16 = GNode.create("PrimaryIdentifier", "env");
1486:                Node v$17 = GNode.create("PrimaryIdentifier", "pcEnv");
1487:                Node v$18 = GNode.create("IndirectComponentSelection", v$17,
1488:                        jaField);
1489:                Node v$19 = GNode.create("ExpressionList", v$16, v$18);
1490:                Node v$20 = GNode.create("FunctionCall", v$15, v$19);
1491:                Node v$21 = GNode.create("InitializedDeclarator", null, v$12,
1492:                        null, null, v$20);
1493:                Node v$22 = GNode.create("InitializedDeclaratorList", v$21);
1494:                Node v$23 = GNode.create("Declaration", null, v$11, v$22);
1495:                Node v$24 = GNode.create("PrimaryIdentifier", "pcEnv");
1496:                Node v$25 = GNode.create("IndirectComponentSelection", v$24,
1497:                        caField);
1498:                Node v$26 = GNode.create("PrimaryIdentifier", "ca");
1499:                Node v$27 = GNode.create("AssignmentExpression", v$25, "=",
1500:                        v$26);
1501:                Node v$28 = GNode.create("ExpressionStatement", v$27);
1502:                Node v$29 = GNode.create("PrimaryIdentifier", "env");
1503:                Node v$30 = GNode.create("IndirectionExpression", v$29);
1504:                Node v$31 = GNode.create("IndirectComponentSelection", v$30,
1505:                        getRegion);
1506:                Node v$32 = GNode.create("PrimaryIdentifier", "env");
1507:                Node v$33 = GNode.create("PrimaryIdentifier", "pcEnv");
1508:                Node v$34 = GNode.create("IndirectComponentSelection", v$33,
1509:                        jaField);
1510:                Node v$35 = GNode.create("IntegerConstant", "0");
1511:                Node v$36 = GNode.create("PrimaryIdentifier", "length");
1512:                Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
1513:                Node v$38 = GNode.create("IndirectComponentSelection", v$37,
1514:                        caField);
1515:                Node v$39 = GNode.create("ExpressionList", v$32, v$34, v$35,
1516:                        v$36, v$38);
1517:                Node v$40 = GNode.create("FunctionCall", v$31, v$39);
1518:                Node v$41 = GNode.create("ExpressionStatement", v$40);
1519:                Node v$42 = GNode.create("PrimaryIdentifier", label);
1520:                Node v$43 = GNode.create("GotoStatement", null, v$42);
1521:                Node v$44 = GNode.create("NamedLabel", label, null);
1522:                Node v$45 = GNode.create("IntegerConstant", "2");
1523:                Node v$46 = GNode.create("PrimaryIdentifier", "pcEnv");
1524:                Node v$47 = GNode.create("IndirectComponentSelection", v$46,
1525:                        releaseAbrupt);
1526:                Node v$48 = GNode
1527:                        .create("EqualityExpression", v$45, "!=", v$47);
1528:                Node v$49 = GNode.create("PrimaryIdentifier", "env");
1529:                Node v$50 = GNode.create("IndirectionExpression", v$49);
1530:                Node v$51 = GNode.create("IndirectComponentSelection", v$50,
1531:                        setRegion);
1532:                Node v$52 = GNode.create("PrimaryIdentifier", "env");
1533:                Node v$53 = GNode.create("PrimaryIdentifier", "pcEnv");
1534:                Node v$54 = GNode.create("IndirectComponentSelection", v$53,
1535:                        jaField);
1536:                Node v$55 = GNode.create("IntegerConstant", "0");
1537:                Node v$56 = GNode.create("PrimaryIdentifier", "length");
1538:                Node v$57 = GNode.create("PrimaryIdentifier", "pcEnv");
1539:                Node v$58 = GNode.create("IndirectComponentSelection", v$57,
1540:                        caField);
1541:                Node v$59 = GNode.create("ExpressionList", v$52, v$54, v$55,
1542:                        v$56, v$58);
1543:                Node v$60 = GNode.create("FunctionCall", v$51, v$59);
1544:                Node v$61 = GNode.create("ExpressionStatement", v$60);
1545:                Node v$62 = GNode.create("IfStatement", v$48, v$61);
1546:                Node v$63 = GNode.create("LabeledStatement", v$44, v$62);
1547:                Node v$64 = GNode.create("CompoundStatement", v$23, caDecl,
1548:                        v$28, v$41, body, v$43, v$63, null);
1549:                Node v$65 = GNode.create("CompoundStatement", v$4, v$9, v$64,
1550:                        abruptFlowCheck, null);
1551:                return v$65;
1552:            }
1553:
1554:            /**
1555:             * Create a compound statement.
1556:             *
1557:             * @param jaField The jaField.
1558:             * @param init The init.
1559:             * @param releaseAbrupt The releaseAbrupt.
1560:             * @param caField The caField.
1561:             * @param body The body.
1562:             * @param label The label.
1563:             * @param abruptFlowCheck The abruptFlowCheck.
1564:             * @return The generic node.
1565:             */
1566:            public Node withReferenceArray(String jaField, Node init,
1567:                    String releaseAbrupt, String caField, Node body,
1568:                    String label, Node abruptFlowCheck) {
1569:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
1570:                Node v$2 = GNode.create("IndirectComponentSelection", v$1,
1571:                        jaField);
1572:                Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
1573:                Node v$4 = GNode.create("ExpressionStatement", v$3);
1574:                Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
1575:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1576:                        releaseAbrupt);
1577:                Node v$7 = GNode.create("IntegerConstant", "0");
1578:                Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
1579:                Node v$9 = GNode.create("ExpressionStatement", v$8);
1580:                Node v$10 = GNode.create("TypedefName", "jsize");
1581:                Node v$11 = GNode.create("DeclarationSpecifiers", v$10);
1582:                Node v$12 = GNode.create("SimpleDeclarator", "i");
1583:                Node v$13 = GNode.create("InitializedDeclarator", null, v$12,
1584:                        null, null, null);
1585:                Node v$14 = GNode.create("InitializedDeclaratorList", v$13);
1586:                Node v$15 = GNode.create("Declaration", null, v$11, v$14);
1587:                Node v$16 = GNode.create("TypedefName", "jint");
1588:                Node v$17 = GNode.create("DeclarationSpecifiers", v$16);
1589:                Node v$18 = GNode.create("SimpleDeclarator", "length");
1590:                Node v$19 = GNode.create("PrimaryIdentifier", "env");
1591:                Node v$20 = GNode.create("IndirectionExpression", v$19);
1592:                Node v$21 = GNode.create("IndirectComponentSelection", v$20,
1593:                        "GetArrayLength");
1594:                Node v$22 = GNode.create("PrimaryIdentifier", "env");
1595:                Node v$23 = GNode.create("PrimaryIdentifier", "pcEnv");
1596:                Node v$24 = GNode.create("IndirectComponentSelection", v$23,
1597:                        jaField);
1598:                Node v$25 = GNode.create("ExpressionList", v$22, v$24);
1599:                Node v$26 = GNode.create("FunctionCall", v$21, v$25);
1600:                Node v$27 = GNode.create("InitializedDeclarator", null, v$18,
1601:                        null, null, v$26);
1602:                Node v$28 = GNode.create("InitializedDeclaratorList", v$27);
1603:                Node v$29 = GNode.create("Declaration", null, v$17, v$28);
1604:                Node v$30 = GNode.create("TypedefName", "jobject");
1605:                Node v$31 = GNode.create("DeclarationSpecifiers", v$30);
1606:                Node v$32 = GNode.create("SimpleDeclarator", "ca");
1607:                Node v$33 = GNode.create("ArrayQualifierList", false);
1608:                Node v$34 = GNode.create("PrimaryIdentifier", "length");
1609:                Node v$35 = GNode.create("ArrayDeclarator", v$32, v$33, v$34);
1610:                Node v$36 = GNode.create("InitializedDeclarator", null, v$35,
1611:                        null, null, null);
1612:                Node v$37 = GNode.create("InitializedDeclaratorList", v$36);
1613:                Node v$38 = GNode.create("Declaration", null, v$31, v$37);
1614:                Node v$39 = GNode.create("PrimaryIdentifier", "pcEnv");
1615:                Node v$40 = GNode.create("IndirectComponentSelection", v$39,
1616:                        caField);
1617:                Node v$41 = GNode.create("PrimaryIdentifier", "ca");
1618:                Node v$42 = GNode.create("AssignmentExpression", v$40, "=",
1619:                        v$41);
1620:                Node v$43 = GNode.create("ExpressionStatement", v$42);
1621:                Node v$44 = GNode.create("PrimaryIdentifier", "i");
1622:                Node v$45 = GNode.create("IntegerConstant", "0");
1623:                Node v$46 = GNode.create("AssignmentExpression", v$44, "=",
1624:                        v$45);
1625:                Node v$47 = GNode.create("PrimaryIdentifier", "i");
1626:                Node v$48 = GNode.create("PrimaryIdentifier", "length");
1627:                Node v$49 = GNode.create("RelationalExpression", v$47, "<",
1628:                        v$48);
1629:                Node v$50 = GNode.create("PrimaryIdentifier", "i");
1630:                Node v$51 = GNode.create("PostincrementExpression", v$50);
1631:                Node v$52 = GNode.create("PrimaryIdentifier", "ca");
1632:                Node v$53 = GNode.create("PrimaryIdentifier", "i");
1633:                Node v$54 = GNode.create("SubscriptExpression", v$52, v$53);
1634:                Node v$55 = GNode.create("PrimaryIdentifier", "env");
1635:                Node v$56 = GNode.create("IndirectionExpression", v$55);
1636:                Node v$57 = GNode.create("IndirectComponentSelection", v$56,
1637:                        "GetObjectArrayElement");
1638:                Node v$58 = GNode.create("PrimaryIdentifier", "env");
1639:                Node v$59 = GNode.create("PrimaryIdentifier", "pcEnv");
1640:                Node v$60 = GNode.create("IndirectComponentSelection", v$59,
1641:                        jaField);
1642:                Node v$61 = GNode.create("PrimaryIdentifier", "i");
1643:                Node v$62 = GNode.create("ExpressionList", v$58, v$60, v$61);
1644:                Node v$63 = GNode.create("FunctionCall", v$57, v$62);
1645:                Node v$64 = GNode.create("AssignmentExpression", v$54, "=",
1646:                        v$63);
1647:                Node v$65 = GNode.create("ExpressionStatement", v$64);
1648:                Node v$66 = GNode
1649:                        .create("ForStatement", v$46, v$49, v$51, v$65);
1650:                Node v$67 = GNode.create("PrimaryIdentifier", label);
1651:                Node v$68 = GNode.create("GotoStatement", null, v$67);
1652:                Node v$69 = GNode.create("NamedLabel", label, null);
1653:                Node v$70 = GNode.create("IntegerConstant", "2");
1654:                Node v$71 = GNode.create("PrimaryIdentifier", "pcEnv");
1655:                Node v$72 = GNode.create("IndirectComponentSelection", v$71,
1656:                        releaseAbrupt);
1657:                Node v$73 = GNode
1658:                        .create("EqualityExpression", v$70, "!=", v$72);
1659:                Node v$74 = GNode.create("PrimaryIdentifier", "i");
1660:                Node v$75 = GNode.create("IntegerConstant", "0");
1661:                Node v$76 = GNode.create("AssignmentExpression", v$74, "=",
1662:                        v$75);
1663:                Node v$77 = GNode.create("PrimaryIdentifier", "i");
1664:                Node v$78 = GNode.create("PrimaryIdentifier", "length");
1665:                Node v$79 = GNode.create("RelationalExpression", v$77, "<",
1666:                        v$78);
1667:                Node v$80 = GNode.create("PrimaryIdentifier", "i");
1668:                Node v$81 = GNode.create("PostincrementExpression", v$80);
1669:                Node v$82 = GNode.create("PrimaryIdentifier", "env");
1670:                Node v$83 = GNode.create("IndirectionExpression", v$82);
1671:                Node v$84 = GNode.create("IndirectComponentSelection", v$83,
1672:                        "SetObjectArrayElement");
1673:                Node v$85 = GNode.create("PrimaryIdentifier", "env");
1674:                Node v$86 = GNode.create("PrimaryIdentifier", "pcEnv");
1675:                Node v$87 = GNode.create("IndirectComponentSelection", v$86,
1676:                        jaField);
1677:                Node v$88 = GNode.create("PrimaryIdentifier", "i");
1678:                Node v$89 = GNode.create("PrimaryIdentifier", "ca");
1679:                Node v$90 = GNode.create("PrimaryIdentifier", "i");
1680:                Node v$91 = GNode.create("SubscriptExpression", v$89, v$90);
1681:                Node v$92 = GNode.create("ExpressionList", v$85, v$87, v$88,
1682:                        v$91);
1683:                Node v$93 = GNode.create("FunctionCall", v$84, v$92);
1684:                Node v$94 = GNode.create("ExpressionStatement", v$93);
1685:                Node v$95 = GNode.create("PrimaryIdentifier", "env");
1686:                Node v$96 = GNode.create("IndirectionExpression", v$95);
1687:                Node v$97 = GNode.create("IndirectComponentSelection", v$96,
1688:                        "ExceptionCheck");
1689:                Node v$98 = GNode.create("PrimaryIdentifier", "env");
1690:                Node v$99 = GNode.create("ExpressionList", v$98);
1691:                Node v$100 = GNode.create("FunctionCall", v$97, v$99);
1692:                Node v$101 = GNode.create("BreakStatement", false);
1693:                Node v$102 = GNode.create("IfStatement", v$100, v$101);
1694:                Node v$103 = GNode.create("CompoundStatement", v$94, v$102,
1695:                        null);
1696:                Node v$104 = GNode.create("ForStatement", v$76, v$79, v$81,
1697:                        v$103);
1698:                Node v$105 = GNode.create("IfStatement", v$73, v$104);
1699:                Node v$106 = GNode.create("LabeledStatement", v$69, v$105);
1700:                Node v$107 = GNode.create("CompoundStatement", 9).add(v$15)
1701:                        .add(v$29).add(v$38).add(v$43).add(v$66).add(body).add(
1702:                                v$68).add(v$106).add(null);
1703:                Node v$108 = GNode.create("CompoundStatement", v$4, v$9, v$107,
1704:                        abruptFlowCheck, null);
1705:                return v$108;
1706:            }
1707:
1708:            /**
1709:             * Create a compound statement.
1710:             *
1711:             * @param jsField The jsField.
1712:             * @param init The init.
1713:             * @param releaseAbrupt The releaseAbrupt.
1714:             * @param csField The csField.
1715:             * @param body The body.
1716:             * @param label The label.
1717:             * @param abruptFlowCheck The abruptFlowCheck.
1718:             * @return The generic node.
1719:             */
1720:            public Node withString(String jsField, Node init,
1721:                    String releaseAbrupt, String csField, Node body,
1722:                    String label, Node abruptFlowCheck) {
1723:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
1724:                Node v$2 = GNode.create("IndirectComponentSelection", v$1,
1725:                        jsField);
1726:                Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
1727:                Node v$4 = GNode.create("ExpressionStatement", v$3);
1728:                Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
1729:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1730:                        releaseAbrupt);
1731:                Node v$7 = GNode.create("IntegerConstant", "0");
1732:                Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
1733:                Node v$9 = GNode.create("ExpressionStatement", v$8);
1734:                Node v$10 = GNode.create("PrimaryIdentifier", "pcEnv");
1735:                Node v$11 = GNode.create("IndirectComponentSelection", v$10,
1736:                        csField);
1737:                Node v$12 = GNode.create("TypedefName", "jchar");
1738:                Node v$13 = GNode.create("SpecifierQualifierList", v$12);
1739:                Node v$14 = GNode.create("TypeQualifierList", false);
1740:                Node v$15 = GNode.create("Pointer", v$14, null);
1741:                Node v$16 = GNode.create("AbstractDeclarator", v$15, null);
1742:                Node v$17 = GNode.create("TypeName", v$13, v$16);
1743:                Node v$18 = GNode.create("PrimaryIdentifier", "env");
1744:                Node v$19 = GNode.create("IndirectionExpression", v$18);
1745:                Node v$20 = GNode.create("IndirectComponentSelection", v$19,
1746:                        "GetStringChars");
1747:                Node v$21 = GNode.create("PrimaryIdentifier", "env");
1748:                Node v$22 = GNode.create("PrimaryIdentifier", "pcEnv");
1749:                Node v$23 = GNode.create("IndirectComponentSelection", v$22,
1750:                        jsField);
1751:                Node v$24 = GNode.create("IntegerConstant", "0");
1752:                Node v$25 = GNode.create("ExpressionList", v$21, v$23, v$24);
1753:                Node v$26 = GNode.create("FunctionCall", v$20, v$25);
1754:                Node v$27 = GNode.create("CastExpression", v$17, v$26);
1755:                Node v$28 = GNode.create("AssignmentExpression", v$11, "=",
1756:                        v$27);
1757:                Node v$29 = GNode.create("ExpressionStatement", v$28);
1758:                Node v$30 = GNode.create("PrimaryIdentifier", label);
1759:                Node v$31 = GNode.create("GotoStatement", null, v$30);
1760:                Node v$32 = GNode.create("NamedLabel", label, null);
1761:                Node v$33 = GNode.create("PrimaryIdentifier", "env");
1762:                Node v$34 = GNode.create("IndirectionExpression", v$33);
1763:                Node v$35 = GNode.create("IndirectComponentSelection", v$34,
1764:                        "ReleaseStringChars");
1765:                Node v$36 = GNode.create("PrimaryIdentifier", "env");
1766:                Node v$37 = GNode.create("PrimaryIdentifier", "pcEnv");
1767:                Node v$38 = GNode.create("IndirectComponentSelection", v$37,
1768:                        jsField);
1769:                Node v$39 = GNode.create("PrimaryIdentifier", "pcEnv");
1770:                Node v$40 = GNode.create("IndirectComponentSelection", v$39,
1771:                        csField);
1772:                Node v$41 = GNode.create("ExpressionList", v$36, v$38, v$40);
1773:                Node v$42 = GNode.create("FunctionCall", v$35, v$41);
1774:                Node v$43 = GNode.create("ExpressionStatement", v$42);
1775:                Node v$44 = GNode.create("LabeledStatement", v$32, v$43);
1776:                Node v$45 = GNode.create("CompoundStatement", v$4, v$9, v$29,
1777:                        body, v$31, v$44, abruptFlowCheck, null);
1778:                return v$45;
1779:            }
1780:
1781:            /**
1782:             * Create a compound statement.
1783:             *
1784:             * @param jsField The jsField.
1785:             * @param init The init.
1786:             * @param releaseAbrupt The releaseAbrupt.
1787:             * @param csField The csField.
1788:             * @param body The body.
1789:             * @param label The label.
1790:             * @param abruptFlowCheck The abruptFlowCheck.
1791:             * @return The generic node.
1792:             */
1793:            public Node withStringUTF(String jsField, Node init,
1794:                    String releaseAbrupt, String csField, Node body,
1795:                    String label, Node abruptFlowCheck) {
1796:                Node v$1 = GNode.create("PrimaryIdentifier", "pcEnv");
1797:                Node v$2 = GNode.create("IndirectComponentSelection", v$1,
1798:                        jsField);
1799:                Node v$3 = GNode.create("AssignmentExpression", v$2, "=", init);
1800:                Node v$4 = GNode.create("ExpressionStatement", v$3);
1801:                Node v$5 = GNode.create("PrimaryIdentifier", "pcEnv");
1802:                Node v$6 = GNode.create("IndirectComponentSelection", v$5,
1803:                        releaseAbrupt);
1804:                Node v$7 = GNode.create("IntegerConstant", "0");
1805:                Node v$8 = GNode.create("AssignmentExpression", v$6, "=", v$7);
1806:                Node v$9 = GNode.create("ExpressionStatement", v$8);
1807:                Node v$10 = GNode.create("PrimaryIdentifier", "pcEnv");
1808:                Node v$11 = GNode.create("IndirectComponentSelection", v$10,
1809:                        csField);
1810:                Node v$12 = GNode.create("TypedefName", "jbyte");
1811:                Node v$13 = GNode.create("SpecifierQualifierList", v$12);
1812:                Node v$14 = GNode.create("TypeQualifierList", false);
1813:                Node v$15 = GNode.create("Pointer", v$14, null);
1814:                Node v$16 = GNode.create("AbstractDeclarator", v$15, null);
1815:                Node v$17 = GNode.create("TypeName", v$13, v$16);
1816:                Node v$18 = GNode.create("PrimaryIdentifier", "env");
1817:                Node v$19 = GNode.create("IndirectionExpression", v$18);
1818:                Node v$20 = GNode.create("IndirectComponentSelection", v$19,
1819:                        "GetStringUTFChars");
1820:                Node v$21 = GNode.create("PrimaryIdentifier", "env");
1821:                Node v$22 = GNode.create("PrimaryIdentifier", "pcEnv");
1822:                Node v$23 = GNode.create("IndirectComponentSelection", v$22,
1823:                        jsField);
1824:                Node v$24 = GNode.create("IntegerConstant", "0");
1825:                Node v$25 = GNode.create("ExpressionList", v$21, v$23, v$24);
1826:                Node v$26 = GNode.create("FunctionCall", v$20, v$25);
1827:                Node v$27 = GNode.create("CastExpression", v$17, v$26);
1828:                Node v$28 = GNode.create("AssignmentExpression", v$11, "=",
1829:                        v$27);
1830:                Node v$29 = GNode.create("ExpressionStatement", v$28);
1831:                Node v$30 = GNode.create("NamedLabel", label, null);
1832:                Node v$31 = GNode.create("PrimaryIdentifier", "env");
1833:                Node v$32 = GNode.create("IndirectionExpression", v$31);
1834:                Node v$33 = GNode.create("IndirectComponentSelection", v$32,
1835:                        "ReleaseStringUTFChars");
1836:                Node v$34 = GNode.create("PrimaryIdentifier", "env");
1837:                Node v$35 = GNode.create("PrimaryIdentifier", "pcEnv");
1838:                Node v$36 = GNode.create("IndirectComponentSelection", v$35,
1839:                        jsField);
1840:                Node v$37 = GNode.create("Char", false);
1841:                Node v$38 = GNode.create("SpecifierQualifierList", v$37);
1842:                Node v$39 = GNode.create("TypeQualifierList", false);
1843:                Node v$40 = GNode.create("Pointer", v$39, null);
1844:                Node v$41 = GNode.create("AbstractDeclarator", v$40, null);
1845:                Node v$42 = GNode.create("TypeName", v$38, v$41);
1846:                Node v$43 = GNode.create("PrimaryIdentifier", "pcEnv");
1847:                Node v$44 = GNode.create("IndirectComponentSelection", v$43,
1848:                        csField);
1849:                Node v$45 = GNode.create("CastExpression", v$42, v$44);
1850:                Node v$46 = GNode.create("ExpressionList", v$34, v$36, v$45);
1851:                Node v$47 = GNode.create("FunctionCall", v$33, v$46);
1852:                Node v$48 = GNode.create("ExpressionStatement", v$47);
1853:                Node v$49 = GNode.create("LabeledStatement", v$30, v$48);
1854:                Node v$50 = GNode.create("CompoundStatement", v$4, v$9, v$29,
1855:                        body, v$49, abruptFlowCheck, null);
1856:                return v$50;
1857:            }
1858:
1859:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.