// ===========================================================================
// This file has been generated by
// xtc Factory Factory, version 1.13.3,
// (C) 2004-2008 Robert Grimm,
// on Saturday, March 8, 2008 at 2:02:11 AM.
// Edit at your own risk.
// ===========================================================================
package xtc.typical;
import java.util.List;
import xtc.tree.Node;
import xtc.tree.GNode;
/**
* Node factory <code>xtc.typical.TreeFactory</code>.
*
* <p />This class has been generated by
* the xtc Factory Factory, version 1.13.3,
* (C) 2004-2008 Robert Grimm.
*/
public class TreeFactory {
/** Create a new node factory. */
public TreeFactory() {
// Nothing to do.
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node addInt(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "addInt");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node addFloat64(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "addFloat64");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create an expression statement.
*
* @param arg The arg.
* @return The generic node.
*/
public Node addScopeNode(Node arg) {
Node v$1 = GNode.create("PrimaryIdentifier", "processScopeNodes");
Node v$2 = GNode.create("Arguments", arg);
Node v$3 = GNode.create("CallExpression", v$1, null, "add", v$2);
Node v$4 = GNode.create("ExpressionStatement", v$3);
return v$4;
}
/**
* Create a new class expression.
*
* @param statement The statement.
* @return The generic node.
*/
public Node ancestorExpression(Node statement) {
Node v$1 = GNode.create("QualifiedIdentifier", "Analyzer", "NodeMatch");
Node v$2 = GNode.create("Arguments", false);
Node v$3 = GNode.create("Modifier", "public");
Node v$4 = GNode.create("Modifiers", v$3);
Node v$5 = GNode.create("QualifiedIdentifier", "Boolean");
Node v$6 = GNode.create("Type", v$5, null);
Node v$7 = GNode.create("Modifiers", false);
Node v$8 = GNode.create("QualifiedIdentifier", "Node");
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("FormalParameter", v$7, v$9, null, "m", null);
Node v$11 = GNode.create("FormalParameters", v$10);
Node v$12 = GNode.create("Block", statement);
Node v$13 = GNode.create("MethodDeclaration", v$4, null, v$6, "apply",
v$11, null, null, v$12);
Node v$14 = GNode.create("ClassBody", v$13);
Node v$15 = GNode.create("NewClassExpression", null, null, v$1, v$2,
v$14);
return v$15;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node and(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "and");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a conditional statement.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node annotateType(Node argument1, Node argument2) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", argument1);
Node v$3 = GNode.create("StringLiteral", "\"__type\"");
Node v$4 = GNode.create("Arguments", v$3, argument2);
Node v$5 = GNode.create("CallExpression", argument1, null, "setProperty",
v$4);
Node v$6 = GNode.create("ExpressionStatement", v$5);
Node v$7 = GNode.create("Block", v$6);
Node v$8 = GNode.create("ConditionalStatement", v$2, v$7, null);
return v$8;
}
/**
* Create a call expression.
*
* @param name The name.
* @param argument The argument.
* @return The generic node.
*/
public Node appendPair(Node name, Node argument) {
Node v$1 = GNode.create("Arguments", argument);
Node v$2 = GNode.create("CallExpression", name, null, "append", v$1);
return v$2;
}
/**
* Create a call expression.
*
* @param first The first.
* @param second The second.
* @return The generic node.
*/
public Node appendWrapper(Node first, Node second) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("Arguments", first, second);
Node v$3 = GNode.create("CallExpression", v$1, null, "wrapAppend", v$2);
return v$3;
}
/**
* Create a call expression.
*
* @param name The name.
* @param arguments The arguments.
* @return The generic node.
*/
public Node apply(Node name, List<Node> arguments) {
Node v$1 = GNode.create("Arguments", arguments.size()).
addAll(arguments);
Node v$2 = GNode.create("CallExpression", name, null, "apply", v$1);
return v$2;
}
/**
* Create a call expression.
*
* @param name The name.
* @return The generic node.
*/
public Node apply2(Node name) {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", name, null, "apply", v$1);
return v$2;
}
/**
* Create a call expression.
*
* @param name The name.
* @param arguments The arguments.
* @return The generic node.
*/
public Node applyPrimitive(String name, List<Node> arguments) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, name);
Node v$3 = GNode.create("Arguments", arguments.size()).
addAll(arguments);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create an expression statement.
*
* @param name The name.
* @param value The value.
* @return The generic node.
*/
public Node assign(Node name, Node value) {
Node v$1 = GNode.create("Expression", name, "=", value);
Node v$2 = GNode.create("ExpressionStatement", v$1);
return v$2;
}
/**
* Create an expression statement.
*
* @param name The name.
* @param expression The expression.
* @return The generic node.
*/
public Node assignField(Node name, Node expression) {
Node v$1 = GNode.create("Arguments", expression);
Node v$2 = GNode.create("CallExpression", null, null, "cast", v$1);
Node v$3 = GNode.create("Expression", name, "=", v$2);
Node v$4 = GNode.create("ExpressionStatement", v$3);
return v$4;
}
/**
* Create a field declaration.
*
* @param name The name.
* @param value The value.
* @return The generic node.
*/
public Node boolVar(String name, Node value) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "Boolean");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("Declarator", name, null, value);
Node v$6 = GNode.create("Declarators", v$5);
Node v$7 = GNode.create("FieldDeclaration", v$2, v$4, v$6);
return v$7;
}
/**
* Create a block.
*
* @param statments The statments.
* @return The generic node.
*/
public Node block(List<Node> statments) {
Node v$1 = GNode.create("Block", statments.size()).
addAll(statments);
return v$1;
}
/**
* Create a break statement.
*
* @return The generic node.
*/
public Node breakStmnt() {
Node v$1 = GNode.create("BreakStatement", null);
return v$1;
}
/**
* Create a call expression.
*
* @param expression The expression.
* @return The generic node.
*/
public Node cast(Node expression) {
Node v$1 = GNode.create("PrimaryIdentifier", "Analyzer");
Node v$2 = GNode.create("Arguments", expression);
Node v$3 = GNode.create("CallExpression", v$1, null, "cast", v$2);
return v$3;
}
/**
* Create a call expression.
*
* @param name The name.
* @param function The function.
* @param arguments The arguments.
* @return The generic node.
*/
public Node castInvocation(Node name, String function, List<Node> arguments) {
Node v$1 = GNode.create("PrimaryIdentifier", "Analyzer");
Node v$2 = GNode.create("Arguments", arguments.size()).
addAll(arguments);
Node v$3 = GNode.create("CallExpression", name, null, function, v$2);
Node v$4 = GNode.create("Arguments", v$3);
Node v$5 = GNode.create("CallExpression", v$1, null, "cast", v$4);
return v$5;
}
/**
* Create a return statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node castReturn(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "Analyzer");
Node v$2 = GNode.create("Arguments", argument);
Node v$3 = GNode.create("CallExpression", v$1, null, "cast", v$2);
Node v$4 = GNode.create("ReturnStatement", v$3);
return v$4;
}
/**
* Create an expression statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node checkEnterScope(Node argument) {
Node v$1 = GNode.create("Arguments", argument);
Node v$2 = GNode.create("CallExpression", null, null, "checkEnterScope",
v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node checkExitScope(Node argument) {
Node v$1 = GNode.create("Arguments", argument);
Node v$2 = GNode.create("CallExpression", null, null, "checkExitScope",
v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create a class declaration.
*
* @param name The name.
* @return The generic node.
*/
public Node classDecl2(String name) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("ClassBody", false);
Node v$4 = GNode.create("ClassDeclaration", v$2, name, null, null, null,
v$3);
return v$4;
}
/**
* Create a class declaration.
*
* @param name The name.
* @return The generic node.
*/
public Node classDecl3(String name) {
Node v$1 = GNode.create("Modifier", "protected");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("ClassBody", false);
Node v$4 = GNode.create("ClassDeclaration", v$2, name, null, null, null,
v$3);
return v$4;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node compareTypes() {
Node v$1 = GNode.create("PrimaryIdentifier", "res");
Node v$2 = GNode.create("PrimaryIdentifier", "res");
Node v$3 = GNode.create("PrimaryIdentifier", "type");
Node v$4 = GNode.create("PrimaryIdentifier", "other");
Node v$5 = GNode.create("SelectionExpression", v$4, "type");
Node v$6 = GNode.create("Arguments", v$5);
Node v$7 = GNode.create("CallExpression", v$3, null, "equals", v$6);
Node v$8 = GNode.create("LogicalAndExpression", v$2, v$7);
Node v$9 = GNode.create("Expression", v$1, "=", v$8);
Node v$10 = GNode.create("ExpressionStatement", v$9);
return v$10;
}
/**
* Create an expression statement.
*
* @param arg The arg.
* @return The generic node.
*/
public Node compareAttributes(Object arg) {
Node v$1 = GNode.create("PrimaryIdentifier", "res");
Node v$2 = GNode.create("PrimaryIdentifier", "res");
Node v$3 = GNode.create("PrimaryIdentifier", "other");
Node v$4 = GNode.create("SelectionExpression", v$3, arg);
Node v$5 = GNode.create("Arguments", v$4);
Node v$6 = GNode.create("CallExpression", arg, null, "equals", v$5);
Node v$7 = GNode.create("LogicalAndExpression", v$2, v$6);
Node v$8 = GNode.create("Expression", v$1, "=", v$7);
Node v$9 = GNode.create("ExpressionStatement", v$8);
return v$9;
}
/**
* Create an expression statement.
*
* @param arg The arg.
* @return The generic node.
*/
public Node compareMembers(String arg) {
Node v$1 = GNode.create("PrimaryIdentifier", "res");
Node v$2 = GNode.create("PrimaryIdentifier", "res");
Node v$3 = GNode.create("PrimaryIdentifier", "Analyzer");
Node v$4 = GNode.create("ThisExpression", null);
Node v$5 = GNode.create("SelectionExpression", v$4, arg);
Node v$6 = GNode.create("PrimaryIdentifier", "other");
Node v$7 = GNode.create("SelectionExpression", v$6, arg);
Node v$8 = GNode.create("Arguments", v$5, v$7);
Node v$9 = GNode.create("CallExpression", v$3, null, "equal", v$8);
Node v$10 = GNode.create("LogicalAndExpression", v$2, v$9);
Node v$11 = GNode.create("Expression", v$1, "=", v$10);
Node v$12 = GNode.create("ExpressionStatement", v$11);
return v$12;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node concatStrings(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "concat");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node concatLists(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "concatList");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param head The head.
* @param tail The tail.
* @return The generic node.
*/
public Node consWrapper(Node head, Node tail) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("Arguments", head, tail);
Node v$3 = GNode.create("CallExpression", v$1, null, "wrapCons", v$2);
return v$3;
}
/**
* Create a constructor declaration.
*
* @param name The name.
* @return The generic node.
*/
public Node makeConstructor(String name) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("Modifiers", false);
Node v$4 = GNode.create("QualifiedIdentifier", "Runtime");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("FormalParameter", v$3, v$5, null, "runt", null);
Node v$7 = GNode.create("Modifiers", false);
Node v$8 = GNode.create("QualifiedIdentifier", "String");
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("FormalParameter", v$7, v$9, null, "nodeType",
null);
Node v$11 = GNode.create("FormalParameters", v$6, v$10);
Node v$12 = GNode.create("PrimaryIdentifier", "runt");
Node v$13 = GNode.create("Arguments", v$12);
Node v$14 = GNode.create("CallExpression", null, null, "super", v$13);
Node v$15 = GNode.create("ExpressionStatement", v$14);
Node v$16 = GNode.create("PrimaryIdentifier", "analyzer");
Node v$17 = GNode.create("PrimaryIdentifier", "analyze");
Node v$18 = GNode.create("Expression", v$16, "=", v$17);
Node v$19 = GNode.create("ExpressionStatement", v$18);
Node v$20 = GNode.create("ThisExpression", null);
Node v$21 = GNode.create("SelectionExpression", v$20, "nodeType");
Node v$22 = GNode.create("PrimaryIdentifier", "nodeType");
Node v$23 = GNode.create("Expression", v$21, "=", v$22);
Node v$24 = GNode.create("ExpressionStatement", v$23);
Node v$25 = GNode.create("Block", v$15, v$19, v$24);
Node v$26 = GNode.create("ConstructorDeclaration", v$2, null, name, v$11,
null, v$25);
return v$26;
}
/**
* Create a constructor declaration.
*
* @param name The name.
* @return The generic node.
*/
public Node makeConstructor2(String name) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("Modifiers", false);
Node v$4 = GNode.create("QualifiedIdentifier", "Runtime");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("FormalParameter", v$3, v$5, null, "runt", null);
Node v$7 = GNode.create("FormalParameters", v$6);
Node v$8 = GNode.create("PrimaryIdentifier", "runt");
Node v$9 = GNode.create("Arguments", v$8);
Node v$10 = GNode.create("CallExpression", null, null, "super", v$9);
Node v$11 = GNode.create("ExpressionStatement", v$10);
Node v$12 = GNode.create("PrimaryIdentifier", "analyzer");
Node v$13 = GNode.create("PrimaryIdentifier", "analyze");
Node v$14 = GNode.create("Expression", v$12, "=", v$13);
Node v$15 = GNode.create("ExpressionStatement", v$14);
Node v$16 = GNode.create("Block", v$11, v$15);
Node v$17 = GNode.create("ConstructorDeclaration", v$2, null, name, v$7,
null, v$16);
return v$17;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node modInt(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "modInt");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a constructor declaration.
*
* @param name The name.
* @return The generic node.
*/
public Node typesConstr(String name) {
Node v$1 = GNode.create("Modifier", "private");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("FormalParameters", false);
Node v$4 = GNode.create("Block", false);
Node v$5 = GNode.create("ConstructorDeclaration", v$2, null, name, v$3,
null, v$4);
return v$5;
}
/**
* Create a call expression.
*
* @param literal The literal.
* @return The generic node.
*/
public Node createInteger(Node literal) {
Node v$1 = GNode.create("PrimaryIdentifier", "BigInteger");
Node v$2 = GNode.create("Arguments", literal);
Node v$3 = GNode.create("CallExpression", v$1, null, "valueOf", v$2);
return v$3;
}
/**
* Create a new class expression.
*
* @param text The text.
* @return The generic node.
*/
public Node createFloat(Node text) {
Node v$1 = GNode.create("QualifiedIdentifier", "Double");
Node v$2 = GNode.create("Arguments", text);
Node v$3 = GNode.create("NewClassExpression", null, null, v$1, v$2, null);
return v$3;
}
/**
* Create a new class expression.
*
* @param arg1 The arg1.
* @param arg2 The arg2.
* @return The generic node.
*/
public Node curryingPut(Object arg1, Node arg2) {
Node v$1 = GNode.create("TypeInstantiation", "Function", null);
Node v$2 = GNode.create("QualifiedIdentifier", "Void");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("QualifiedIdentifier", "Object");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("QualifiedIdentifier", "Object");
Node v$7 = GNode.create("Type", v$6, null);
Node v$8 = GNode.create("QualifiedIdentifier", "Object");
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeArguments", v$7, v$9);
Node v$11 = GNode.create("TypeInstantiation", "Hashtable", v$10);
Node v$12 = GNode.create("InstantiatedType", v$11);
Node v$13 = GNode.create("Type", v$12, null);
Node v$14 = GNode.create("TypeArguments", v$3, v$5, v$13);
Node v$15 = GNode.create("TypeInstantiation", "F2", v$14);
Node v$16 = GNode.create("InstantiatedType", v$1, v$15);
Node v$17 = GNode.create("Arguments", false);
Node v$18 = GNode.create("Modifier", "public");
Node v$19 = GNode.create("Modifiers", v$18);
Node v$20 = GNode.create("QualifiedIdentifier", "Void");
Node v$21 = GNode.create("Type", v$20, null);
Node v$22 = GNode.create("Modifiers", false);
Node v$23 = GNode.create("QualifiedIdentifier", "Object");
Node v$24 = GNode.create("Type", v$23, null);
Node v$25 = GNode.create("FormalParameter", v$22, v$24, null, "o", null);
Node v$26 = GNode.create("Modifiers", false);
Node v$27 = GNode.create("QualifiedIdentifier", "Hashtable");
Node v$28 = GNode.create("Type", v$27, null);
Node v$29 = GNode.create("FormalParameter", v$26, v$28, null, "table",
null);
Node v$30 = GNode.create("FormalParameters", v$25, v$29);
Node v$31 = GNode.create("Modifier", "final");
Node v$32 = GNode.create("Modifiers", v$31);
Node v$33 = GNode.create("QualifiedIdentifier", "Object");
Node v$34 = GNode.create("Type", v$33, null);
Node v$35 = GNode.create("Declarator", arg1, null, arg2);
Node v$36 = GNode.create("Declarators", v$35);
Node v$37 = GNode.create("FieldDeclaration", v$32, v$34, v$36);
Node v$38 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$39 = GNode.create("PrimaryIdentifier", "o");
Node v$40 = GNode.create("PrimaryIdentifier", "table");
Node v$41 = GNode.create("Arguments", arg1, v$39, v$40);
Node v$42 = GNode.create("CallExpression", v$38, null, "put", v$41);
Node v$43 = GNode.create("ReturnStatement", v$42);
Node v$44 = GNode.create("Block", v$37, v$43);
Node v$45 = GNode.create("MethodDeclaration", v$19, null, v$21, "apply",
v$30, null, null, v$44);
Node v$46 = GNode.create("ClassBody", v$45);
Node v$47 = GNode.create("NewClassExpression", null, null, v$16, v$17,
v$46);
return v$47;
}
/**
* Create a constructor declaration.
*
* @param name The name.
* @return The generic node.
*/
public Node defaultConstr(String name) {
Node v$1 = GNode.create("Modifier", "protected");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("FormalParameters", false);
Node v$4 = GNode.create("Block", false);
Node v$5 = GNode.create("ConstructorDeclaration", v$2, null, name, v$3,
null, v$4);
return v$5;
}
/**
* Create an expression statement.
*
* @param expression The expression.
* @return The generic node.
*/
public Node discard(Node expression) {
Node v$1 = GNode.create("PrimaryIdentifier", "Analyzer");
Node v$2 = GNode.create("Arguments", expression);
Node v$3 = GNode.create("CallExpression", v$1, null, "discard", v$2);
Node v$4 = GNode.create("ExpressionStatement", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node divideInt(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "divideInt");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node divideFloat64(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "divideFloat64");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node equal(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "equal");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create an equality expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node equality(Node argument1, Node argument2) {
Node v$1 = GNode.create("EqualityExpression", argument1, "==", argument2);
return v$1;
}
/**
* Create a method declaration.
*
* @return The generic node.
*/
public Node equalsMethod() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("PrimitiveType", "boolean");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("Modifiers", false);
Node v$6 = GNode.create("QualifiedIdentifier", "Object");
Node v$7 = GNode.create("Type", v$6, null);
Node v$8 = GNode.create("FormalParameter", v$5, v$7, null, "o", null);
Node v$9 = GNode.create("FormalParameters", v$8);
Node v$10 = GNode.create("Block", false);
Node v$11 = GNode.create("MethodDeclaration", v$2, null, v$4, "equals",
v$9, null, null, v$10);
return v$11;
}
/**
* Create an equality expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node equalsBottom(Node argument) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "==", argument);
return v$2;
}
/**
* Create a call expression.
*
* @param name The name.
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node errorClause(String name, Node argument1, Node argument2) {
Node v$1 = GNode.create("Arguments", argument1, argument2);
Node v$2 = GNode.create("CallExpression", null, null, name, v$1);
return v$2;
}
/**
* Create an expression statement.
*
* @param expr The expr.
* @return The generic node.
*/
public Node expressionStmnt(Node expr) {
Node v$1 = GNode.create("ExpressionStatement", expr);
return v$1;
}
/**
* Create a class declaration.
*
* @return The generic node.
*/
public Node extendsDecl() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifier", "static");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("QualifiedIdentifier", "Type");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("Extension", v$5);
Node v$7 = GNode.create("ClassBody", false);
Node v$8 = GNode.create("ClassDeclaration", v$3, "Name", null, v$6, null,
v$7);
return v$8;
}
/**
* Create a class declaration.
*
* @return The generic node.
*/
public Node extendsDecl2() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifier", "static");
Node v$3 = GNode.create("Modifier", "abstract");
Node v$4 = GNode.create("Modifiers", v$1, v$2, v$3);
Node v$5 = GNode.create("QualifiedIdentifier", "Type");
Node v$6 = GNode.create("Type", v$5, null);
Node v$7 = GNode.create("Extension", v$6);
Node v$8 = GNode.create("ClassBody", false);
Node v$9 = GNode.create("ClassDeclaration", v$4, "Name", null, v$7, null,
v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param value The value.
* @return The generic node.
*/
public Node fieldDecl(Node type, Node value) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("Type", type, null);
Node v$4 = GNode.create("Declarator", "name", null, value);
Node v$5 = GNode.create("Declarators", v$4);
Node v$6 = GNode.create("FieldDeclaration", v$2, v$3, v$5);
return v$6;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param value The value.
* @return The generic node.
*/
public Node fieldDecl1(Node type, Node value) {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("Declarator", "name", null, value);
Node v$4 = GNode.create("Declarators", v$3);
Node v$5 = GNode.create("FieldDeclaration", v$1, v$2, v$4);
return v$5;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @param value The value.
* @return The generic node.
*/
public Node fieldDecl2(Node type, String name, Node value) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("Type", type, null);
Node v$4 = GNode.create("Declarator", name, null, value);
Node v$5 = GNode.create("Declarators", v$4);
Node v$6 = GNode.create("FieldDeclaration", v$2, v$3, v$5);
return v$6;
}
/**
* Create a field declaration.
*
* @param name The name.
* @return The generic node.
*/
public Node fieldDecl3(String name) {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("QualifiedIdentifier", "Object");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("NullLiteral", false);
Node v$5 = GNode.create("Declarator", name, null, v$4);
Node v$6 = GNode.create("Declarators", v$5);
Node v$7 = GNode.create("FieldDeclaration", v$1, v$3, v$6);
return v$7;
}
/**
* Create a conditional expression.
*
* @param argument The argument.
* @param tail The tail.
* @return The generic node.
*/
public Node fieldExpression(Node argument, String tail) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "==", argument);
Node v$3 = GNode.create("NullLiteral", false);
Node v$4 = GNode.create("SelectionExpression", argument, tail);
Node v$5 = GNode.create("ConditionalExpression", v$2, v$3, v$4);
return v$5;
}
/**
* Create a new class expression.
*
* @param arg1 The arg1.
* @param arg2 The arg2.
* @param arg3 The arg3.
* @return The generic node.
*/
public Node functionExpression(Node arg1, Node arg2, Node arg3) {
Node v$1 = GNode.create("TypeInstantiation", "Function", null);
Node v$2 = GNode.create("Type", arg1, null);
Node v$3 = GNode.create("Type", arg2, null);
Node v$4 = GNode.create("TypeArguments", v$2, v$3);
Node v$5 = GNode.create("TypeInstantiation", "F1", v$4);
Node v$6 = GNode.create("InstantiatedType", v$1, v$5);
Node v$7 = GNode.create("Arguments", false);
Node v$8 = GNode.create("Modifier", "public");
Node v$9 = GNode.create("Modifiers", v$8);
Node v$10 = GNode.create("Type", arg1, null);
Node v$11 = GNode.create("Modifier", "final");
Node v$12 = GNode.create("Modifiers", v$11);
Node v$13 = GNode.create("Type", arg2, null);
Node v$14 = GNode.create("FormalParameter", v$12, v$13, null, "var",
null);
Node v$15 = GNode.create("FormalParameters", v$14);
Node v$16 = GNode.create("ReturnStatement", arg3);
Node v$17 = GNode.create("Block", v$16);
Node v$18 = GNode.create("MethodDeclaration", v$9, null, v$10, "apply",
v$15, null, null, v$17);
Node v$19 = GNode.create("ClassBody", v$18);
Node v$20 = GNode.create("NewClassExpression", null, null, v$6, v$7,
v$19);
return v$20;
}
/**
* Create a conditional expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node getName(Node argument) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "==", argument);
Node v$3 = GNode.create("NullLiteral", false);
Node v$4 = GNode.create("Arguments", false);
Node v$5 = GNode.create("CallExpression", argument, null, "getName", v$4);
Node v$6 = GNode.create("ConditionalExpression", v$2, v$3, v$5);
return v$6;
}
/**
* Create a method declaration.
*
* @param argument The argument.
* @return The generic node.
*/
public Node getNameMethod(Node argument) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "String");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("FormalParameters", false);
Node v$6 = GNode.create("ReturnStatement", argument);
Node v$7 = GNode.create("Block", v$6);
Node v$8 = GNode.create("MethodDeclaration", v$2, null, v$4, "getName",
v$5, null, null, v$7);
return v$8;
}
/**
* Create a method declaration.
*
* @return The generic node.
*/
public Node getScopeNodesMethod() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("VoidType", false);
Node v$4 = GNode.create("FormalParameters", false);
Node v$5 = GNode.create("Block", false);
Node v$6 = GNode.create("MethodDeclaration", v$2, null, v$3,
"getScopeNodes", v$4, null, null, v$5);
return v$6;
}
/**
* Create a class declaration.
*
* @return The generic node.
*/
public Node getScopeClass() {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("Modifier", "public");
Node v$3 = GNode.create("Modifiers", v$2);
Node v$4 = GNode.create("QualifiedIdentifier", "Scope");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("Modifiers", false);
Node v$7 = GNode.create("QualifiedIdentifier", "GNode");
Node v$8 = GNode.create("Type", v$7, null);
Node v$9 = GNode.create("FormalParameter", v$6, v$8, null, "n", null);
Node v$10 = GNode.create("FormalParameters", v$9);
Node v$11 = GNode.create("NullLiteral", false);
Node v$12 = GNode.create("ReturnStatement", v$11);
Node v$13 = GNode.create("Block", v$12);
Node v$14 = GNode.create("MethodDeclaration", v$3, null, v$5, "apply",
v$10, null, null, v$13);
Node v$15 = GNode.create("ClassBody", v$14);
Node v$16 = GNode.create("ClassDeclaration", v$1, "getScope", null, null,
null, v$15);
return v$16;
}
/**
* Create a field declaration.
*
* @return The generic node.
*/
public Node getScopeObject() {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "getScope");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("QualifiedIdentifier", "getScope");
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Declarator", "getScope", null, v$7);
Node v$9 = GNode.create("Declarators", v$8);
Node v$10 = GNode.create("FieldDeclaration", v$2, v$4, v$9);
return v$10;
}
/**
* Create a method declaration.
*
* @return The generic node.
*/
public Node getTagAbstract() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifier", "abstract");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("QualifiedIdentifier", "Tag");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("FormalParameters", false);
Node v$7 = GNode.create("MethodDeclaration", v$3, null, v$5, "tag", v$6,
null, null, null);
return v$7;
}
/**
* Create a method declaration.
*
* @param tag The tag.
* @return The generic node.
*/
public Node getTag(String tag) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("QualifiedIdentifier", "Tag");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("FormalParameters", false);
Node v$7 = GNode.create("PrimaryIdentifier", "Tag");
Node v$8 = GNode.create("SelectionExpression", v$7, tag);
Node v$9 = GNode.create("ReturnStatement", v$8);
Node v$10 = GNode.create("Block", v$9);
Node v$11 = GNode.create("MethodDeclaration", v$3, null, v$5, "tag", v$6,
null, null, v$10);
return v$11;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node gnodeCast(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "GNode");
Node v$2 = GNode.create("Arguments", argument);
Node v$3 = GNode.create("CallExpression", v$1, null, "cast", v$2);
return v$3;
}
/**
* Create a call expression.
*
* @param arguments The arguments.
* @return The generic node.
*/
public Node gnodeCreate(List<Node> arguments) {
Node v$1 = GNode.create("PrimaryIdentifier", "GNode");
Node v$2 = GNode.create("Arguments", arguments.size()).
addAll(arguments);
Node v$3 = GNode.create("CallExpression", v$1, null, "create", v$2);
return v$3;
}
/**
* Create a call expression.
*
* @param type The type.
* @param statements The statements.
* @return The generic node.
*/
public Node guardExpression(Node type, List<Node> statements) {
Node v$1 = GNode.create("Type", type, null);
Node v$2 = GNode.create("TypeArguments", v$1);
Node v$3 = GNode.create("TypeInstantiation", "Guard", v$2);
Node v$4 = GNode.create("InstantiatedType", v$3);
Node v$5 = GNode.create("Arguments", false);
Node v$6 = GNode.create("Modifier", "public");
Node v$7 = GNode.create("Modifiers", v$6);
Node v$8 = GNode.create("Type", type, null);
Node v$9 = GNode.create("FormalParameters", false);
Node v$10 = GNode.create("Block", statements.size()).
addAll(statements);
Node v$11 = GNode.create("MethodDeclaration", v$7, null, v$8, "apply",
v$9, null, null, v$10);
Node v$12 = GNode.create("ClassBody", v$11);
Node v$13 = GNode.create("NewClassExpression", null, null, v$4, v$5,
v$12);
Node v$14 = GNode.create("Arguments", false);
Node v$15 = GNode.create("CallExpression", v$13, null, "apply", v$14);
return v$15;
}
/**
* Create a logical and expression.
*
* @param node The node.
* @param name The name.
* @return The generic node.
*/
public Node hasNameCall(Node node, Node name) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", node);
Node v$3 = GNode.create("Arguments", name);
Node v$4 = GNode.create("CallExpression", node, null, "hasName", v$3);
Node v$5 = GNode.create("LogicalAndExpression", v$2, v$4);
return v$5;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node head(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "head");
Node v$3 = GNode.create("Arguments", argument);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node headWrapper(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("Arguments", argument);
Node v$3 = GNode.create("CallExpression", v$1, null, "wrapHead", v$2);
return v$3;
}
/**
* Create a conditional statement.
*
* @param condition The condition.
* @param action The action.
* @return The generic node.
*/
public Node ifStatement(Node condition, Node action) {
Node v$1 = GNode.create("Block", action);
Node v$2 = GNode.create("ConditionalStatement", condition, v$1, null);
return v$2;
}
/**
* Create a conditional statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node ifStatement1(Node argument) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", argument, "==", v$1);
Node v$3 = GNode.create("BooleanLiteral", "false");
Node v$4 = GNode.create("ReturnStatement", v$3);
Node v$5 = GNode.create("Block", v$4);
Node v$6 = GNode.create("ConditionalStatement", v$2, v$5, null);
return v$6;
}
/**
* Create a conditional statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node ifStatement2(Node argument) {
Node v$1 = GNode.create("QualifiedIdentifier", "Type");
Node v$2 = GNode.create("Type", v$1, null);
Node v$3 = GNode.create("InstanceOfExpression", argument, v$2);
Node v$4 = GNode.create("LogicalNegationExpression", v$3);
Node v$5 = GNode.create("BooleanLiteral", "false");
Node v$6 = GNode.create("ReturnStatement", v$5);
Node v$7 = GNode.create("Block", v$6);
Node v$8 = GNode.create("ConditionalStatement", v$4, v$7, null);
return v$8;
}
/**
* Create a conditional statement.
*
* @param arg1 The arg1.
* @param arg2 The arg2.
* @param arg3 The arg3.
* @param arg4 The arg4.
* @return The generic node.
*/
public Node ifStatement3(Node arg1, Node arg2, Node arg3, Node arg4) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", arg1);
Node v$3 = GNode.create("LogicalNegationExpression", arg1);
Node v$4 = GNode.create("LogicalAndExpression", v$2, v$3);
Node v$5 = GNode.create("Arguments", arg2, arg3, arg4);
Node v$6 = GNode.create("CallExpression", null, null, "showMessage", v$5);
Node v$7 = GNode.create("ExpressionStatement", v$6);
Node v$8 = GNode.create("Block", v$7);
Node v$9 = GNode.create("ConditionalStatement", v$4, v$8, null);
return v$9;
}
/**
* Create a conditional statement.
*
* @param arg The arg.
* @return The generic node.
*/
public Node ifStatement4(Node arg) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "==", arg);
Node v$3 = GNode.create("NullLiteral", false);
Node v$4 = GNode.create("ReturnStatement", v$3);
Node v$5 = GNode.create("Block", v$4);
Node v$6 = GNode.create("ConditionalStatement", v$2, v$5, null);
return v$6;
}
/**
* Create a conditional statement.
*
* @param arg The arg.
* @return The generic node.
*/
public Node ifStatement5(Node arg) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("ReturnStatement", v$1);
Node v$3 = GNode.create("Block", v$2);
Node v$4 = GNode.create("ConditionalStatement", arg, v$3, null);
return v$4;
}
/**
* Create a conditional expression.
*
* @param condition The condition.
* @param expression The expression.
* @return The generic node.
*/
public Node ifExpression(Node condition, Node expression) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "==", condition);
Node v$3 = GNode.create("LogicalNegationExpression", condition);
Node v$4 = GNode.create("LogicalOrExpression", v$2, v$3);
Node v$5 = GNode.create("NullLiteral", false);
Node v$6 = GNode.create("ConditionalExpression", v$4, v$5, expression);
return v$6;
}
/**
* Create a conditional expression.
*
* @param condition The condition.
* @param expr1 The expr1.
* @param expr2 The expr2.
* @return The generic node.
*/
public Node ifElseExpression(Node condition, Node expr1, Node expr2) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "==", condition);
Node v$3 = GNode.create("NullLiteral", false);
Node v$4 = GNode.create("ConditionalExpression", condition, expr1, expr2);
Node v$5 = GNode.create("ConditionalExpression", v$2, v$3, v$4);
return v$5;
}
/**
* Create a class declaration.
*
* @return The generic node.
*/
public Node implementsDecl() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifier", "static");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("QualifiedIdentifier", "Type");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("Implementation", v$5);
Node v$7 = GNode.create("ClassBody", false);
Node v$8 = GNode.create("ClassDeclaration", v$3, "Name", null, null, v$6,
v$7);
return v$8;
}
/**
* Create a call expression.
*
* @param name The name.
* @param function The function.
* @param arguments The arguments.
* @return The generic node.
*/
public Node invocation(Node name, String function, List<Node> arguments) {
Node v$1 = GNode.create("Arguments", arguments.size()).
addAll(arguments);
Node v$2 = GNode.create("CallExpression", name, null, function, v$1);
return v$2;
}
/**
* Create a field declaration.
*
* @param type1 The type1.
* @param name The name.
* @param type2 The type2.
* @return The generic node.
*/
public Node instanceDecl(Node type1, String name, Node type2) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("Type", type1, null);
Node v$4 = GNode.create("Arguments", false);
Node v$5 = GNode.create("NewClassExpression", null, null, type2, v$4,
null);
Node v$6 = GNode.create("Declarator", name, null, v$5);
Node v$7 = GNode.create("Declarators", v$6);
Node v$8 = GNode.create("FieldDeclaration", v$2, v$3, v$7);
return v$8;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node isBottom(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "isBottom");
Node v$3 = GNode.create("Arguments", argument);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a logical and expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node isEmptyCall(Node argument) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", argument);
Node v$3 = GNode.create("QualifiedIdentifier", "Pair");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("CastExpression", v$4, argument);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("CallExpression", v$5, null, "isEmpty", v$6);
Node v$8 = GNode.create("LogicalAndExpression", v$2, v$7);
return v$8;
}
/**
* Create a logical and expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node isNotEmptyCall(Node argument) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", argument);
Node v$3 = GNode.create("QualifiedIdentifier", "Pair");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("CastExpression", v$4, argument);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("CallExpression", v$5, null, "isEmpty", v$6);
Node v$8 = GNode.create("LogicalNegationExpression", v$7);
Node v$9 = GNode.create("LogicalAndExpression", v$2, v$8);
return v$9;
}
/**
* Create a method declaration.
*
* @return The generic node.
*/
public Node isMethod() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("PrimitiveType", "boolean");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("FormalParameters", false);
Node v$6 = GNode.create("BooleanLiteral", "false");
Node v$7 = GNode.create("ReturnStatement", v$6);
Node v$8 = GNode.create("Block", v$7);
Node v$9 = GNode.create("MethodDeclaration", v$2, null, v$4, "isName",
v$5, null, null, v$8);
return v$9;
}
/**
* Create a logical and expression.
*
* @param argument The argument.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node isMethodCall(Node argument, String argument2) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", argument);
Node v$3 = GNode.create("Arguments", false);
Node v$4 = GNode.create("CallExpression", argument, null, argument2, v$3);
Node v$5 = GNode.create("LogicalAndExpression", v$2, v$4);
return v$5;
}
/**
* Create a logical and expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node jand(Node argument1, Node argument2) {
Node v$1 = GNode.create("LogicalAndExpression", argument1, argument2);
return v$1;
}
/**
* Create a logical and expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node jequals(Node argument1, Node argument2) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", argument1);
Node v$3 = GNode.create("Arguments", argument2);
Node v$4 = GNode.create("CallExpression", argument1, null, "equals", v$3);
Node v$5 = GNode.create("LogicalAndExpression", v$2, v$4);
return v$5;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node jequals2(Node argument, Node argument2) {
Node v$1 = GNode.create("Arguments", argument2);
Node v$2 = GNode.create("CallExpression", argument, null, "equals", v$1);
return v$2;
}
/**
* Create a logical negation expression.
*
* @param condition The condition.
* @return The generic node.
*/
public Node jnot(Node condition) {
Node v$1 = GNode.create("LogicalNegationExpression", condition);
return v$1;
}
/**
* Create a logical or expression.
*
* @param condition1 The condition1.
* @param condition2 The condition2.
* @return The generic node.
*/
public Node jor(Node condition1, Node condition2) {
Node v$1 = GNode.create("LogicalOrExpression", condition1, condition2);
return v$1;
}
/**
* Create an equality expression.
*
* @param arg The arg.
* @return The generic node.
*/
public Node isNull(Node arg) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "==", arg);
return v$2;
}
/**
* Create a call expression.
*
* @param type The type.
* @return The generic node.
*/
public Node letExpression(Node type) {
Node v$1 = GNode.create("Type", type, null);
Node v$2 = GNode.create("TypeArguments", v$1);
Node v$3 = GNode.create("TypeInstantiation", "Let", v$2);
Node v$4 = GNode.create("InstantiatedType", v$3);
Node v$5 = GNode.create("Arguments", false);
Node v$6 = GNode.create("ClassBody", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$4, v$5, v$6);
Node v$8 = GNode.create("Arguments", false);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param name The name.
* @param node The node.
* @param size The size.
* @return The generic node.
*/
public Node makeNodeBinding(String name, Node node, Node size) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "Node");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("Arguments", false);
Node v$6 = GNode.create("CallExpression", node, null, "size", v$5);
Node v$7 = GNode.create("RelationalExpression", v$6, ">", size);
Node v$8 = GNode.create("Arguments", size);
Node v$9 = GNode.create("CallExpression", node, null, "getGeneric", v$8);
Node v$10 = GNode.create("NullLiteral", false);
Node v$11 = GNode.create("ConditionalExpression", v$7, v$9, v$10);
Node v$12 = GNode.create("Declarator", name, null, v$11);
Node v$13 = GNode.create("Declarators", v$12);
Node v$14 = GNode.create("FieldDeclaration", v$2, v$4, v$13);
return v$14;
}
/**
* Create a field declaration.
*
* @param name The name.
* @param node The node.
* @param size The size.
* @return The generic node.
*/
public Node makeNodeBinding2(String name, Node node, Node size) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "String");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("Arguments", false);
Node v$6 = GNode.create("CallExpression", node, null, "size", v$5);
Node v$7 = GNode.create("RelationalExpression", v$6, ">", size);
Node v$8 = GNode.create("Arguments", size);
Node v$9 = GNode.create("CallExpression", node, null, "getString", v$8);
Node v$10 = GNode.create("NullLiteral", false);
Node v$11 = GNode.create("ConditionalExpression", v$7, v$9, v$10);
Node v$12 = GNode.create("Declarator", name, null, v$11);
Node v$13 = GNode.create("Declarators", v$12);
Node v$14 = GNode.create("FieldDeclaration", v$2, v$4, v$13);
return v$14;
}
/**
* Create a call expression.
*
* @param qualifier The qualifier.
* @param match The match.
* @param argument The argument.
* @return The generic node.
*/
public Node matchCall(Node qualifier, String match, Node argument) {
Node v$1 = GNode.create("Arguments", argument);
Node v$2 = GNode.create("CallExpression", qualifier, null, match, v$1);
return v$2;
}
/**
* Create a call expression.
*
* @param type The type.
* @param statements The statements.
* @return The generic node.
*/
public Node matchExpression(Node type, List<Node> statements) {
Node v$1 = GNode.create("Type", type, null);
Node v$2 = GNode.create("TypeArguments", v$1);
Node v$3 = GNode.create("TypeInstantiation", "Match", v$2);
Node v$4 = GNode.create("InstantiatedType", v$3);
Node v$5 = GNode.create("Arguments", false);
Node v$6 = GNode.create("Modifier", "public");
Node v$7 = GNode.create("Modifiers", v$6);
Node v$8 = GNode.create("Type", type, null);
Node v$9 = GNode.create("FormalParameters", false);
Node v$10 = GNode.create("Block", statements.size()).
addAll(statements);
Node v$11 = GNode.create("MethodDeclaration", v$7, null, v$8, "apply",
v$9, null, null, v$10);
Node v$12 = GNode.create("ClassBody", v$11);
Node v$13 = GNode.create("NewClassExpression", null, null, v$4, v$5,
v$12);
Node v$14 = GNode.create("Arguments", false);
Node v$15 = GNode.create("CallExpression", v$13, null, "apply", v$14);
return v$15;
}
/**
* Create a method declaration.
*
* @param match The match.
* @param type The type.
* @param condition The condition.
* @return The generic node.
*/
public Node matchFunction(String match, Node type, Node condition) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("PrimitiveType", "boolean");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("Modifiers", false);
Node v$7 = GNode.create("Type", type, null);
Node v$8 = GNode.create("FormalParameter", v$6, v$7, null, "argument",
null);
Node v$9 = GNode.create("FormalParameters", v$8);
Node v$10 = GNode.create("ReturnStatement", condition);
Node v$11 = GNode.create("Block", v$10);
Node v$12 = GNode.create("MethodDeclaration", v$3, null, v$5, match, v$9,
null, null, v$11);
return v$12;
}
/**
* Create an expression statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node matchingNodesAdd(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "matching_nodes");
Node v$2 = GNode.create("Arguments", argument);
Node v$3 = GNode.create("CallExpression", v$1, null, "add", v$2);
Node v$4 = GNode.create("ExpressionStatement", v$3);
return v$4;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node matchingNodesRemove() {
Node v$1 = GNode.create("PrimaryIdentifier", "matching_nodes");
Node v$2 = GNode.create("PrimaryIdentifier", "matching_nodes");
Node v$3 = GNode.create("Arguments", false);
Node v$4 = GNode.create("CallExpression", v$2, null, "size", v$3);
Node v$5 = GNode.create("IntegerLiteral", "1");
Node v$6 = GNode.create("AdditiveExpression", v$4, "-", v$5);
Node v$7 = GNode.create("Arguments", v$6);
Node v$8 = GNode.create("CallExpression", v$1, null, "remove", v$7);
Node v$9 = GNode.create("ExpressionStatement", v$8);
return v$9;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node multiplyInt(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "multiplyInt");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node multiplyFloat64(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "multiplyFloat64");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a new class expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newExpr(Node type, List<Node> args) {
Node v$1 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$2 = GNode.create("NewClassExpression", null, null, type, v$1,
null);
return v$2;
}
/**
* Create a new class expression.
*
* @param type The type.
* @param argument The argument.
* @return The generic node.
*/
public Node newPair(Node type, Node argument) {
Node v$1 = GNode.create("Arguments", argument);
Node v$2 = GNode.create("NewClassExpression", null, null, type, v$1,
null);
return v$2;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newCons(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Cons", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Cons", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param agrs The agrs.
* @return The generic node.
*/
public Node newApplyCons(Node type, List<Node> agrs) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Cons", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", agrs.size()).
addAll(agrs);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newHead(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Head", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Head", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplyHead(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Head", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newTail(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Tail", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Tail", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplyTail(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Tail", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newNth(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Nth", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Nth", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplyNth(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Nth", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newExists(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Exists", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Exists", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplyExists(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Exists", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type1 The type1.
* @param type2 The type2.
* @param name The name.
* @return The generic node.
*/
public Node newIter(Node type1, Node type2, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type1, null);
Node v$6 = GNode.create("Type", type2, null);
Node v$7 = GNode.create("TypeArguments", v$5, v$6);
Node v$8 = GNode.create("TypeInstantiation", "Iter", v$7);
Node v$9 = GNode.create("InstantiatedType", v$4, v$8);
Node v$10 = GNode.create("Type", v$9, null);
Node v$11 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$12 = GNode.create("Type", type1, null);
Node v$13 = GNode.create("Type", type2, null);
Node v$14 = GNode.create("TypeArguments", v$12, v$13);
Node v$15 = GNode.create("TypeInstantiation", "Iter", v$14);
Node v$16 = GNode.create("InstantiatedType", v$11, v$15);
Node v$17 = GNode.create("Arguments", false);
Node v$18 = GNode.create("NewClassExpression", null, null, v$16, v$17,
null);
Node v$19 = GNode.create("Declarator", name, null, v$18);
Node v$20 = GNode.create("Declarators", v$19);
Node v$21 = GNode.create("FieldDeclaration", v$3, v$10, v$20);
return v$21;
}
/**
* Create a call expression.
*
* @param type1 The type1.
* @param type2 The type2.
* @param args The args.
* @return The generic node.
*/
public Node newApplyIter(Node type1, Node type2, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type1, null);
Node v$3 = GNode.create("Type", type2, null);
Node v$4 = GNode.create("TypeArguments", v$2, v$3);
Node v$5 = GNode.create("TypeInstantiation", "Iter", v$4);
Node v$6 = GNode.create("InstantiatedType", v$1, v$5);
Node v$7 = GNode.create("Arguments", false);
Node v$8 = GNode.create("NewClassExpression", null, null, v$6, v$7, null);
Node v$9 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$10 = GNode.create("CallExpression", v$8, null, "apply", v$9);
return v$10;
}
/**
* Create a field declaration.
*
* @param type1 The type1.
* @param type2 The type2.
* @param name The name.
* @return The generic node.
*/
public Node newMap(Node type1, Node type2, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type1, null);
Node v$6 = GNode.create("Type", type2, null);
Node v$7 = GNode.create("TypeArguments", v$5, v$6);
Node v$8 = GNode.create("TypeInstantiation", "Map", v$7);
Node v$9 = GNode.create("InstantiatedType", v$4, v$8);
Node v$10 = GNode.create("Type", v$9, null);
Node v$11 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$12 = GNode.create("Type", type1, null);
Node v$13 = GNode.create("Type", type2, null);
Node v$14 = GNode.create("TypeArguments", v$12, v$13);
Node v$15 = GNode.create("TypeInstantiation", "Map", v$14);
Node v$16 = GNode.create("InstantiatedType", v$11, v$15);
Node v$17 = GNode.create("Arguments", false);
Node v$18 = GNode.create("NewClassExpression", null, null, v$16, v$17,
null);
Node v$19 = GNode.create("Declarator", name, null, v$18);
Node v$20 = GNode.create("Declarators", v$19);
Node v$21 = GNode.create("FieldDeclaration", v$3, v$10, v$20);
return v$21;
}
/**
* Create a call expression.
*
* @param type1 The type1.
* @param type2 The type2.
* @param args The args.
* @return The generic node.
*/
public Node newApplyMap(Node type1, Node type2, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type1, null);
Node v$3 = GNode.create("Type", type2, null);
Node v$4 = GNode.create("TypeArguments", v$2, v$3);
Node v$5 = GNode.create("TypeInstantiation", "Map", v$4);
Node v$6 = GNode.create("InstantiatedType", v$1, v$5);
Node v$7 = GNode.create("Arguments", false);
Node v$8 = GNode.create("NewClassExpression", null, null, v$6, v$7, null);
Node v$9 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$10 = GNode.create("CallExpression", v$8, null, "apply", v$9);
return v$10;
}
/**
* Create a field declaration.
*
* @param type1 The type1.
* @param type2 The type2.
* @param name The name.
* @return The generic node.
*/
public Node newFoldl(Node type1, Node type2, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type1, null);
Node v$6 = GNode.create("Type", type2, null);
Node v$7 = GNode.create("TypeArguments", v$5, v$6);
Node v$8 = GNode.create("TypeInstantiation", "FoldLeft", v$7);
Node v$9 = GNode.create("InstantiatedType", v$4, v$8);
Node v$10 = GNode.create("Type", v$9, null);
Node v$11 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$12 = GNode.create("Type", type1, null);
Node v$13 = GNode.create("Type", type2, null);
Node v$14 = GNode.create("TypeArguments", v$12, v$13);
Node v$15 = GNode.create("TypeInstantiation", "FoldLeft", v$14);
Node v$16 = GNode.create("InstantiatedType", v$11, v$15);
Node v$17 = GNode.create("Arguments", false);
Node v$18 = GNode.create("NewClassExpression", null, null, v$16, v$17,
null);
Node v$19 = GNode.create("Declarator", name, null, v$18);
Node v$20 = GNode.create("Declarators", v$19);
Node v$21 = GNode.create("FieldDeclaration", v$3, v$10, v$20);
return v$21;
}
/**
* Create a call expression.
*
* @param type1 The type1.
* @param type2 The type2.
* @param args The args.
* @return The generic node.
*/
public Node newApplyFoldl(Node type1, Node type2, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type1, null);
Node v$3 = GNode.create("Type", type2, null);
Node v$4 = GNode.create("TypeArguments", v$2, v$3);
Node v$5 = GNode.create("TypeInstantiation", "FoldLeft", v$4);
Node v$6 = GNode.create("InstantiatedType", v$1, v$5);
Node v$7 = GNode.create("Arguments", false);
Node v$8 = GNode.create("NewClassExpression", null, null, v$6, v$7, null);
Node v$9 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$10 = GNode.create("CallExpression", v$8, null, "apply", v$9);
return v$10;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newAppend(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Append", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Append", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplyAppend(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Append", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newUnion(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Union", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Union", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplyUnion(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Union", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newIntersection(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Intersection", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Intersection", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplyIntersection(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Intersection", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node newSubtraction(Node type, String name) {
Node v$1 = GNode.create("Modifier", "static");
Node v$2 = GNode.create("Modifier", "final");
Node v$3 = GNode.create("Modifiers", v$1, v$2);
Node v$4 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("TypeArguments", v$5);
Node v$7 = GNode.create("TypeInstantiation", "Subtraction", v$6);
Node v$8 = GNode.create("InstantiatedType", v$4, v$7);
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$11 = GNode.create("Type", type, null);
Node v$12 = GNode.create("TypeArguments", v$11);
Node v$13 = GNode.create("TypeInstantiation", "Subtraction", v$12);
Node v$14 = GNode.create("InstantiatedType", v$10, v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("NewClassExpression", null, null, v$14, v$15,
null);
Node v$17 = GNode.create("Declarator", name, null, v$16);
Node v$18 = GNode.create("Declarators", v$17);
Node v$19 = GNode.create("FieldDeclaration", v$3, v$9, v$18);
return v$19;
}
/**
* Create a call expression.
*
* @param type The type.
* @param args The args.
* @return The generic node.
*/
public Node newApplySubtraction(Node type, List<Node> args) {
Node v$1 = GNode.create("TypeInstantiation", "Primitives", null);
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("TypeInstantiation", "Subtraction", v$3);
Node v$5 = GNode.create("InstantiatedType", v$1, v$4);
Node v$6 = GNode.create("Arguments", false);
Node v$7 = GNode.create("NewClassExpression", null, null, v$5, v$6, null);
Node v$8 = GNode.create("Arguments", args.size()).
addAll(args);
Node v$9 = GNode.create("CallExpression", v$7, null, "apply", v$8);
return v$9;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node nextCall(Node argument) {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", argument, null, "next", v$1);
return v$2;
}
/**
* Create a field declaration.
*
* @return The generic node.
*/
public Node nodeTypeDecl() {
Node v$1 = GNode.create("Modifier", "protected");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "String");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("NullLiteral", false);
Node v$6 = GNode.create("Declarator", "nodeType", null, v$5);
Node v$7 = GNode.create("Declarators", v$6);
Node v$8 = GNode.create("FieldDeclaration", v$2, v$4, v$7);
return v$8;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @return The generic node.
*/
public Node not(Node argument1) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "not");
Node v$3 = GNode.create("Arguments", argument1);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create an equality expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node notEqualsBottom(Node argument) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", argument);
return v$2;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node or(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "or");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param type The type.
* @return The generic node.
*/
public Node pairEmpty(Node type) {
Node v$1 = GNode.create("PrimaryIdentifier", "Pair");
Node v$2 = GNode.create("Type", type, null);
Node v$3 = GNode.create("TypeArguments", v$2);
Node v$4 = GNode.create("Arguments", false);
Node v$5 = GNode.create("CallExpression", v$1, v$3, "empty", v$4);
return v$5;
}
/**
* Create a conditional statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node processScope(Node argument) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", argument);
Node v$3 = GNode.create("PrimaryIdentifier", "processScopeNodes");
Node v$4 = GNode.create("Arguments", false);
Node v$5 = GNode.create("CallExpression", argument, null, "getName", v$4);
Node v$6 = GNode.create("Arguments", v$5);
Node v$7 = GNode.create("CallExpression", v$3, null, "contains", v$6);
Node v$8 = GNode.create("LogicalAndExpression", v$2, v$7);
Node v$9 = GNode.create("PrimaryIdentifier", "getScope");
Node v$10 = GNode.create("Arguments", argument, v$9);
Node v$11 = GNode.create("CallExpression", null, null, "processScope",
v$10);
Node v$12 = GNode.create("ExpressionStatement", v$11);
Node v$13 = GNode.create("Block", v$12);
Node v$14 = GNode.create("ConditionalStatement", v$8, v$13, null);
return v$14;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param name The name.
* @return The generic node.
*/
public Node publicFieldDecl(Node type, String name) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("Type", type, null);
Node v$4 = GNode.create("Declarator", name, null, null);
Node v$5 = GNode.create("Declarators", v$4);
Node v$6 = GNode.create("FieldDeclaration", v$2, v$3, v$5);
return v$6;
}
/**
* Create a field declaration.
*
* @return The generic node.
*/
public Node recordFieldEqual() {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("QualifiedIdentifier", "type");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("QualifiedIdentifier", "type");
Node v$5 = GNode.create("Type", v$4, null);
Node v$6 = GNode.create("PrimaryIdentifier", "o");
Node v$7 = GNode.create("CastExpression", v$5, v$6);
Node v$8 = GNode.create("Declarator", "other", null, v$7);
Node v$9 = GNode.create("Declarators", v$8);
Node v$10 = GNode.create("FieldDeclaration", v$1, v$3, v$9);
return v$10;
}
/**
* Create a field declaration.
*
* @return The generic node.
*/
public Node recordEqualReturn() {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("PrimitiveType", "boolean");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("BooleanLiteral", "true");
Node v$5 = GNode.create("Declarator", "res", null, v$4);
Node v$6 = GNode.create("Declarators", v$5);
Node v$7 = GNode.create("FieldDeclaration", v$1, v$3, v$6);
return v$7;
}
/**
* Create a call expression.
*
* @param arg1 The arg1.
* @param arg2 The arg2.
* @param initStatements The initStatements.
* @return The generic node.
*/
public Node reduceExpression(Node arg1, Node arg2, List<Node> initStatements) {
Node v$1 = GNode.create("QualifiedIdentifier", "Reduction");
Node v$2 = GNode.create("PrimaryIdentifier", "matching_nodes");
Node v$3 = GNode.create("PrimaryIdentifier", "matching_nodes");
Node v$4 = GNode.create("Arguments", false);
Node v$5 = GNode.create("CallExpression", v$3, null, "size", v$4);
Node v$6 = GNode.create("IntegerLiteral", "1");
Node v$7 = GNode.create("AdditiveExpression", v$5, "-", v$6);
Node v$8 = GNode.create("Arguments", v$7);
Node v$9 = GNode.create("CallExpression", v$2, null, "get", v$8);
Node v$10 = GNode.create("Arguments", arg1, arg2, v$9);
Node v$11 = GNode.create("Block", initStatements.size()).
addAll(initStatements);
Node v$12 = GNode.create("BlockDeclaration", null, v$11);
Node v$13 = GNode.create("ClassBody", v$12);
Node v$14 = GNode.create("NewClassExpression", null, null, v$1, v$10,
v$13);
Node v$15 = GNode.create("Arguments", false);
Node v$16 = GNode.create("CallExpression", v$14, null, "apply", v$15);
return v$16;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node reduceReq() {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", null, null, "setReq", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node reduceSing() {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", null, null, "setSing", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node reduceOpt() {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", null, null, "setOpt", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node reduceList() {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", null, null, "setList", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node reduceSet() {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", null, null, "setSet", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node reduceDup() {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", null, null, "setDup", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @return The generic node.
*/
public Node reduceNodup() {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", null, null, "setNodup", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @param arg The arg.
* @return The generic node.
*/
public Node reduceTag(Node arg) {
Node v$1 = GNode.create("Arguments", arg);
Node v$2 = GNode.create("CallExpression", null, null, "setTag", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @param set The set.
* @return The generic node.
*/
public Node reduceSet(Node set) {
Node v$1 = GNode.create("Arguments", set);
Node v$2 = GNode.create("CallExpression", null, null, "setSet", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create an expression statement.
*
* @param patterns The patterns.
* @return The generic node.
*/
public Node reduceAddPatterns(List<Node> patterns) {
Node v$1 = GNode.create("Arguments", patterns.size()).
addAll(patterns);
Node v$2 = GNode.create("CallExpression", null, null, "addPattern", v$1);
Node v$3 = GNode.create("ExpressionStatement", v$2);
return v$3;
}
/**
* Create a field declaration.
*
* @param name The name.
* @param arg The arg.
* @return The generic node.
*/
public Node reduceGetMatch(String name, Node arg) {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("QualifiedIdentifier", "Node");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("Arguments", arg);
Node v$5 = GNode.create("CallExpression", null, null, "getMatch", v$4);
Node v$6 = GNode.create("Declarator", name, null, v$5);
Node v$7 = GNode.create("Declarators", v$6);
Node v$8 = GNode.create("FieldDeclaration", v$1, v$3, v$7);
return v$8;
}
/**
* Create a call expression.
*
* @param name The name.
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node relationalExpr(Node name, Node argument1, Node argument2) {
Node v$1 = GNode.create("Arguments", argument1, argument2);
Node v$2 = GNode.create("CallExpression", name, null, "apply", v$1);
return v$2;
}
/**
* Create a call expression.
*
* @param type The type.
* @param instructions The instructions.
* @return The generic node.
*/
public Node requireExpression(Node type, List<Node> instructions) {
Node v$1 = GNode.create("Type", type, null);
Node v$2 = GNode.create("TypeArguments", v$1);
Node v$3 = GNode.create("TypeInstantiation", "Require", v$2);
Node v$4 = GNode.create("InstantiatedType", v$3);
Node v$5 = GNode.create("Arguments", false);
Node v$6 = GNode.create("Modifier", "public");
Node v$7 = GNode.create("Modifiers", v$6);
Node v$8 = GNode.create("Type", type, null);
Node v$9 = GNode.create("FormalParameters", false);
Node v$10 = GNode.create("Block", instructions.size()).
addAll(instructions);
Node v$11 = GNode.create("MethodDeclaration", v$7, null, v$8, "apply",
v$9, null, null, v$10);
Node v$12 = GNode.create("ClassBody", v$11);
Node v$13 = GNode.create("NewClassExpression", null, null, v$4, v$5,
v$12);
Node v$14 = GNode.create("Arguments", false);
Node v$15 = GNode.create("CallExpression", v$13, null, "apply", v$14);
return v$15;
}
/**
* Create a return statement.
*
* @param argument The argument.
* @return The generic node.
*/
public Node ret(Node argument) {
Node v$1 = GNode.create("ReturnStatement", argument);
return v$1;
}
/**
* Create a return statement.
*
* @return The generic node.
*/
public Node returnBottom() {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("ReturnStatement", v$1);
return v$2;
}
/**
* Create a method declaration.
*
* @param statments The statments.
* @return The generic node.
*/
public Node setMethod(List<Node> statments) {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("VoidType", false);
Node v$3 = GNode.create("FormalParameters", false);
Node v$4 = GNode.create("Block", statments.size()).
addAll(statments);
Node v$5 = GNode.create("MethodDeclaration", v$1, null, v$2, "set", v$3,
null, null, v$4);
return v$5;
}
/**
* Create a method declaration.
*
* @param argument The argument.
* @return The generic node.
*/
public Node sizeMethod(Node argument) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("PrimitiveType", "int");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("FormalParameters", false);
Node v$6 = GNode.create("ReturnStatement", argument);
Node v$7 = GNode.create("Block", v$6);
Node v$8 = GNode.create("MethodDeclaration", v$2, null, v$4, "size", v$5,
null, null, v$7);
return v$8;
}
/**
* Create a relational expression.
*
* @param argument The argument.
* @param value The value.
* @return The generic node.
*/
public Node sizeGreater(Node argument, Node value) {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", argument, null, "size", v$1);
Node v$3 = GNode.create("RelationalExpression", v$2, ">", value);
return v$3;
}
/**
* Create a relational expression.
*
* @param argument The argument.
* @param value The value.
* @return The generic node.
*/
public Node sizeGreaterEqual(Node argument, Node value) {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", argument, null, "size", v$1);
Node v$3 = GNode.create("RelationalExpression", v$2, ">=", value);
return v$3;
}
/**
* Create a relational expression.
*
* @param argument The argument.
* @param value The value.
* @return The generic node.
*/
public Node sizeLess(Node argument, Node value) {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", argument, null, "size", v$1);
Node v$3 = GNode.create("RelationalExpression", v$2, "<", value);
return v$3;
}
/**
* Create an equality expression.
*
* @param argument The argument.
* @param value The value.
* @return The generic node.
*/
public Node sizeEqual(Node argument, Node value) {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", argument, null, "size", v$1);
Node v$3 = GNode.create("EqualityExpression", v$2, "==", value);
return v$3;
}
/**
* Create a field declaration.
*
* @param listName The listName.
* @return The generic node.
*/
public Node spOffspringList(String listName) {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("QualifiedIdentifier", "Node");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("TypeArguments", v$3);
Node v$5 = GNode.create("TypeInstantiation", "List", v$4);
Node v$6 = GNode.create("InstantiatedType", v$5);
Node v$7 = GNode.create("Type", v$6, null);
Node v$8 = GNode.create("QualifiedIdentifier", "Node");
Node v$9 = GNode.create("Type", v$8, null);
Node v$10 = GNode.create("TypeArguments", v$9);
Node v$11 = GNode.create("TypeInstantiation", "ArrayList", v$10);
Node v$12 = GNode.create("InstantiatedType", v$11);
Node v$13 = GNode.create("Arguments", false);
Node v$14 = GNode.create("NewClassExpression", null, null, v$12, v$13,
null);
Node v$15 = GNode.create("Declarator", listName, null, v$14);
Node v$16 = GNode.create("Declarators", v$15);
Node v$17 = GNode.create("FieldDeclaration", v$1, v$7, v$16);
return v$17;
}
/**
* Create a field declaration.
*
* @param nodeName The nodeName.
* @param param The param.
* @return The generic node.
*/
public Node spRunNode(String nodeName, Node param) {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("QualifiedIdentifier", "Node");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("Declarator", nodeName, null, param);
Node v$5 = GNode.create("Declarators", v$4);
Node v$6 = GNode.create("FieldDeclaration", v$1, v$3, v$5);
return v$6;
}
/**
* Create an expression statement.
*
* @param nodeName The nodeName.
* @param index The index.
* @return The generic node.
*/
public Node spGetGeneric(Node nodeName, Node index) {
Node v$1 = GNode.create("Arguments", index);
Node v$2 = GNode.create("CallExpression", nodeName, null, "getGeneric",
v$1);
Node v$3 = GNode.create("Expression", nodeName, "=", v$2);
Node v$4 = GNode.create("ExpressionStatement", v$3);
return v$4;
}
/**
* Create an expression statement.
*
* @param listName The listName.
* @param nodeName The nodeName.
* @return The generic node.
*/
public Node spOffspringListAdd(Node listName, Node nodeName) {
Node v$1 = GNode.create("IntegerLiteral", "0");
Node v$2 = GNode.create("Arguments", v$1, nodeName);
Node v$3 = GNode.create("CallExpression", listName, null, "add", v$2);
Node v$4 = GNode.create("ExpressionStatement", v$3);
return v$4;
}
/**
* Create a for statement.
*
* @param listName The listName.
* @return The generic node.
*/
public Node spForLoop(Node listName) {
Node v$1 = GNode.create("Modifiers", false);
Node v$2 = GNode.create("QualifiedIdentifier", "Node");
Node v$3 = GNode.create("Type", v$2, null);
Node v$4 = GNode.create("EnhancedForControl", v$1, v$3, "no", listName);
Node v$5 = GNode.create("PrimaryIdentifier", "no");
Node v$6 = GNode.create("Arguments", v$5);
Node v$7 = GNode.create("CallExpression", null, null, "checkExitScope",
v$6);
Node v$8 = GNode.create("ExpressionStatement", v$7);
Node v$9 = GNode.create("Block", v$8);
Node v$10 = GNode.create("ForStatement", v$4, v$9);
return v$10;
}
/**
* Create a field declaration.
*
* @param name The name.
* @param value The value.
* @return The generic node.
*/
public Node storeValue(String name, Node value) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "Object");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("Declarator", name, null, value);
Node v$6 = GNode.create("Declarators", v$5);
Node v$7 = GNode.create("FieldDeclaration", v$2, v$4, v$6);
return v$7;
}
/**
* Create a field declaration.
*
* @param type The type.
* @param value The value.
* @return The generic node.
*/
public Node staticFieldDecl(Node type, Node value) {
Node v$1 = GNode.create("Modifier", "final");
Node v$2 = GNode.create("Modifier", "static");
Node v$3 = GNode.create("Modifier", "protected");
Node v$4 = GNode.create("Modifiers", v$1, v$2, v$3);
Node v$5 = GNode.create("Type", type, null);
Node v$6 = GNode.create("Declarator", "name", null, value);
Node v$7 = GNode.create("Declarators", v$6);
Node v$8 = GNode.create("FieldDeclaration", v$4, v$5, v$7);
return v$8;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node subtractInt(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "subtractInt");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument1 The argument1.
* @param argument2 The argument2.
* @return The generic node.
*/
public Node subtractFloat64(Node argument1, Node argument2) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "subtractFloat64");
Node v$3 = GNode.create("Arguments", argument1, argument2);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a selection expression.
*
* @param support The support.
* @param arg The arg.
* @return The generic node.
*/
public Node support(Node support, String arg) {
Node v$1 = GNode.create("SelectionExpression", support, arg);
return v$1;
}
/**
* Create a field declaration.
*
* @param arg The arg.
* @param value The value.
* @return The generic node.
*/
public Node supportNodeMatch(String arg, Node value) {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifier", "static");
Node v$3 = GNode.create("Modifier", "final");
Node v$4 = GNode.create("Modifiers", v$1, v$2, v$3);
Node v$5 = GNode.create("QualifiedIdentifier", "Analyzer", "NodeMatch");
Node v$6 = GNode.create("Type", v$5, null);
Node v$7 = GNode.create("Declarator", arg, null, value);
Node v$8 = GNode.create("Declarators", v$7);
Node v$9 = GNode.create("FieldDeclaration", v$4, v$6, v$8);
return v$9;
}
/**
* Create a switch statement.
*
* @param arg The arg.
* @return The generic node.
*/
public Node switchStmnt(Node arg) {
Node v$1 = GNode.create("Arguments", false);
Node v$2 = GNode.create("CallExpression", arg, null, "tag", v$1);
Node v$3 = GNode.create("SwitchStatement", v$2);
return v$3;
}
/**
* Create a conditional statement.
*
* @param arg The arg.
* @param action The action.
* @return The generic node.
*/
public Node switchWrap(Node arg, Node action) {
Node v$1 = GNode.create("NullLiteral", false);
Node v$2 = GNode.create("EqualityExpression", v$1, "!=", arg);
Node v$3 = GNode.create("ExpressionStatement", action);
Node v$4 = GNode.create("ConditionalStatement", v$2, v$3, null);
return v$4;
}
/**
* Create a switch statement.
*
* @param c The c.
* @param action The action.
* @return The generic node.
*/
public Node caseStmnt(Node c, List<Node> action) {
Node v$1 = GNode.create("PrimaryIdentifier", "blah");
Node v$2 = GNode.create("BreakStatement", null);
Node v$3 = GNode.create("CaseClause", action.size() + 2).
add(c).addAll(action).add(v$2);
Node v$4 = GNode.create("SwitchStatement", v$1, v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node tail(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("SelectionExpression", v$1, "tail");
Node v$3 = GNode.create("Arguments", argument);
Node v$4 = GNode.create("CallExpression", v$2, null, "apply", v$3);
return v$4;
}
/**
* Create a call expression.
*
* @param argument The argument.
* @return The generic node.
*/
public Node tailWrapper(Node argument) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("Arguments", argument);
Node v$3 = GNode.create("CallExpression", v$1, null, "wrapTail", v$2);
return v$3;
}
/**
* Create a selection expression.
*
* @param tail The tail.
* @return The generic node.
*/
public Node thisExpr(String tail) {
Node v$1 = GNode.create("ThisExpression", null);
Node v$2 = GNode.create("SelectionExpression", v$1, tail);
return v$2;
}
/**
* Create a method declaration.
*
* @return The generic node.
*/
public Node toStringMethod() {
Node v$1 = GNode.create("Modifier", "public");
Node v$2 = GNode.create("Modifiers", v$1);
Node v$3 = GNode.create("QualifiedIdentifier", "String");
Node v$4 = GNode.create("Type", v$3, null);
Node v$5 = GNode.create("FormalParameters", false);
Node v$6 = GNode.create("Modifiers", false);
Node v$7 = GNode.create("QualifiedIdentifier", "String");
Node v$8 = GNode.create("Type", v$7, null);
Node v$9 = GNode.create("Declarator", "string", null, null);
Node v$10 = GNode.create("Declarators", v$9);
Node v$11 = GNode.create("FieldDeclaration", v$6, v$8, v$10);
Node v$12 = GNode.create("Block", v$11);
Node v$13 = GNode.create("MethodDeclaration", v$2, null, v$4, "toString",
v$5, null, null, v$12);
return v$13;
}
/**
* Create a call expression.
*
* @param first The first.
* @param second The second.
* @return The generic node.
*/
public Node unionWrapper(Node first, Node second) {
Node v$1 = GNode.create("PrimaryIdentifier", "Primitives");
Node v$2 = GNode.create("Arguments", first, second);
Node v$3 = GNode.create("CallExpression", v$1, null, "wrapUnion", v$2);
return v$3;
}
}