Diagram(
Choice(0,
Sequence(Choice(0, Terminal('STRING'), Terminal('THROW')),
OneOrMore(Choice(0, NonTerminal('common_option'), NonTerminal('function_option')))),
Sequence(Terminal('ERROR'),
OneOrMore(Choice(0, NonTerminal('common_option'), NonTerminal('function_option'),
NonTerminal('exit_option')))),
Sequence(Terminal('SYSLOG'),
OneOrMore(Choice(0, NonTerminal('common_option'), NonTerminal('function_option'),
NonTerminal('syslog_option')))),
Sequence(Terminal('STREAMABLE'),
OneOrMore(Choice(0, NonTerminal('common_option'), NonTerminal('class_option')))),
Sequence(Terminal('EXCEPTION'),
OneOrMore(Choice(0, NonTerminal('common_option'), NonTerminal('class_option'),
NonTerminal('override_option')))))
)