package org.whole.lang.matchers;
import org.whole.lang.builders.IBuilderOperation;
import org.whole.lang.templates.AbstractTemplateFactory;
public class FunctionPattern extends AbstractTemplateFactory<org.whole.lang.java.model.ClassDeclaration> {
public void apply(IBuilderOperation op) {
org.whole.lang.java.builders.IJavaBuilder b0 = (org.whole.lang.java.builders.IJavaBuilder) op.wGetBuilder(org.whole.lang.java.reflect.JavaLanguageKit.URI);
b0.ClassDeclaration_();
org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI);
b1.Resolver();
b0.ExtendedModifiers_(1);
b0.Modifier("public");
b0._ExtendedModifiers();
b0.SimpleName("FunctionPattern");
b1.Resolver();
b1.Resolver();
b1.Resolver();
b0.BodyDeclarations_(2);
b0.MethodDeclaration_();
b1.Resolver();
b0.ExtendedModifiers_(2);
b0.Modifier("public");
b0.Modifier("static");
b0._ExtendedModifiers();
b1.Resolver();
b0.PrimitiveType("int");
b1.Variable_();
b1.VarType("http://lang.whole.org/Java#SimpleName");
b1.VarName("factName");
b1.Quantifier("!");
b1._Variable();
b0.Parameters_(1);
b0.SingleVariableDeclaration_();
b1.Resolver();
b0.PrimitiveType("int");
b0.Varargs(false);
b0.SimpleName("n");
b0.ExtraDimensions(0);
b1.Resolver();
b0._SingleVariableDeclaration();
b0._Parameters();
b1.Resolver();
b1.Resolver();
b0.Block_(3);
b0.VariableDeclarationStatement_();
b1.Resolver();
b0.PrimitiveType("int");
b0.VariableDeclarationFragments_(1);
b0.VariableDeclarationFragment_();
b0.SimpleName("result");
b0.ExtraDimensions(0);
b0.ByteLiteral((byte) 1);
b0._VariableDeclarationFragment();
b0._VariableDeclarationFragments();
b0._VariableDeclarationStatement();
b0.WhileStatement_();
b0.InfixExpression_();
b0.SimpleName("n");
b0.InfixOperator(">");
b0.ByteLiteral((byte) 0);
b0.Expressions();
b0._InfixExpression();
b0.Block_(2);
b0.ExpressionStatement_();
b0.Assignment_();
b0.SimpleName("result");
b0.AssignmentOperator("=");
b0.InfixExpression_();
b0.SimpleName("result");
b0.InfixOperator("*");
b0.SimpleName("n");
b0.Expressions();
b0._InfixExpression();
b0._Assignment();
b0._ExpressionStatement();
b0.ExpressionStatement_();
b0.Assignment_();
b0.SimpleName("n");
b0.AssignmentOperator("=");
b0.InfixExpression_();
b0.SimpleName("n");
b0.InfixOperator("-");
b0.ByteLiteral((byte) 1);
b0.Expressions();
b0._InfixExpression();
b0._Assignment();
b0._ExpressionStatement();
b0._Block();
b0._WhileStatement();
b0.ReturnStatement_();
b0.SimpleName("result");
b0._ReturnStatement();
b0._Block();
b0._MethodDeclaration();
b0.MethodDeclaration_();
b1.Resolver();
b0.ExtendedModifiers_(2);
b0.Modifier("public");
b0.Modifier("static");
b0._ExtendedModifiers();
b1.Resolver();
b0.PrimitiveType("void");
b0.SimpleName("main");
b0.Parameters_(1);
b0.SingleVariableDeclaration_();
b1.Resolver();
b0.ArrayType_();
b0.SimpleType("String");
b0._ArrayType();
b0.Varargs(false);
b0.SimpleName("args");
b0.ExtraDimensions(0);
b1.Resolver();
b0._SingleVariableDeclaration();
b0._Parameters();
b1.Resolver();
b1.Resolver();
b0.Block_(1);
b0.ExpressionStatement_();
b0.MethodInvocation_();
b0.QualifiedName("System.out");
b0.Types();
b0.SimpleName("println");
b0.Arguments_(1);
b0.MethodInvocation_();
b1.Resolver();
b0.Types();
b1.Variable_();
b1.VarType("http://lang.whole.org/Java#SimpleName");
b1.VarName("factName");
b1.Quantifier("!");
b1._Variable();
b0.Arguments_(1);
b1.Variable_();
b1.VarType("http://lang.whole.org/Java#ByteLiteral");
b1.VarName("factArg");
b1.Quantifier("!");
b1._Variable();
b0._Arguments();
b0._MethodInvocation();
b0._Arguments();
b0._MethodInvocation();
b0._ExpressionStatement();
b0._Block();
b0._MethodDeclaration();
b0._BodyDeclarations();
b0._ClassDeclaration();
}
}