public parameter_sequence Parse_parameter_sequence(parameter_sequence _self = null) { var _comma = Parse_comma(); if (_self != null && _comma == null) { return(_self); } // very important - stops infinite loop basically we must have a ",expr" following var _arith_expression_sequnce = Parse_arith_expression_sequence(); if (_arith_expression_sequnce != null && _comma == null) { var _parameter_sequence = new parameter_sequence(_arith_expression_sequnce); _self = Parse_parameter_sequence(_parameter_sequence); return(_self); } if (_arith_expression_sequnce != null && _comma != null) { var _parameter_sequence = new parameter_sequence(_arith_expression_sequnce, _self, _comma); _self = Parse_parameter_sequence(_parameter_sequence); return(_self); } return(_self); }
public parameter_sequence(arith_expression_sequence _arith_expression_sequence, parameter_sequence _self_parameter_sequence, comma _comma) { comma = _comma; arith_expression_sequence = _arith_expression_sequence; self_parameter_sequence = _self_parameter_sequence; expression = self_parameter_sequence?.expression + comma?.expression + arith_expression_sequence.expression /* expression = arith_expression.expression + comma?.expression + self_arith_expression_sequence?.expression*/; }
public function_parameter(minus _minus, paren _ident_lhs, parameter_sequence _parameter_sequence, paren _ident_rhs) { minus = _minus; ident_lhs = _ident_lhs; ident_rhs = _ident_rhs; parameter_sequence = _parameter_sequence; // if (!error()) expression = _minus?.expression + ident_lhs?.expression + parameter_sequence?.expression + ident_rhs?.expression; }