package org.whole.lang.grammars.codebase; import org.whole.lang.builders.IBuilderOperation; import org.whole.lang.templates.AbstractTemplateFactory; public class ObjectiveCGrammar 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("ObjectiveCGrammar"); b0.LanguageDescriptor_(); b0.URI("whole:org.whole.lang.objectivec:ObjectiveC:1.0.0"); b0.Namespace("org.whole.lang.objectivec"); b0.Name("ObjectiveC"); b0.Version("1.0.0"); b0._LanguageDescriptor(); b0.NonTerminal("CompilationUnit"); b0.LiteralTerminal_(); b0.RegExp("(?m)(\\p{javaWhitespace}|(/\\*([^*]*|\\*[^/])*\\*/)|(//.*$))*"); b0.Category("SEPARATOR"); b0.Literal(""); b0._LiteralTerminal(); b0.Productions_(0); b0._Productions(); b0.Productions_(35); b0.Production_(); b0.NonTerminal("CompilationUnit"); b0.Concatenate_(1); b0.As_(); b0.Production_(); b0.NonTerminal("ToplevelDeclarations"); b0.Repeat_(); b0.Size(1); b0.Unbounded(); 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.NonTerminal("ToplevelDeclarationOrDirective"); b0.Choose_(3); b0.Production_(); b0.NonTerminal("ToplevelDeclaration"); b0.Concatenate_(2); b0.Choose_(9); b0.Production_(); b0.NonTerminal("ForwardClassDeclaration"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("@class"); b0.Category("DELIMITER"); b0.Literal("@class"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Names"); b0.Name("names"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ForwardProtocolDeclaration"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("@protocol"); b0.Category("DELIMITER"); b0.Literal("@protocol"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Names"); b0.Name("names"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("ClassInterface"); b0.NonTerminal("CategoryInterface"); b0.NonTerminal("ClassImplementation"); b0.NonTerminal("CategoryImplementation"); b0.NonTerminal("FormalProtocol"); b0.NonTerminal("FunctionDefinition"); b0.NonTerminal("Declaration"); b0._Choose(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("PreprocessorDirective"); b0.NonTerminal("Macro"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Name("declarations"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("PreprocessorDirective"); b0.Concatenate_(2); b0.Choose_(13); b0.Production_(); b0.NonTerminal("Import"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("import"); b0.Category("DELIMITER"); b0.Literal("import"); b0._LiteralTerminal(); b0.Space(); b0.NonTerminal("Unit"); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Include"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("include"); b0.Category("DELIMITER"); b0.Literal("include"); b0._LiteralTerminal(); b0.Space(); b0.NonTerminal("Unit"); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Define"); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("define"); b0.Category("DELIMITER"); b0.Literal("define"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Space(); b0._Concatenate(); b0.Production_(); b0.NonTerminal("MacroParameter"); b0.Choose_(2); b0.NonTerminal("Identifier"); b0.Production_(); b0.NonTerminal("VA_ARGS"); b0.LiteralTerminal_(); b0.RegExp("\\Q...\\E"); b0.Category("DELIMITER"); b0.Literal("..."); b0._LiteralTerminal(); b1.Resolver(); b0._Production(); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("macroParameters"); b0._As(); b0._Optional(); b0.Space(); b0.As_(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("(?m:[^\\\\]($))"); b0._ByDelimiter(); b0.Production_(); b0.NonTerminal("MacroReplacement"); b0.DataTerminal_(); b0.RegExp("(?s:.*)"); b0.Category("LITERAL"); b0.Format("%s"); b0._DataTerminal(); b1.Resolver(); b0._Production(); b0._Split(); b0.Name("replacement"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Ifdef"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("ifdef"); b0.Category("DELIMITER"); b0.Literal("ifdef"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Ifndef"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("ifndef"); b0.Category("DELIMITER"); b0.Literal("ifndef"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Undef"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("undef"); b0.Category("DELIMITER"); b0.Literal("undef"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("If"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("if"); b0.Category("DELIMITER"); b0.Literal("if"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.Production_(); b0.NonTerminal("MacroCondition"); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("(?m:[^\\\\]($))"); b0._ByDelimiter(); b0.DataTerminal_(); b0.RegExp("(?s:.+)"); b0.Category("LITERAL"); b0.Format("%s"); b0._DataTerminal(); b0._Split(); b1.Resolver(); b0._Production(); b0.Name("condition"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Elif"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("elif"); b0.Category("DELIMITER"); b0.Literal("elif"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("MacroCondition"); b0.Name("condition"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Else"); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("else"); b0.Category("DELIMITER"); b0.Literal("else"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Endif"); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("endif"); b0.Category("DELIMITER"); b0.Literal("endif"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Warning"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("warning"); b0.Category("DELIMITER"); b0.Literal("warning"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.Production_(); b0.NonTerminal("MacroMessage"); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("(?m:[^\\\\]($))"); b0._ByDelimiter(); b0.DataTerminal_(); b0.RegExp("(?s:.+)"); b0.Category("LITERAL"); b0.Format("%s"); b0._DataTerminal(); b0._Split(); b1.Resolver(); b0._Production(); b0.Name("message"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Error"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("error"); b0.Category("DELIMITER"); b0.Literal("error"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("MacroMessage"); b0.Name("message"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Pragma"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("#"); b0.Category("DELIMITER"); b0.Literal("#"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("pragma"); b0.Category("DELIMITER"); b0.Literal("pragma"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("MacroMessage"); b0.Name("message"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Choose(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Unit"); b0.Choose_(2); b0.Production_(); b0.NonTerminal("SystemUnit"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("<"); b0.Category("DELIMITER"); b0.Literal("<"); b0._LiteralTerminal(); b0.As_(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp(">"); b0._ByDelimiter(); b0.NonTerminal("UnitName"); b0._Split(); b0.Name("unitName"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(">"); b0.Category("DELIMITER"); b0.Literal(">"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("UserUnit"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("\""); b0.Category("DELIMITER"); b0.Literal("\""); b0._LiteralTerminal(); b0.As_(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("\""); b0._ByDelimiter(); b0.NonTerminal("UnitName"); b0._Split(); b0.Name("unitName"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\""); b0.Category("DELIMITER"); b0.Literal("\""); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("UnitName"); b0.DataTerminal_(); b0.RegExp("(?s:.+)"); b0.Category("LITERAL"); b0.Format("%s"); b0._DataTerminal(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ClassInterface"); b0.Concatenate_(13); b0.LiteralTerminal_(); b0.RegExp("@interface"); b0.Category("DELIMITER"); b0.Literal("@interface"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("className"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.Space(); b0.NonTerminal("Identifier"); b0._Concatenate(); b0.Name("superclassName"); b0._As(); b0._Optional(); b0.Optional_(); b0.As_(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("extension"); b0._As(); b0._Optional(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("<"); b0.Category("DELIMITER"); b0.Literal("<"); b0._LiteralTerminal(); b0.NonTerminal("Names"); b0.LiteralTerminal_(); b0.RegExp(">"); b0.Category("DELIMITER"); b0.Literal(">"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("protocolsNames"); b0._As(); b0._Optional(); b0.Optional_(); b0.As_(); b0.Production_(); b0.NonTerminal("InstanceVariableDeclarations"); b0.Concatenate_(5); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.NonTerminal("VariableOrVisibilityDeclaration"); b0._Repeat(); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Name("instanceVariableDeclarations"); b0._As(); b0._Optional(); b0.NewLine(); b0.NewLine(); b0.As_(); b0.Production_(); b0.NonTerminal("MethodDeclarations"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("MethodOrPropertyDeclaration"); b0.Choose_(4); b0.NonTerminal("MethodDeclaration"); b0.NonTerminal("PropertyDeclaration"); b0.NonTerminal("TypeDeclaration"); b0.NonTerminal("PreprocessorDirective"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Name("methodDeclarations"); b0._As(); b0.NewLine(); b0.LiteralTerminal_(); b0.RegExp("@end"); b0.Category("DELIMITER"); b0.Literal("@end"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ClassImplementation"); b0.Concatenate_(11); b0.LiteralTerminal_(); b0.RegExp("@implementation"); b0.Category("DELIMITER"); b0.Literal("@implementation"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("className"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.Space(); b0.NonTerminal("Identifier"); b0._Concatenate(); b0.Name("superclassName"); b0._As(); b0._Optional(); b0.Optional_(); b0.As_(); b0.NonTerminal("InstanceVariableDeclarations"); b0.Name("instanceVariableDeclarations"); b0._As(); b0._Optional(); b0.NewLine(); b0.NewLine(); b0.As_(); b0.Production_(); b0.NonTerminal("MethodImplementations"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("MethodOrPropertyImplementation"); b0.Choose_(3); b0.Concatenate_(2); b0.NonTerminal("MethodImplementation"); b0.NewLine(); b0._Concatenate(); b0.NonTerminal("PropertyImplementation"); b0.NonTerminal("PreprocessorDirective"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Name("methodImplementations"); b0._As(); b0.NewLine(); b0.LiteralTerminal_(); b0.RegExp("@end"); b0.Category("DELIMITER"); b0.Literal("@end"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("CategoryInterface"); b0.Concatenate_(11); b0.LiteralTerminal_(); b0.RegExp("@interface"); b0.Category("DELIMITER"); b0.Literal("@interface"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("className"); b0._As(); b0.As_(); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Identifier"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("categoryName"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("<"); b0.Category("DELIMITER"); b0.Literal("<"); b0._LiteralTerminal(); b0.NonTerminal("Names"); b0.LiteralTerminal_(); b0.RegExp(">"); b0.Category("DELIMITER"); b0.Literal(">"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("protocolsNames"); b0._As(); b0._Optional(); b0.NewLine(); b0.NewLine(); b0.As_(); b0.NonTerminal("MethodDeclarations"); b0.Name("methodDeclarations"); b0._As(); b0.NewLine(); b0.LiteralTerminal_(); b0.RegExp("@end"); b0.Category("DELIMITER"); b0.Literal("@end"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("CategoryImplementation"); b0.Concatenate_(10); b0.LiteralTerminal_(); b0.RegExp("@implementation"); b0.Category("DELIMITER"); b0.Literal("@implementation"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("className"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Identifier"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("categoryName"); b0._As(); b0._Optional(); b0.NewLine(); b0.NewLine(); b0.As_(); b0.NonTerminal("MethodImplementations"); b0.Name("methodImplementations"); b0._As(); b0.NewLine(); b0.LiteralTerminal_(); b0.RegExp("@end"); b0.Category("DELIMITER"); b0.Literal("@end"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("FunctionDefinition"); b0.Concatenate_(6); b0.As_(); b0.NonTerminal("DeclarationQualifiers"); b0.Name("qualifiers"); b0._As(); b0.As_(); b0.NonTerminal("TypeSpecifier"); b0.Name("specifier"); b0._As(); b0.Space(); b0.NonTerminal("Declarator"); b0.NonTerminal("CompoundStatement"); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Declaration"); b0.Concatenate_(6); b0.As_(); b0.NonTerminal("DeclarationQualifiers"); b0.Name("qualifiers"); b0._As(); b0.As_(); b0.NonTerminal("TypeSpecifier"); b0.Name("specifier"); b0._As(); b0.As_(); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Space(); b0._Concatenate(); b0.Production_(); b0.NonTerminal("DeclaratorWithInitializer"); b0.Concatenate_(2); b0.NonTerminal("Declarator"); b0.Optional_(); b0.Production_(); b0.NonTerminal("Initializer"); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("="); b0.Category("DELIMITER"); b0.Literal("="); b0._LiteralTerminal(); b0.Space(); b0.Choose_(2); b0.NonTerminal("Expression"); b0.Production_(); b0.NonTerminal("Initializers"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.Repeat_(); b0.Size(1); b0.Unbounded(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Space(); b0._Concatenate(); b0.NonTerminal("Initializer"); b0._Repeat(); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Choose(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Repeat(); b0.Name("declarators"); b0._As(); b0.Optional_(); b0.As_(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp(";"); b0._ByDelimiter(); b0.Concatenate_(2); b0.Space(); b0.NonTerminal("Macro"); b0._Concatenate(); b0._Split(); b0.Name("macro"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("TypeDeclaration"); b0.Concatenate_(5); b0.As_(); b0.NonTerminal("DeclarationQualifiers"); b0.Name("qualifiers"); b0._As(); b0.As_(); b0.NonTerminal("TypeSpecifier"); b0.Name("specifier"); b0._As(); b0.Optional_(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("declarator"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("VariableOrVisibilityDeclaration"); b0.Choose_(4); b0.Concatenate_(2); b0.Production_(); b0.NonTerminal("VisibilitySpecification"); b0.Choose_(4); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("@private"); b0.Category("DELIMITER"); b0.Literal("@private"); b0._LiteralTerminal(); b0.Name("private"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("@protected"); b0.Category("DELIMITER"); b0.Literal("@protected"); b0._LiteralTerminal(); b0.Name("protected"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("@public"); b0.Category("DELIMITER"); b0.Literal("@public"); b0._LiteralTerminal(); b0.Name("public"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("@package"); b0.Category("DELIMITER"); b0.Literal("@package"); b0._LiteralTerminal(); b0.Name("package"); b0._As(); b0._Choose(); b1.Resolver(); b0._Production(); b0.NewLine(); b0._Concatenate(); b0.Concatenate_(2); b0.Indent(); b0.NonTerminal("StructField"); b0._Concatenate(); b0.NonTerminal("PreprocessorDirective"); b0.NonTerminal("Macro"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("FormalProtocol"); b0.Concatenate_(9); b0.LiteralTerminal_(); b0.RegExp("@protocol"); b0.Category("DELIMITER"); b0.Literal("@protocol"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("protocolName"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("<"); b0.Category("DELIMITER"); b0.Literal("<"); b0._LiteralTerminal(); b0.NonTerminal("Names"); b0.LiteralTerminal_(); b0.RegExp(">"); b0.Category("DELIMITER"); b0.Literal(">"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("protocolsNames"); b0._As(); b0._Optional(); b0.NewLine(); b0.As_(); b0.Production_(); b0.NonTerminal("ProtocolMethodDeclarations"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("ProtocolMethodDeclaration"); b0.Choose_(5); b0.NonTerminal("MethodDeclaration"); b0.NonTerminal("PropertyDeclaration"); b0.NonTerminal("TypeDeclaration"); b0.Concatenate_(2); b0.Production_(); b0.NonTerminal("OptionalOrRequiredSpecification"); b0.Choose_(2); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("@optional"); b0.Category("DELIMITER"); b0.Literal("@optional"); b0._LiteralTerminal(); b0.Name("optional"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("@required"); b0.Category("DELIMITER"); b0.Literal("@required"); b0._LiteralTerminal(); b0.Name("required"); b0._As(); b0._Choose(); b1.Resolver(); b0._Production(); b0.NewLine(); b0._Concatenate(); b0.NonTerminal("PreprocessorDirective"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Name("methodDeclarations"); b0._As(); b0.NewLine(); b0.LiteralTerminal_(); b0.RegExp("@end"); b0.Category("DELIMITER"); b0.Literal("@end"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("MethodDeclaration"); b0.Concatenate_(10); b0.NonTerminal("ClassOrInstance"); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Type"); b0.Name("type"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.As_(); b0.NonTerminal("Arguments"); b0.Name("arguments"); b0._As(); b0.Optional_(); b0.As_(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp(";"); b0._ByDelimiter(); b0.Concatenate_(2); b0.Space(); b0.NonTerminal("Macro"); b0._Concatenate(); b0._Split(); b0.Name("macro"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("MethodImplementation"); b0.Concatenate_(10); b0.NonTerminal("ClassOrInstance"); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Type"); b0.Name("type"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.As_(); b0.NonTerminal("Arguments"); b0.Name("arguments"); b0._As(); b0.NewLine(); b0.As_(); b0.NonTerminal("CompoundStatement"); b0.Name("definition"); b0._As(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ClassOrInstance"); b0.Choose_(2); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("\\Q+\\E"); b0.Category("DELIMITER"); b0.Literal("+"); b0._LiteralTerminal(); b0.Name("class"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("-"); b0.Category("DELIMITER"); b0.Literal("-"); b0._LiteralTerminal(); b0.Name("instance"); b0._As(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Arguments"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("Argument"); b0.Concatenate_(7); b0.Optional_(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("keyword"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Type"); b0.Name("type"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.Optional_(); b0.Production_(); b0.NonTerminal("Vararg"); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("\\Q...\\E"); b0.Category("DELIMITER"); b0.Literal("..."); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("PropertyDeclaration"); b0.Concatenate_(12); b0.LiteralTerminal_(); b0.RegExp("@property"); b0.Category("DELIMITER"); b0.Literal("@property"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Production_(); b0.NonTerminal("Attribute"); b0.Choose_(3); b0.Production_(); b0.NonTerminal("KeywordAttribute"); b0.Choose_(6); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("nonatomic"); b0.Category("DELIMITER"); b0.Literal("nonatomic"); b0._LiteralTerminal(); b0.Name("nonatomic"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("readwrite"); b0.Category("DELIMITER"); b0.Literal("readwrite"); b0._LiteralTerminal(); b0.Name("readwrite"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("readonly"); b0.Category("DELIMITER"); b0.Literal("readonly"); b0._LiteralTerminal(); b0.Name("readonly"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("assign"); b0.Category("DELIMITER"); b0.Literal("assign"); b0._LiteralTerminal(); b0.Name("assign"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("retain"); b0.Category("DELIMITER"); b0.Literal("retain"); b0._LiteralTerminal(); b0.Name("retain"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("copy"); b0.Category("DELIMITER"); b0.Literal("copy"); b0._LiteralTerminal(); b0.Name("copy"); b0._As(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("GetterAttribute"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("getter"); b0.Category("DELIMITER"); b0.Literal("getter"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("="); b0.Category("DELIMITER"); b0.Literal("="); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("SetterAttribute"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("setter"); b0.Category("DELIMITER"); b0.Literal("setter"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("="); b0.Category("DELIMITER"); b0.Literal("="); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b0.Name("attributes"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.Space(); b0.Optional_(); b0.When_(); b0.Concatenate_(5); b0.NonTerminal("Macro"); b0.NonTerminal("TypeSpecifier"); b0.LiteralTerminal_(); b0.RegExp(" "); b0.Category("DELIMITER"); b0.Literal(" "); b0._LiteralTerminal(); b0.NonTerminal("Identifier"); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0._Concatenate(); b0.As_(); b0.Concatenate_(2); b0.NonTerminal("Macro"); b0.Space(); b0._Concatenate(); b0.Name("typeMacro"); b0._As(); b0._When(); b0._Optional(); b0.As_(); b0.NonTerminal("Type"); b0.Name("type"); b0._As(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.Optional_(); b0.As_(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp(";"); b0._ByDelimiter(); b0.Concatenate_(2); b0.Space(); b0.NonTerminal("Macro"); b0._Concatenate(); b0._Split(); b0.Name("macro"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("PropertyImplementation"); b0.Choose_(2); b0.Production_(); b0.NonTerminal("SynthesizeImplementation"); b0.Concatenate_(5); b0.LiteralTerminal_(); b0.RegExp("@synthesize"); b0.Category("DELIMITER"); b0.Literal("@synthesize"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.Repeat_(); b0.Size(1); b0.Unbounded(); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Production_(); b0.NonTerminal("PropertyWithVariable"); b0.Concatenate_(2); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("="); b0.Category("DELIMITER"); b0.Literal("="); b0._LiteralTerminal(); b0.Space(); b0.NonTerminal("Identifier"); b0._Concatenate(); b0.Name("variableName"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Repeat(); b0.Name("properties"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("DynamicImplementation"); b0.Concatenate_(5); b0.LiteralTerminal_(); b0.RegExp("@dynamic"); b0.Category("DELIMITER"); b0.Literal("@dynamic"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Names"); b0.Name("properties"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("EnumValues"); b0.Repeat_(); b0.Size(1); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("EnumValueOrDirective"); b0.Choose_(2); b0.Production_(); b0.NonTerminal("EnumValue"); b0.Concatenate_(5); b0.Indent(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("="); b0.Category("DELIMITER"); b0.Literal("="); b0._LiteralTerminal(); b0.Space(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("(?m:[,}]|$)"); b0._ByDelimiter(); b0.NonTerminal("Expression"); b0._Split(); b0._Concatenate(); b0.Name("value"); b0._As(); b0._Optional(); b0.Optional_(); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0._Optional(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("PreprocessorDirective"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("StructFields"); b0.Repeat_(); b0.Size(1); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("StructFieldOrDirective"); b0.Choose_(2); b0.Production_(); b0.NonTerminal("StructField"); b0.Concatenate_(7); b0.Indent(); b0.As_(); b0.NonTerminal("TypeQualifiers"); b0.Name("qualifiers"); b0._As(); b0.As_(); b0.NonTerminal("TypeSpecifier"); b0.Name("specifier"); b0._As(); b0.Space(); b0.As_(); b0.Production_(); b0.NonTerminal("StructDeclarators"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Space(); b0._Concatenate(); b0.Production_(); b0.NonTerminal("StructDeclarator"); b0.Choose_(2); b0.Production_(); b0.NonTerminal("BitfieldDeclarator"); b0.Concatenate_(2); b0.NonTerminal("Declarator"); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.Space(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("[,;]"); b0._ByDelimiter(); b0.NonTerminal("Expression"); b0._Split(); b0._Concatenate(); b0.Name("bitfield"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("Declarator"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Name("declarators"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("PreprocessorDirective"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Type"); b0.Concatenate_(3); b0.As_(); b0.NonTerminal("TypeQualifiers"); b0.Name("qualifiers"); b0._As(); b0.As_(); b0.NonTerminal("TypeSpecifier"); b0.Name("specifier"); b0._As(); b0.Optional_(); b0.As_(); b0.NonTerminal("AbstractDeclarator"); b0.Name("declarator"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("AbstractDeclarator"); b0.Choose_(5); b0.Production_(); b0.NonTerminal("AbstractPointer"); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q*\\E"); b0.Category("DELIMITER"); b0.Literal("*"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("TypeQualifiers"); b0.Name("qualifiers"); b0._As(); b0.Optional_(); b0.As_(); b0.NonTerminal("AbstractDeclarator"); b0.Name("declarator"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("AbstractConforms"); b0.Concatenate_(5); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("<"); b0.Category("DELIMITER"); b0.Literal("<"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Names"); b0.Name("protocolsNames"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(">"); b0.Category("DELIMITER"); b0.Literal(">"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("AbstractDeclarator"); b0.Name("declarator"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("AbstractDerivedFunction"); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("AbstractDeclarator"); b0.Name("declarator"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Parameters"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Block"); b0.Concatenate_(8); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("\\Q^\\E"); b0.Category("DELIMITER"); b0.Literal("^"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Parameters"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("AbstractArray"); b0.Repeat_(); b0.Size(1); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("Dimension"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("\\Q[\\E"); b0.Category("DELIMITER"); b0.Literal("["); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("]"); b0._ByDelimiter(); b0.NonTerminal("Expression"); b0._Split(); b0.Name("size"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp("]"); b0.Category("DELIMITER"); b0.Literal("]"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Declarator"); b0.Choose_(8); b0.Production_(); b0.NonTerminal("Pointer"); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q*\\E"); b0.Category("DELIMITER"); b0.Literal("*"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("TypeQualifiers"); b0.Name("qualifiers"); b0._As(); b0.As_(); b0.NonTerminal("Declarator"); b0.Name("declarator"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Conforms"); b0.Concatenate_(5); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("<"); b0.Category("DELIMITER"); b0.Literal("<"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Names"); b0.Name("protocolsNames"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(">"); b0.Category("DELIMITER"); b0.Literal(">"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("Declarator"); b0.Name("declarator"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("DerivedFunction"); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Declarator"); b0.Name("declarator"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Parameters"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("DerivedArray"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Declarator"); b0.Name("declarator"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("AbstractArray"); b0.Name("dimensions"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("Block"); b0.Production_(); b0.NonTerminal("Function"); b0.Concatenate_(5); b0.NonTerminal("Identifier"); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Parameters"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Array"); b0.Concatenate_(2); b0.NonTerminal("Identifier"); b0.As_(); b0.NonTerminal("AbstractArray"); b0.Name("dimensions"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("Identifier"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Parameters"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Space(); b0._Concatenate(); b0.Production_(); b0.NonTerminal("Parameter"); b0.Concatenate_(3); b0.As_(); b0.NonTerminal("DeclarationQualifiers"); b0.Name("qualifiers"); b0._As(); b0.As_(); b0.NonTerminal("TypeSpecifier"); b0.Name("specifier"); b0._As(); b0.Optional_(); b0.As_(); b0.Production_(); b0.NonTerminal("ParameterDeclarator"); b0.Choose_(2); b0.NonTerminal("Declarator"); b0.NonTerminal("AbstractDeclarator"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Name("declarator"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("DeclarationQualifiers"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Concatenate_(2); b0.Production_(); b0.NonTerminal("DeclarationQualifier"); b0.Choose_(2); b0.Production_(); b0.NonTerminal("StorageClass"); b0.Choose_(5); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("typedef"); b0.Category("DELIMITER"); b0.Literal("typedef"); b0._LiteralTerminal(); b0.Name("typedef"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("extern"); b0.Category("DELIMITER"); b0.Literal("extern"); b0._LiteralTerminal(); b0.Name("extern"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("static"); b0.Category("DELIMITER"); b0.Literal("static"); b0._LiteralTerminal(); b0.Name("static"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("register"); b0.Category("DELIMITER"); b0.Literal("register"); b0._LiteralTerminal(); b0.Name("register"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("auto"); b0.Category("DELIMITER"); b0.Literal("auto"); b0._LiteralTerminal(); b0.Name("auto"); b0._As(); b0._Choose(); b1.Resolver(); b0._Production(); b0.NonTerminal("TypeQualifier"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Space(); b0._Concatenate(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("TypeQualifiers"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Concatenate_(2); b0.NonTerminal("TypeQualifier"); b0.Space(); b0._Concatenate(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("TypeQualifier"); b0.Choose_(8); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("const"); b0.Category("DELIMITER"); b0.Literal("const"); b0._LiteralTerminal(); b0.Name("const"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("volatile"); b0.Category("DELIMITER"); b0.Literal("volatile"); b0._LiteralTerminal(); b0.Name("volatile"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("inout"); b0.Category("DELIMITER"); b0.Literal("inout"); b0._LiteralTerminal(); b0.Name("inout"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("in "); b0.Category("DELIMITER"); b0.Literal("in"); b0._LiteralTerminal(); b0.Name("in"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("out"); b0.Category("DELIMITER"); b0.Literal("out"); b0._LiteralTerminal(); b0.Name("out"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("bycopy"); b0.Category("DELIMITER"); b0.Literal("bycopy"); b0._LiteralTerminal(); b0.Name("bycopy"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("byref"); b0.Category("DELIMITER"); b0.Literal("byref"); b0._LiteralTerminal(); b0.Name("byref"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("oneway"); b0.Category("DELIMITER"); b0.Literal("oneway"); b0._LiteralTerminal(); b0.Name("oneway"); b0._As(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("TypeSpecifier"); b0.Choose_(14); b0.Production_(); b0.NonTerminal("DataType"); b0.Choose_(8); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("void"); b0.Category("DELIMITER"); b0.Literal("void"); b0._LiteralTerminal(); b0.Name("void"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("char"); b0.Category("DELIMITER"); b0.Literal("char"); b0._LiteralTerminal(); b0.Name("char"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("short"); b0.Category("DELIMITER"); b0.Literal("short"); b0._LiteralTerminal(); b0.Name("short"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("int"); b0.Category("DELIMITER"); b0.Literal("int"); b0._LiteralTerminal(); b0.Name("int"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("long"); b0.Category("DELIMITER"); b0.Literal("long"); b0._LiteralTerminal(); b0.Name("long"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("float"); b0.Category("DELIMITER"); b0.Literal("float"); b0._LiteralTerminal(); b0.Name("float"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("double"); b0.Category("DELIMITER"); b0.Literal("double"); b0._LiteralTerminal(); b0.Name("double"); b0._As(); b0.As_(); b0.LiteralTerminal_(); b0.RegExp("BOOL"); b0.Category("DELIMITER"); b0.Literal("BOOL"); b0._LiteralTerminal(); b0.Name("BOOL"); b0._As(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Signed"); b0.When_(); b0.LiteralTerminal_(); b0.RegExp("signed\\W"); b0.Category("DELIMITER"); b0.Literal("signed"); b0._LiteralTerminal(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp("signed"); b0.Category("DELIMITER"); b0.Literal("signed"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("DataType"); b0.Name("dataType"); b0._As(); b0._Optional(); b0._Concatenate(); b0._When(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Unsigned"); b0.When_(); b0.LiteralTerminal_(); b0.RegExp("unsigned\\W"); b0.Category("DELIMITER"); b0.Literal("unsigned"); b0._LiteralTerminal(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp("unsigned"); b0.Category("DELIMITER"); b0.Literal("unsigned"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("DataType"); b0.Name("dataType"); b0._As(); b0._Optional(); b0._Concatenate(); b0._When(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("EnumDeclaration"); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("enum"); b0.Category("DELIMITER"); b0.Literal("enum"); b0._LiteralTerminal(); b0.Space(); b0.Optional_(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("enumTag"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.As_(); b0.NonTerminal("EnumValues"); b0.Name("values"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("StructDeclaration"); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("struct"); b0.Category("DELIMITER"); b0.Literal("struct"); b0._LiteralTerminal(); b0.Space(); b0.Optional_(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("structTag"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.As_(); b0.NonTerminal("StructFields"); b0.Name("fields"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("UnionDeclaration"); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("union"); b0.Category("DELIMITER"); b0.Literal("union"); b0._LiteralTerminal(); b0.Space(); b0.Optional_(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("unionTag"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.As_(); b0.NonTerminal("StructFields"); b0.Name("fields"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Enum"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("enum"); b0.Category("DELIMITER"); b0.Literal("enum"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("enumTag"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Struct"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("struct"); b0.Category("DELIMITER"); b0.Literal("struct"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("structTag"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Union"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("union"); b0.Category("DELIMITER"); b0.Literal("union"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("unionTag"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Id"); b0.When_(); b0.Concatenate_(1); b0.LiteralTerminal_(); b0.RegExp("id\\W"); b0.Category("DELIMITER"); b0.Literal("id"); b0._LiteralTerminal(); b0._Concatenate(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp("id"); b0.Category("DELIMITER"); b0.Literal("id"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.Concatenate_(4); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("<"); b0.Category("DELIMITER"); b0.Literal("<"); b0._LiteralTerminal(); b0.NonTerminal("Names"); b0.LiteralTerminal_(); b0.RegExp(">"); b0.Category("DELIMITER"); b0.Literal(">"); b0._LiteralTerminal(); b0._Concatenate(); b0.Name("protocolsNames"); b0._As(); b0._Optional(); b0._Concatenate(); b0._When(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Class"); b0.When_(); b0.LiteralTerminal_(); b0.RegExp("Class\\W"); b0.Category("DELIMITER"); b0.Literal("Class"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("Class"); b0.Category("DELIMITER"); b0.Literal("Class"); b0._LiteralTerminal(); b0._When(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("SEL"); b0.When_(); b0.LiteralTerminal_(); b0.RegExp("SEL\\W"); b0.Category("DELIMITER"); b0.Literal("SEL"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("SEL"); b0.Category("DELIMITER"); b0.Literal("SEL"); b0._LiteralTerminal(); b0._When(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("IMP"); b0.When_(); b0.LiteralTerminal_(); b0.RegExp("IMP\\W"); b0.Category("DELIMITER"); b0.Literal("IMP"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("IMP"); b0.Category("DELIMITER"); b0.Literal("IMP"); b0._LiteralTerminal(); b0._When(); b1.Resolver(); b0._Production(); b0.NonTerminal("Identifier"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Statement"); b0.Choose_(17); b0.Concatenate_(2); b0.Production_(); b0.NonTerminal("CompoundStatement"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.As_(); b0.Production_(); b0.NonTerminal("Statements"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("StatementOrDeclaration"); b0.Choose_(2); b0.NonTerminal("Statement"); b0.NonTerminal("Declaration"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Name("statements"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NewLine(); b0._Concatenate(); b0.Production_(); b0.NonTerminal("IfStatement"); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("if"); b0.Category("DELIMITER"); b0.Literal("if"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("condition"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("NestedStatement"); b0.Name("thenStatement"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp("else"); b0.Category("DELIMITER"); b0.Literal("else"); b0._LiteralTerminal(); b0.NonTerminal("NestedStatement"); b0._Concatenate(); b0.Name("elseStatement"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("SwitchStatement"); b0.Concatenate_(11); b0.LiteralTerminal_(); b0.RegExp("switch"); b0.Category("DELIMITER"); b0.Literal("switch"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("condition"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.As_(); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("SwitchCase"); b0.Choose_(3); b0.Production_(); b0.NonTerminal("CaseStatement"); b0.Concatenate_(5); b0.LiteralTerminal_(); b0.RegExp("case"); b0.Category("DELIMITER"); b0.Literal("case"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("case"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Statement"); b0.Name("statement"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("DefaultStatement"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("default"); b0.Category("DELIMITER"); b0.Literal("default"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Statement"); b0.Name("statement"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("Statement"); b0._Choose(); b1.Resolver(); b0._Production(); b0._Repeat(); b0.Name("cases"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("WhileStatement"); b0.Concatenate_(6); b0.LiteralTerminal_(); b0.RegExp("while"); b0.Category("DELIMITER"); b0.Literal("while"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("condition"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("NestedStatement"); b0.Name("statement"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("DoWhileStatement"); b0.Concatenate_(10); b0.LiteralTerminal_(); b0.RegExp("do"); b0.Category("DELIMITER"); b0.Literal("do"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("NestedStatement"); b0.Name("statement"); b0._As(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("while"); b0.Category("DELIMITER"); b0.Literal("while"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("condition"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ForStatement"); b0.Concatenate_(10); b0.LiteralTerminal_(); b0.RegExp("for"); b0.Category("DELIMITER"); b0.Literal("for"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("initializer"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("condition"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("increment"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("NestedStatement"); b0.Name("statement"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ForInStatement"); b0.Concatenate_(9); b0.LiteralTerminal_(); b0.RegExp("for"); b0.Category("DELIMITER"); b0.Literal("for"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.NonTerminal("Type"); b0.Name("type"); b0._As(); b0._Optional(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("in"); b0.Category("DELIMITER"); b0.Literal("in"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("condition"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("NestedStatement"); b0.Name("statement"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("LabeledStatement"); b0.Concatenate_(4); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("label"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Statement"); b0.Name("statement"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("GotoStatement"); b0.Concatenate_(5); b0.LiteralTerminal_(); b0.RegExp("goto"); b0.Category("DELIMITER"); b0.Literal("goto"); b0._LiteralTerminal(); b0.Space(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("label"); b0._As(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ContinueStatement"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("continue"); b0.Category("DELIMITER"); b0.Literal("continue"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("BreakStatement"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("break"); b0.Category("DELIMITER"); b0.Literal("break"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ReturnStatement"); b0.Concatenate_(4); b0.LiteralTerminal_(); b0.RegExp("return"); b0.Category("DELIMITER"); b0.Literal("return"); b0._LiteralTerminal(); b0.Optional_(); b0.As_(); b0.Concatenate_(2); b0.Space(); b0.NonTerminal("Expression"); b0._Concatenate(); b0.Name("expression"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("TryStatement"); b0.Concatenate_(9); b0.LiteralTerminal_(); b0.RegExp("@try"); b0.Category("DELIMITER"); b0.Literal("@try"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.NonTerminal("Statements"); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0.NewLine(); b0.As_(); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("CatchBlock"); b0.Concatenate_(11); b0.LiteralTerminal_(); b0.RegExp("@catch"); b0.Category("DELIMITER"); b0.Literal("@catch"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Expression"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.NonTerminal("Statements"); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Repeat(); b0.Name("catchBlocks"); b0._As(); b0.Optional_(); b0.As_(); b0.Concatenate_(7); b0.LiteralTerminal_(); b0.RegExp("@finally"); b0.Category("DELIMITER"); b0.Literal("@finally"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.NonTerminal("Statements"); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b0.Name("finallyBlock"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("SynchronizedStatement"); b0.Concatenate_(10); b0.LiteralTerminal_(); b0.RegExp("@synchronized"); b0.Category("DELIMITER"); b0.Literal("@synchronized"); b0._LiteralTerminal(); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.NonTerminal("Expression"); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0.Space(); b0.LiteralTerminal_(); b0.RegExp("\\Q{\\E"); b0.Category("DELIMITER"); b0.Literal("{"); b0._LiteralTerminal(); b0.NewLine(); b0.NonTerminal("Statements"); b0.LiteralTerminal_(); b0.RegExp("}"); b0.Category("DELIMITER"); b0.Literal("}"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("ExpressionStatement"); b0.Concatenate_(3); b0.NonTerminal("Expression"); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("EmptyStatement"); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(";"); b0.Category("DELIMITER"); b0.Literal(";"); b0._LiteralTerminal(); b0.NewLine(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.NonTerminal("PreprocessorDirective"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("NestedStatement"); b0.Choose_(2); b0.Concatenate_(2); b0.Space(); b0.NonTerminal("CompoundStatement"); b0._Concatenate(); b0.Concatenate_(2); b0.NewLine(); b0.NonTerminal("Statement"); b0._Concatenate(); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Expression"); b0.Choose_(6); b0.Production_(); b0.NonTerminal("MessageExpression"); b0.Concatenate_(5); b0.LiteralTerminal_(); b0.RegExp("\\Q[\\E"); b0.Category("DELIMITER"); b0.Literal("["); b0._LiteralTerminal(); b0.As_(); b0.Production_(); b0.NonTerminal("Receiver"); b0.Choose_(4); b0.Production_(); b0.NonTerminal("Self"); b0.LiteralTerminal_(); b0.RegExp("self"); b0.Category("DELIMITER"); b0.Literal("self"); b0._LiteralTerminal(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Super"); b0.LiteralTerminal_(); b0.RegExp("super"); b0.Category("DELIMITER"); b0.Literal("super"); b0._LiteralTerminal(); b1.Resolver(); b0._Production(); b0.NonTerminal("Identifier"); b0.NonTerminal("Expression"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Name("receiver"); b0._As(); b0.Space(); b0.As_(); b0.Concatenate_(2); b0.NonTerminal("Identifier"); b0.Production_(); b0.NonTerminal("ActualArguments"); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b1.Resolver(); b0.Production_(); b0.NonTerminal("ActualArgument"); b0.Concatenate_(3); b0.Optional_(); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("keyword"); b0._As(); b0._Optional(); b0.LiteralTerminal_(); b0.RegExp(":"); b0.Category("DELIMITER"); b0.Literal(":"); b0._LiteralTerminal(); b0.As_(); b0.NonTerminal("Expression"); b0.Name("value"); b0._As(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Repeat(); b1.Resolver(); b0._Production(); b0._Concatenate(); b0.Name("message"); b0._As(); b0.LiteralTerminal_(); b0.RegExp("]"); b0.Category("DELIMITER"); b0.Literal("]"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("YES"); b0.LiteralTerminal_(); b0.RegExp("YES"); b0.Category("DELIMITER"); b0.Literal("YES"); b0._LiteralTerminal(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("NO"); b0.LiteralTerminal_(); b0.RegExp("NO"); b0.Category("DELIMITER"); b0.Literal("NO"); b0._LiteralTerminal(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Nil"); b0.LiteralTerminal_(); b0.RegExp("nil"); b0.Category("DELIMITER"); b0.Literal("nil"); b0._LiteralTerminal(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("UnparsedExpression"); b0.DataTerminal_(); b0.RegExp("[^;{}]+(?:\\{[^}]*\\})?[^;}]*"); b0.Category("LITERAL"); b0.Format("%s"); b0._DataTerminal(); b0.DataType("STRING"); b0._Production(); b0.NonTerminal("Identifier"); b0._Choose(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Names"); b0.Repeat_(); b0.Size(1); b0.Unbounded(); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.NonTerminal("Identifier"); b0._Repeat(); b1.Resolver(); b0._Production(); b0.Production_(); b0.NonTerminal("Identifier"); b0.DataTerminal_(); b0.RegExp("[_a-zA-Z][_a-zA-Z0-9]*"); b0.Category("LITERAL"); b0.Format("%s"); b0._DataTerminal(); b0.DataType("STRING"); b0._Production(); b0.Production_(); b0.NonTerminal("Macro"); b0.Concatenate_(2); b0.As_(); b0.NonTerminal("Identifier"); b0.Name("name"); b0._As(); b0.Optional_(); b0.As_(); b0.Production_(); b0.NonTerminal("ReplacementParameters"); b0.Concatenate_(3); b0.LiteralTerminal_(); b0.RegExp("\\Q(\\E"); b0.Category("DELIMITER"); b0.Literal("("); b0._LiteralTerminal(); b0.Repeat_(); b0.Size(0); b0.Unbounded(); b0.Concatenate_(2); b0.LiteralTerminal_(); b0.RegExp(","); b0.Category("DELIMITER"); b0.Literal(","); b0._LiteralTerminal(); b0.Space(); b0._Concatenate(); b0.Split_(); b0.ByDelimiter_(); b0.RegExp("[,)]"); b0._ByDelimiter(); b0.NonTerminal("MacroReplacement"); b0._Split(); b0._Repeat(); b0.LiteralTerminal_(); b0.RegExp("\\Q)\\E"); b0.Category("DELIMITER"); b0.Literal(")"); b0._LiteralTerminal(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0.Name("replacementParameters"); b0._As(); b0._Optional(); b0._Concatenate(); b1.Resolver(); b0._Production(); b0._Productions(); b0.URI("whole:org.whole.lang.objectivec.grammars:ObjectiveCGrammar:1.0.0"); b0.Namespace("org.whole.lang.objectivec.grammars"); b0.Version("1.0.0"); b1.Resolver(); b1.Resolver(); b1.Resolver(); b0._Grammar(); } }