use of org.whole.lang.commons.builders.ICommonsBuilder in project whole by wholeplatform.
the class AttributesMatcherFactory method getRefAttrPattern.
private static IEntity getRefAttrPattern() {
if (refAttrPattern == null) {
ModelBuilderOperation mop = new ModelBuilderOperation();
IXmlBuilder xb = (IXmlBuilder) mop.wGetBuilder(XmlLanguageKit.URI);
ICommonsBuilder cb = (ICommonsBuilder) mop.wGetBuilder(CommonsLanguageKit.URI);
xb.Attribute_();
xb.Name("ref");
cb.Variable_();
cb.VarType(XmlEntityDescriptorEnum.Value);
cb.VarName("value");
cb.Quantifier(QuantifierEnum.MANDATORY);
cb._Variable();
xb._Attribute();
refAttrPattern = mop.wGetResult();
}
return refAttrPattern;
}
use of org.whole.lang.commons.builders.ICommonsBuilder in project whole by wholeplatform.
the class CommonsLanguageDeployer method deploy.
public void deploy(ReflectionFactory platform) {
platform.addLanguageKit(new CommonsLanguageKit());
platform.addOperationFactory(CommonsLanguageKit.URI, GenericBuilderAdapterOperation.ID, new IBuilderFactory() {
public IBuilder create(IBuilder strategy, IEntityContext entityContext) {
return new CommonsGenericBuilderAdapter((ICommonsBuilder) strategy, entityContext);
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, SpecificBuilderAdapterOperation.ID, new IBuilderFactory() {
public IBuilder create(IBuilder strategy, IEntityContext entityContext) {
return new CommonsSpecificBuilderAdapter(strategy, entityContext);
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, ContentAssistOperation.ID, new IVisitorFactory() {
public IVisitor create(IOperation operation, int stage) {
return new CommonsContentAssistVisitor();
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, InterpreterOperation.ID, new IVisitorFactory() {
public IVisitor create(IOperation operation, int stage) {
if (stage == 0)
return new CommonsInterpreterVisitor();
else
return null;
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, DynamicCompilerOperation.ID, new IVisitorFactory() {
public IVisitor create(IOperation operation, int stage) {
if (stage == 0)
return new CommonsDynamicCompilerVisitor();
else
return null;
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, PrettyPrinterOperation.ID, new IVisitorFactory() {
public IVisitor create(IOperation operation, int stage) {
return new CommonsPrettyPrinterVisitor((PrettyPrinterOperation) operation);
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, FindDeclarationOperation.ID, new IVisitorFactory() {
public IVisitor create(IOperation operation, int stage) {
return null;
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, FindDeclarationsOperation.ID, new IVisitorFactory() {
public IVisitor create(IOperation operation, int stage) {
return null;
}
});
platform.addOperationFactory(CommonsLanguageKit.URI, IOperation.ANY_ID, new IVisitorFactory() {
public IVisitor create(IOperation operation, int stage) {
if (stage == 0)
return new CommonsInterpreterVisitor();
else
return null;
}
});
}
use of org.whole.lang.commons.builders.ICommonsBuilder in project whole by wholeplatform.
the class FunctionParam method apply.
public void apply(IBuilderOperation op) {
IImpBuilder b0 = (IImpBuilder) op.wGetBuilder(ImpLanguageKit.URI);
ICommonsBuilder cb = (ICommonsBuilder) op.wGetBuilder(CommonsLanguageKit.URI);
b0.FunctionDeclaration_();
b0.PrimitiveType("void");
b0.Name("testFunctionParam");
cb.Resolver();
b0.BlockStatement_(4);
b0.FunctionDeclaration_();
b0.PrimitiveType("int");
b0.Name("ifact");
b0.Parameters_(1);
b0.Parameter_();
b0.PrimitiveType("int");
b0.Name("n");
b0._Parameter();
b0._Parameters();
b0.BlockStatement_(3);
b0.VariableDeclaration_();
b0.PrimitiveType("int");
b0.Name("result");
b0.IntLiteral(1);
b0._VariableDeclaration();
b0.WhileStatement_();
b0.GreaterThan_();
b0.NameExpression("n");
b0.IntLiteral(0);
b0._GreaterThan();
b0.BlockStatement_(2);
b0.ExpressionStatement_();
b0.AssignmentExpression_();
b0.Name("result");
b0.Multiplication_();
b0.NameExpression("result");
b0.NameExpression("n");
b0._Multiplication();
b0._AssignmentExpression();
b0._ExpressionStatement();
b0.ExpressionStatement_();
b0.AssignmentExpression_();
b0.Name("n");
b0.Subtraction_();
b0.NameExpression("n");
b0.IntLiteral(1);
b0._Subtraction();
b0._AssignmentExpression();
b0._ExpressionStatement();
b0._BlockStatement();
b0._WhileStatement();
b0.ReturnStatement_();
b0.NameExpression("result");
b0._ReturnStatement();
b0._BlockStatement();
b0._FunctionDeclaration();
b0.FunctionDeclaration_();
b0.PrimitiveType("int");
b0.Name("exec");
b0.Parameters_(2);
b0.Parameter_();
b0.PrimitiveType("function");
b0.Name("f");
b0._Parameter();
b0.Parameter_();
b0.PrimitiveType("int");
b0.Name("par");
b0._Parameter();
b0._Parameters();
b0.ReturnStatement_();
b0.FunctionInvocationExpression_();
b0.NameExpression("f");
b0.Arguments_(1);
b0.NameExpression("par");
b0._Arguments();
b0._FunctionInvocationExpression();
b0._ReturnStatement();
b0._FunctionDeclaration();
b0.PrintlnStatement_();
b0.FunctionInvocationExpression_();
b0.NameExpression("ifact");
b0.Arguments_(1);
b0.IntLiteral(4);
b0._Arguments();
b0._FunctionInvocationExpression();
b0._PrintlnStatement();
b0.PrintlnStatement_();
b0.FunctionInvocationExpression_();
b0.NameExpression("exec");
b0.Arguments_(2);
b0.NameExpression("ifact");
b0.IntLiteral(4);
b0._Arguments();
b0._FunctionInvocationExpression();
b0._PrintlnStatement();
b0._BlockStatement();
b0._FunctionDeclaration();
}
use of org.whole.lang.commons.builders.ICommonsBuilder in project whole by wholeplatform.
the class MetaProgram method apply.
public void apply(IBuilderOperation op) {
IImpBuilder b0 = (IImpBuilder) op.wGetBuilder(ImpLanguageKit.URI);
ICommonsBuilder cb = (ICommonsBuilder) op.wGetBuilder(CommonsLanguageKit.URI);
b0.FunctionDeclaration_();
b0.PrimitiveType("void");
b0.Name("testTemplates");
cb.Resolver();
b0.BlockStatement_(6);
b0.VariableDeclaration_();
b0.PrimitiveType("entity");
b0.Name("l");
cb.StageUpFragment_();
b0.StringLiteral("ciao");
cb._StageUpFragment();
b0._VariableDeclaration();
b0.VariableDeclaration_();
b0.PrimitiveType("entity");
b0.Name("e");
cb.StageUpFragment_();
b0.PrintlnStatement_();
cb.StageDownFragment_();
b0.NameExpression("l");
cb._StageDownFragment();
b0._PrintlnStatement();
cb._StageUpFragment();
b0._VariableDeclaration();
b0.PrintlnStatement_();
b0.NameExpression("e");
b0._PrintlnStatement();
b0.VariableDeclaration_();
b0.PrimitiveType("entity");
b0.Name("f");
cb.StageUpFragment_();
b0.FunctionDeclaration_();
b0.PrimitiveType("void");
b0.Name("t");
cb.Resolver();
b0.BlockStatement_(2);
b0.PrintlnStatement_();
b0.StringLiteral("test");
b0._PrintlnStatement();
cb.StageDownFragment_();
b0.NameExpression("e");
cb._StageDownFragment();
b0._BlockStatement();
b0._FunctionDeclaration();
cb._StageUpFragment();
b0._VariableDeclaration();
b0.PrintlnStatement_();
b0.NameExpression("f");
b0._PrintlnStatement();
b0.ExpressionStatement_();
b0.FunctionInvocationExpression_();
b0.NameExpression("f");
cb.Resolver();
b0._FunctionInvocationExpression();
b0._ExpressionStatement();
b0._BlockStatement();
b0._FunctionDeclaration();
}
use of org.whole.lang.commons.builders.ICommonsBuilder in project whole by wholeplatform.
the class XsiModelTemplate method apply.
public void apply(IBuilderOperation operation) {
IXmlBuilder builder = (IXmlBuilder) operation.wGetBuilder(XmlLanguageKit.URI);
ICommonsBuilder cb = (ICommonsBuilder) operation.wGetBuilder(CommonsLanguageKit.URI);
if (EntityUtils.hasParent(model) && MappingStrategyUtils.hasElementNCName(model)) {
builder.Document_();
builder.Prolog_();
builder.XMLDecl_();
builder.Version("1.0");
builder.Encoding(encoding);
cb.Resolver();
builder._XMLDecl();
cb.Resolver();
cb.Resolver();
builder._Prolog();
apply(builder);
builder._Document();
} else
apply(builder);
}
Aggregations