help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] VisualGST


From: Gwenaël Casaccio
Subject: [Help-smalltalk] VisualGST
Date: Mon, 13 Sep 2010 17:02:42 +0200

Hi,

Here is the patch to fix the bug with the parse_and_send_attribute and
allow it to parse attributes with more than one arg ;-)

static mst_Boolean
parse_and_send_attribute (gst_parser *p, OOP receiverOOP)
{
  OOP selectorOOP, *args;
  tree_node keyword, value, stmt;
  int i, nb = 0;

#if 0
  printf ("parse attribute\n");
#endif
  lex_skip_mandatory (p, '<');
  keyword = parse_keyword_expression (p, NULL, EXPR_KEYWORD);

  selectorOOP = _gst_compute_keyword_selector (keyword->v_expr.expression);
  nb = _gst_selector_num_args (selectorOOP);
  args = malloc (sizeof (*args) * nb);
  i = 0;
  for (stmt = keyword->v_expr.expression; stmt; stmt =
stmt->v_list.next)
    {
      value = stmt->v_list.value;
      value = _gst_make_statement_list (&value->location, value);
      args[i] = _gst_execute_statements (NULL, value, UNDECLARED_NONE, true);
      if (!args[i])
        {
          _gst_had_error = true;
          break ;
        }
      i = i + 1;
    }

  if (!_gst_had_error)
      _gst_nvmsg_send (receiverOOP, selectorOOP, args, i);

  lex_skip_mandatory (p, '>');
  return !_gst_had_error;
}

Gwen



reply via email to

[Prev in Thread] Current Thread [Next in Thread]