package org.whole.examples.dataintegration.xsd;
import org.whole.lang.builders.IBuilderOperation;
import org.whole.lang.templates.AbstractTemplateFactory;
public class DTAUSGrammar extends AbstractTemplateFactory<org.whole.lang.grammars.model.Grammar> {
public void apply(IBuilderOperation op) {
org.whole.lang.grammars.builders.IGrammarsBuilder b0 = (org.whole.lang.grammars.builders.IGrammarsBuilder) op.wGetBuilder(org.whole.lang.grammars.reflect.GrammarsLanguageKit.URI);
b0.Grammar_();
b0.Name("DTAUSGrammar");
b0.LanguageDescriptor_();
b0.URI("http://xsd.dataintegration.examples.whole.org/DTAUS");
b0.Namespace("org.whole.examples.dataintegration.xsd");
b0.Name("DTAUS");
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._LanguageDescriptor();
b0.NonTerminal("DTAUS");
b0.LiteralTerminal_();
b0.RegExp("");
b0.Category("SEPARATOR");
b0.Literal("");
b0._LiteralTerminal();
b0.Productions_(0);
b0._Productions();
b0.Productions_(23);
b0.Production_();
b0.NonTerminal("DTAUS");
b0.Concatenate_(3);
b0.As_();
b0.NonTerminal("ARecord");
b0.Name("header");
b0._As();
b0.As_();
b0.NonTerminal("CRecords");
b0.Name("body");
b0._As();
b0.As_();
b0.NonTerminal("ERecord");
b0.Name("footer");
b0._As();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("ARecord");
b0.Concatenate_(14);
b0.LiteralTerminal_();
b0.RegExp("0128");
b0.Category("DELIMITER");
b0.Literal("0128");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp("A");
b0.Category("DELIMITER");
b0.Literal("A");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("TransactionKind");
b0.Name("transactionKind");
b0._As();
b0.As_();
b0.NonTerminal("SNumber");
b0.Name("bankID");
b0._As();
b0.LiteralTerminal_();
b0.RegExp("00000000");
b0.Category("DELIMITER");
b0.Literal("00000000");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("Chars");
b0.Name("customerName");
b0._As();
b0.As_();
b0.NonTerminal("SDate");
b0.Name("currentDate");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("LNumber");
b0.Name("accountNo");
b0._As();
b0.As_();
b0.NonTerminal("RefType");
b0.Name("refNo");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("FDate");
b0.Name("executionDate");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("Currency");
b0.Name("currency");
b0._As();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("CRecords");
b0.Repeat_();
b0.Size(1);
b0.Size(9999999);
b1.Resolver();
b0.NonTerminal("CRecord");
b0._Repeat();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("CRecord");
b0.Concatenate_(26);
b0.As_();
b0.NonTerminal("Size");
b0.Name("recSize");
b0._As();
b0.LiteralTerminal_();
b0.RegExp("C");
b0.Category("DELIMITER");
b0.Literal("C");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("SNumber");
b0.Name("contractingBankID");
b0._As();
b0.As_();
b0.NonTerminal("SNumber");
b0.Name("targetBankID");
b0._As();
b0.As_();
b0.NonTerminal("LNumber");
b0.Name("targetAccountNo");
b0._As();
b0.As_();
b0.NonTerminal("InternalID");
b0.Name("internalCustomerID");
b0._As();
b0.As_();
b0.NonTerminal("TransactionType");
b0.Name("transactionType");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("AMNumber");
b0.Name("dmAmount");
b0._As();
b0.As_();
b0.NonTerminal("SNumber");
b0.Name("bankID");
b0._As();
b0.As_();
b0.NonTerminal("LNumber");
b0.Name("accountNo");
b0._As();
b0.As_();
b0.NonTerminal("AMNumber");
b0.Name("euroAmount");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("Chars");
b0.Name("targetCustomerName");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("Chars");
b0.Name("customerName");
b0._As();
b0.As_();
b0.NonTerminal("Chars");
b0.Name("purpose");
b0._As();
b0.As_();
b0.NonTerminal("Currency");
b0.Name("currency");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("VSNumber");
b0.Name("expansionRecNo");
b0._As();
b0.As_();
b0.NonTerminal("ExpansionType");
b0.Name("expansionType1");
b0._As();
b0.As_();
b0.NonTerminal("Chars");
b0.Name("expansion1");
b0._As();
b0.As_();
b0.NonTerminal("ExpansionType");
b0.Name("expansionType2");
b0._As();
b0.As_();
b0.NonTerminal("Chars");
b0.Name("expansion2");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("ExpansionRecords");
b0.Name("expansionRecords");
b0._As();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("ExpansionRecords");
b0.Repeat_();
b0.Size(0);
b0.Size(4);
b1.Resolver();
b0.Production_();
b0.NonTerminal("ExpansionRecord");
b0.Concatenate_(2);
b0.Repeat_();
b0.Size(4);
b0.Size(4);
b1.Resolver();
b0.Concatenate_(2);
b0.As_();
b0.NonTerminal("ExpansionType");
b0.Name("expansionType");
b0._As();
b0.As_();
b0.NonTerminal("Chars");
b0.Name("expansion");
b0._As();
b0._Concatenate();
b0._Repeat();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0._Repeat();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("ERecord");
b0.Concatenate_(9);
b0.LiteralTerminal_();
b0.RegExp("0128");
b0.Category("DELIMITER");
b0.Literal("0128");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp("E");
b0.Category("DELIMITER");
b0.Literal("E");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("RecordNumber");
b0.Name("bodyLength");
b0._As();
b0.As_();
b0.NonTerminal("STotal");
b0.Name("dmTotal");
b0._As();
b0.As_();
b0.NonTerminal("LTotal");
b0.Name("accountTotal");
b0._As();
b0.As_();
b0.NonTerminal("LTotal");
b0.Name("bankTotal");
b0._As();
b0.As_();
b0.NonTerminal("STotal");
b0.Name("euroTotal");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(" ");
b0.Category("DELIMITER");
b0.Literal(" ");
b0._LiteralTerminal();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("TransactionKind");
b0.DataTerminal_();
b0.RegExp("[GL][BK]");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("SNumber");
b0.DataTerminal_();
b0.RegExp("[0-9]{8}");
b0.Category("LITERAL");
b0.Format("%08d");
b0._DataTerminal();
b0.DataType("INT");
b0._Production();
b0.Production_();
b0.NonTerminal("Chars");
b0.DataTerminal_();
b0.RegExp(".{27}");
b0.Category("DELIMITER");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("SDate");
b0.DataTerminal_();
b0.RegExp("[0-9]{6}");
b0.Category("DELIMITER");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("LNumber");
b0.DataTerminal_();
b0.RegExp("[0-9]{10}");
b0.Category("LITERAL");
b0.Format("%010d");
b0._DataTerminal();
b0.DataType("LONG");
b0._Production();
b0.Production_();
b0.NonTerminal("RefType");
b0.DataTerminal_();
b0.RegExp(".{10}");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("FDate");
b0.DataTerminal_();
b0.RegExp("(([0-9]{8})|([ ]{8}))");
b0.Category("DELIMITER");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("Currency");
b0.DataTerminal_();
b0.RegExp("[ 1]");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("Size");
b0.DataTerminal_();
b0.RegExp("[0-9]{4}");
b0.Category("LITERAL");
b0.Format("%04d");
b0._DataTerminal();
b0.DataType("SHORT");
b0._Production();
b0.Production_();
b0.NonTerminal("InternalID");
b0.DataTerminal_();
b0.RegExp(".{13}");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("TransactionType");
b0.DataTerminal_();
b0.RegExp("((04000)|(05000)|(05005)|(05006)|(05015)|(51000)|(53000)|(54[0-9][0-9]J)|(56000))");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("AMNumber");
b0.DataTerminal_();
b0.RegExp("[0-9]{11}");
b0.Category("LITERAL");
b0.Format("%011d");
b0._DataTerminal();
b0.DataType("LONG");
b0._Production();
b0.Production_();
b0.NonTerminal("VSNumber");
b0.DataTerminal_();
b0.RegExp("[0-9]{2}");
b0.Category("LITERAL");
b0.Format("%02d");
b0._DataTerminal();
b0.DataType("INT");
b0._Production();
b0.Production_();
b0.NonTerminal("ExpansionType");
b0.DataTerminal_();
b0.RegExp("(( )|(01)|(02)|(03))");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("STRING");
b0._Production();
b0.Production_();
b0.NonTerminal("RecordNumber");
b0.DataTerminal_();
b0.RegExp("[0-9]{7}");
b0.Category("LITERAL");
b0.Format("%07d");
b0._DataTerminal();
b0.DataType("INT");
b0._Production();
b0.Production_();
b0.NonTerminal("STotal");
b0.DataTerminal_();
b0.RegExp("[0-9]{13}");
b0.Category("LITERAL");
b0.Format("%013d");
b0._DataTerminal();
b0.DataType("LONG");
b0._Production();
b0.Production_();
b0.NonTerminal("LTotal");
b0.DataTerminal_();
b0.RegExp("[0-9]{17}");
b0.Category("LITERAL");
b0.Format("%017d");
b0._DataTerminal();
b0.DataType("LONG");
b0._Production();
b0._Productions();
b0.URI("http://xsd.dataintegration.examples.whole.org/DTAUSGrammar");
b0.Namespace("org.whole.examples.dataintegration.xsd.grammars");
b1.Resolver();
b0._Grammar();
}
}