Shift-reduce conflicts on inputs

Oct 27, 2015 at 6:12 PM
Edited Oct 27, 2015 at 6:53 PM
Hi All,
I am really unable to understand how to fix this issue, I am been trying a lot and rewrote the grammar based on C# grammar, I studied it very well.
Here is my code:

this.Root = compilation_unit;
        compilation_unit.Rule = module_declarations_opt;

        module_declarations_opt.Rule = MakeStarRule(module_declarations_opt, null, module_declaration);

        module_declaration.Rule = "module" + qualified_identifier + module_body + semi_opt;

        qualified_identifier.Rule = MakePlusRule(qualified_identifier, dot, identifier);

        module_body.Rule = "{" + reference_directives_opt + module_member_declarations + "}";

        reference_directives_opt.Rule = Empty | reference_directives;

        reference_directives.Rule = MakePlusRule(reference_directives_opt, null, reference_directive);

        reference_directive.Rule = "refernece" + qual_name_with_targs + semi;

        qual_name_with_targs.Rule = identifier_or_builtin;

        identifier_or_builtin.Rule = identifier | builtin_type;

        builtin_type.Rule = ToTerm("boolean") | "integer" | "decimal" | "string" | "object";

        module_member_declarations.Rule = MakePlusRule(module_member_declarations, null, module_member_declaration);

        module_member_declaration.Rule = /*module_declaration |*/ type_declaration;

        type_declaration.Rule = Empty; // class_declaration;// | interface_declaration; // | enum_declaration;
and the GrammarExplorer shows this issue

tate S19 (Inadequate)
Shift-reduce conflicts on inputs: }
Shift items:
module_body -> { reference_directives_opt module_member_declarations ·} 
module_member_declarations -> module_member_declarations ·module_member_declaration 
module_member_declaration -> ·type_declaration 
Reduce items:
type_declaration -> · [}]
Transitions: }->S32, module_member_declaration->S33, type_declaration->S21