package org.whole.lang.grammars.codebase;
import org.whole.lang.builders.IBuilderOperation;
import org.whole.lang.templates.AbstractTemplateFactory;
public class XmlGrammar 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.LanguageDescriptor_();
b0.URI("http://lang.whole.org/Xml");
b0.Namespace("org.whole.lang.xml");
b0.Name("Xml");
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("Document");
b0.LiteralTerminal_();
b0.RegExp("\\p{javaWhitespace}*");
b0.Category("SEPARATOR");
b0.Literal("");
b0._LiteralTerminal();
b0.Productions_(4);
b0.Production_();
b0.NonTerminal("QS");
b0.DataTerminal_();
b0.RegExp("[^\"]*");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("NCNAME");
b0.DataTerminal_();
b0.RegExp("[a-zA-Z][_a-zA-Z0-9]*");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("STRING");
b0.DataTerminal_();
b0.RegExp("(?s).*");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
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_(5);
b0.Production_();
b0.NonTerminal("Document");
b0.Concatenate_(2);
b0.Production_();
b0.NonTerminal("Prolog");
b0.Concatenate_(3);
b0.Optional_();
b0.As_();
b0.Production_();
b0.NonTerminal("XMLDecl");
b0.Concatenate_(12);
b0.LiteralTerminal_();
b0.RegExp("\\Q<?xml\\E");
b0.Category("DELIMITER");
b0.Literal("<?xml");
b0._LiteralTerminal();
b0.Empty_();
b0.Literal(" ");
b0._Empty();
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("QS");
b1.Resolver();
b0._Production();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0.Optional_();
b0.As_();
b0.Concatenate_(6);
b0.Empty_();
b0.Literal(" ");
b0._Empty();
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("QS");
b1.Resolver();
b0._Production();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0._Concatenate();
b0.Name("encoding");
b0._As();
b0._Optional();
b0.Optional_();
b0.As_();
b0.Concatenate_(6);
b0.Empty_();
b0.Literal(" ");
b0._Empty();
b0.LiteralTerminal_();
b0.RegExp("standalone");
b0.Category("DELIMITER");
b0.Literal("standalone");
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("Standalone");
b0.DataTerminal_();
b0.RegExp("yes|no");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b0.DataType("BOOLEAN");
b0._Production();
b0.LiteralTerminal_();
b0.RegExp("\"");
b0.Category("DELIMITER");
b0.Literal("\"");
b0._LiteralTerminal();
b0._Concatenate();
b0.Name("standalone");
b0._As();
b0._Optional();
b0.Empty_();
b0.Literal(" ");
b0._Empty();
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.Name("xmlDecl");
b0._As();
b0._Optional();
b0.Optional_();
b0.Production_();
b0.NonTerminal("DocTypeDecl");
b0.Concatenate_(6);
b0.LiteralTerminal_();
b0.RegExp("\\Q<!DOCTYPE\\E");
b0.Category("DELIMITER");
b0.Literal("<!DOCTYPE");
b0._LiteralTerminal();
b0.Empty_();
b0.Literal(" ");
b0._Empty();
b0.As_();
b0.NonTerminal("IName");
b0.Name("name");
b0._As();
b0.Optional_();
b0.As_();
b0.Concatenate_(2);
b0.Empty_();
b0.Literal(" ");
b0._Empty();
b0.Production_();
b0.NonTerminal("IExternalId");
b0.Choose_(2);
b0.Production_();
b0.NonTerminal("SystemId");
b0.Concatenate_(1);
b0.As_();
b0.Production_();
b0.NonTerminal("SystemLiteral");
b0.NonTerminal("QS");
b1.Resolver();
b0._Production();
b0.Name("systemLiteral");
b0._As();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("PublicId");
b0.Concatenate_(3);
b0.Production_();
b0.NonTerminal("PubidLiteral");
b0.NonTerminal("QS");
b1.Resolver();
b0._Production();
b0.Empty_();
b0.Literal(" ");
b0._Empty();
b0.NonTerminal("SystemLiteral");
b0._Concatenate();
b1.Resolver();
b0._Production();
b0._Choose();
b1.Resolver();
b0._Production();
b0._Concatenate();
b0.Name("externalId");
b0._As();
b0._Optional();
b0.LiteralTerminal_();
b0.RegExp(">");
b0.Category("DELIMITER");
b0.Literal(">");
b0._LiteralTerminal();
b0.Empty_();
b0.Literal("\n");
b0._Empty();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0._Optional();
b0.Optional_();
b0.Production_();
b0.NonTerminal("Misc");
b0.Repeat_();
b0.Size(0);
b0.Unbounded();
b0.Empty_();
b0.Literal("\n");
b0._Empty();
b0.NonTerminal("IMisc");
b0._Repeat();
b1.Resolver();
b0._Production();
b0._Optional();
b0._Concatenate();
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.Optional_();
b0.As_();
b0.Production_();
b0.NonTerminal("Attributes");
b0.Repeat_();
b0.Size(0);
b0.Unbounded();
b1.Resolver();
b0.Production_();
b0.NonTerminal("Attribute");
b0.Concatenate_(6);
b0.Empty_();
b0.Literal(" ");
b0._Empty();
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("QS");
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.Name("attributes");
b0._As();
b0._Optional();
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("NCNAME");
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("QualifiedName");
b0.Concatenate_(3);
b0.Production_();
b0.NonTerminal("NameSpace");
b0.NonTerminal("NCNAME");
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_(6);
b0.NonTerminal("Element");
b0.Production_();
b0.NonTerminal("CharData");
b0.DataTerminal_();
b0.RegExp("[^<]*");
b0.Category("LITERAL");
b0.Format("%s");
b0._DataTerminal();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("CDataSect");
b0.Concatenate_(3);
b0.LiteralTerminal_();
b0.RegExp("\\Q<![CDATA[\\E");
b0.Category("DELIMITER");
b0.Literal("<![CDATA[");
b0._LiteralTerminal();
b0.Repeat_();
b0.Size(0);
b0.Unbounded();
b1.Resolver();
b0.Production_();
b0.NonTerminal("CDataSectData");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0._Repeat();
b0.LiteralTerminal_();
b0.RegExp("]]>");
b0.Category("DELIMITER");
b0.Literal("]]>");
b0._LiteralTerminal();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("Comment");
b0.As_();
b0.Concatenate_(3);
b0.LiteralTerminal_();
b0.RegExp("<!--");
b0.Category("DELIMITER");
b0.Literal("<!--");
b0._LiteralTerminal();
b0.Production_();
b0.NonTerminal("CommentText");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.LiteralTerminal_();
b0.RegExp("-->");
b0.Category("DELIMITER");
b0.Literal("-->");
b0._LiteralTerminal();
b0._Concatenate();
b0.Name("text");
b0._As();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("PI");
b0.Concatenate_(5);
b0.LiteralTerminal_();
b0.RegExp("\\Q<?\\E");
b0.Category("DELIMITER");
b0.Literal("<?");
b0._LiteralTerminal();
b0.As_();
b0.NonTerminal("IName");
b0.Name("name");
b0._As();
b0.Empty_();
b0.Literal(" ");
b0._Empty();
b0.As_();
b0.Production_();
b0.NonTerminal("Instruction");
b0.NonTerminal("STRING");
b1.Resolver();
b0._Production();
b0.Name("instruction");
b0._As();
b0.LiteralTerminal_();
b0.RegExp("\\Q?>\\E");
b0.Category("DELIMITER");
b0.Literal("?>");
b0._LiteralTerminal();
b0._Concatenate();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("Content");
b0.Repeat_();
b0.Size(0);
b0.Unbounded();
b0.Empty_();
b0.Literal("\n");
b0._Empty();
b0.NonTerminal("IContent");
b0._Repeat();
b1.Resolver();
b0._Production();
b0._Choose();
b1.Resolver();
b0._Production();
b0.Production_();
b0.NonTerminal("IMisc");
b0.Choose_(2);
b0.NonTerminal("PI");
b0.NonTerminal("Comment");
b0._Choose();
b1.Resolver();
b0._Production();
b0._Productions();
b0.URI("http://examples.whole.org/XmlGrammar");
b0.Namespace("org.whole.examples.xmlgrammar");
b1.Resolver();
b1.Resolver();
b1.Resolver();
b1.Resolver();
b0._Grammar();
}
}