def p_example(self, p):
if len(p) > <NUM_LIT:4>:<EOL><INDENT>seen_fields = set()<EOL>for example_field in p[<NUM_LIT:6>]:<EOL><INDENT>if example_field.name in seen_fields:<EOL><INDENT>self.errors.append(<EOL>("<STR_LIT>"<EOL>"<STR_LIT>" % (p[<NUM_LIT:2>], example_field.name),<EOL>p.lineno(<NUM_LIT:1>), self.path))<EOL><DEDENT>seen_fields.add(example_field.name)<EOL><DEDENT>p[<NUM_LIT:0>] = AstExample(<EOL>self.path, p.lineno(<NUM_LIT:1>), p.lexpos(<NUM_LIT:1>), p[<NUM_LIT:2>], p[<NUM_LIT:5>],<EOL>OrderedDict((f.name, f) for f in p[<NUM_LIT:6>]))<EOL><DEDENT>else:<EOL><INDENT>p[<NUM_LIT:0>] = AstExample(<EOL>self.path, p.lineno(<NUM_LIT:1>), p.lexpos(<NUM_LIT:1>), p[<NUM_LIT:2>], None, OrderedDict())<EOL><DEDENT>
example : KEYWORD ID NL INDENT docsection example_fields DEDENT
                   | KEYWORD ID NL