package org.whole.lang.grammars.util;
import org.whole.lang.builders.IBuilderOperation;
import org.whole.lang.templates.AbstractTemplateFactory;
public class TestXmlGrammar 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("XmlGrammar");
b0.URI("http://lang.whole.org/Xml");
b0.NonTerminal("Document");
b0.LiteralTerminal_();
b0.RegExp("\\p{javaWhitespace}+");
b0.Category("SEPARATOR");
b0.Literal("");
b0._LiteralTerminal();
b0.Productions_(2);
b0.Production_();
b0.NonTerminal("STRING");
b0.DataTerminal_();
b0.RegExp("(?s).*");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
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._Production();
b0.Production_();
b0.NonTerminal("SP");
b0.LiteralTerminal_();
b0.RegExp("\\p{javaWhitespace}+");
b0.Category("SEPARATOR");
b0.Literal(" ");
b0._LiteralTerminal();
b1.Resolver();
b0._Production();
b0._Productions();
b0.Productions_(4);
b0.Production_();
b0.NonTerminal("Document");
b0.Concatenate_(2);
b0.Production_();
b0.NonTerminal("Prolog");
b0.Optional_();
b0.Production_();
b0.NonTerminal("XmlDecl");
b0.Concatenate_(9);
b0.LiteralTerminal_();
b0.RegExp("\\Q<?xml\\E");
b0.Category("DELIMITER");
b0.Literal("<?xml");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp(" version");
b0.Category("DELIMITER");
b0.Literal(" version");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp("=");
b0.Category("DELIMITER");
b0.Literal("=");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0.Production_();
b0.NonTerminal("Version");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0.As_();
b0.Optional_();
b0.Concatenate_(5);
b0.LiteralTerminal_();
b0.RegExp(" encoding");
b0.Category("DELIMITER");
b0.Literal(" encoding");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp("=");
b0.Category("DELIMITER");
b0.Literal("=");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0.Production_();
b0.NonTerminal("Encoding");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0._Concatenate();
b0._Optional();
b0.Name("encoding");
b0._As();
b0.LiteralTerminal_();
b0.RegExp("\\Q?>\\E");
b0.Category("DELIMITER");
b0.Literal(" ?>");
b0._LiteralTerminal();
b0.Empty_();
b0.Literal("\n");
b0._Empty();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0._Optional();
b1.Resolver();
b0._Production();
b0.NonTerminal("Element");
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("Element");
b0.Concatenate_(8);
b0.LiteralTerminal_();
b0.RegExp("<");
b0.Category("DELIMITER");
b0.Literal("<");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("IName");
b0.Name("tag");
b0._As();
b0.As_();
b0.Optional_();
b0.Concatenate_(2);
b0.NonTerminal("SP");
b0.Production_();
b0.NonTerminal("Attributes");
b0.Repeat_();
b0.Size(0);
b0.Unbounded();
b0.NonTerminal("SP");
b0.Production_();
b0.NonTerminal("Attribute");
b0.Concatenate_(5);
b0.As_();
b0.NonTerminal("IName");
b0.Name("name");
b0._As();
b0.LiteralTerminal_();
b0.RegExp("=");
b0.Category("DELIMITER");
b0.Literal("=");
b0._LiteralTerminal();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0.Production_();
b0.NonTerminal("Value");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0._Repeat();
b1.Resolver();
b0._Production();
b0._Concatenate();
b0._Optional();
b0.Name("attributes");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(">");
b0.Category("DELIMITER");
b0.Literal(">");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("IContent");
b0.Name("content");
b0._As();
b0.LiteralTerminal_();
b0.RegExp("\\Q<\\\\E");
b0.Category("DELIMITER");
b0.Literal("<\\");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("IName");
b0.Name("tag");
b0._As();
b0.LiteralTerminal_();
b0.RegExp(">");
b0.Category("DELIMITER");
b0.Literal(">");
b0._LiteralTerminal();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("IName");
b0.Choose_(2);
b0.Production_();
b0.NonTerminal("Name");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("QualifiedName");
b0.Concatenate_(3);
b0.Production_();
b0.NonTerminal("NameSpace");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.LiteralTerminal_();
b0.RegExp(":");
b0.Category("DELIMITER");
b0.Literal(":");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("Name");
b0.Name("name");
b0._As();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0._Choose();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("IContent");
b0.Choose_(5);
b0.Production_();
b0.NonTerminal("Content");
b0.Repeat_();
b0.Size(0);
b0.Unbounded();
b0.Empty_();
b0.Literal("\n\t");
b0._Empty();
b0.NonTerminal("IContent");
b0._Repeat();
b1.Resolver();
b0._Production();
b0.NonTerminal("Element");
b0.Production_();
b0.NonTerminal("CharData");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("CDataSect");
b0.Repeat_();
b0.Size(0);
b0.Unbounded();
b1.Resolver();
b0.Production_();
b0.NonTerminal("CDataSectData");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0._Repeat();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("Comment");
b0.Production_();
b0.NonTerminal("CommentText");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b1.Resolver();
b0._Production();
b0._Choose();
b1.Resolver();
b0._Production();
b0._Productions();
b0.URI("http://lang.whole.org/XmlGrammar");
b0.Namespace("org.whole.lang.xml");
b1.Resolver();
b1.Resolver();
b1.Resolver();
b1.Resolver();
b0._Grammar();
}
}