Parameter is probably defined wrong:
parameter.Rule = ToTerm("[") + other_parameter | table_parameter + ToTerm("]");
what you meant is probably
parameter.Rule = ToTerm("[") + (other_parameter | table_parameter) + ToTerm("]");
many other things do not seem right. Keep in mind, the source BNF you show specifies lexical rules (how tokens are composed) together with syntax rules - that's the usual case for BNF to mix them together. For ex: <char>, <numeric> are lex definitions.
But in Irony (as in any other parser) these are completely different things. Lexical rules are expressed thru selection of proper Terminals, with appropriate settings. So please read some introductory stuff about lexical analysis and syntax (even Wikipedia
will be enough), then try to express the grammar in Irony (its intent, meaning, not symbol-by-symbol blind translation).