Syntax error in Ruby-plugin for Eclipse for CTORs using params.
The Ruby-plugin for Eclipse shows some syntax error `unexpected tRPARENT` for the following CTOR:

      class FmtOmsDllAddress < Kaitai::Struct::Struct
        attr_reader :_debug
        SEQ_FIELDS = ["reading_serial", "prod_code_raw_if", "version", "type_raw"]
        def initialize(_io, _parent = nil, _root = self, parse_prod_code)
          super(_io, _parent, _root)
          @parse_prod_code = parse_prod_code
          @_debug = {}
        end

![Clipboard01](https://user-images.githubusercontent.com/6223655/55726388-f8ff4900-5a0f-11e9-98da-aa0f6d7c4949.png)

It seems it doesn't deal with optional arguments vs. required ones afterwards properly. This could easily be fixed by changing `parse_prod_code` to `parse_prod_code = nil` using the following line of the RubyCompiler:

> val paramsList = Utils.join(params.map((p) => paramName(p.id)), ", ", ", ", "")

vs.

> val paramsList = Utils.join(params.map((p) => paramName(p.id)), ", ", " = nil, ", " = nil")

The question is if that's the correct thing to do, making a required argument an optional one in the end?

Might be better to make the optional arguments required as well, because they are used in the invocation of the CTOR anyway:

> @address = FmtOmsDllAddress.new(@_io, self, @_root, !(parse_prod_code))

Other languages don't even support mixing optional and required arguments this way and generate multiple CTORs, which are not used in the end as well, e.g. in case of Java:

        public FmtOmsDllAddress(KaitaiStream _io, boolean parseProdCode) {
            this(_io, null, null, parseProdCode);
        }

        public FmtOmsDllAddress(KaitaiStream _io, FmtRecOms.FmtOmsDllLid _parent, boolean parseProdCode) {
            this(_io, _parent, null, parseProdCode);
        }

        public FmtOmsDllAddress(KaitaiStream _io, FmtRecOms.FmtOmsDllLid _parent, FmtRecOms _root, boolean parseProdCode) {
            super(_io);
            this._parent = _parent;
            this._root = _root;
            this.parseProdCode = parseProdCode;
            _read();
        }

While the problem is with the plugin of course, making KS more compatible with such a widespread IDE might be reasonable.