*** empty log message ***
This commit is contained in:
parent
be1c701207
commit
ea7ea39fa7
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: parser.c,v 1.70 2005-09-11 17:01:56 bacon Exp $
|
* $Id: parser.c,v 1.71 2005-09-13 07:07:24 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <xp/stx/parser.h>
|
#include <xp/stx/parser.h>
|
||||||
@ -1127,6 +1127,7 @@ static int __parse_keyword_message (xp_stx_parser_t* parser)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
xp_stx_name_t name;
|
xp_stx_name_t name;
|
||||||
|
xp_word_t pos;
|
||||||
int nargs = 0;
|
int nargs = 0;
|
||||||
|
|
||||||
if (__parse_binary_message (parser) == -1) return -1;
|
if (__parse_binary_message (parser) == -1) return -1;
|
||||||
@ -1156,11 +1157,20 @@ static int __parse_keyword_message (xp_stx_parser_t* parser)
|
|||||||
}
|
}
|
||||||
|
|
||||||
nargs++;
|
nargs++;
|
||||||
|
/* TODO: check if it has too many arguments.. */
|
||||||
} while (parser->token.type == XP_STX_TOKEN_KEYWORD);
|
} while (parser->token.type == XP_STX_TOKEN_KEYWORD);
|
||||||
|
|
||||||
/* TODO: SEND_TO_SUPER */
|
/* TODO: SEND_TO_SUPER */
|
||||||
/*EMIT_SEND_TO_SELF (parser, nargs, index of name.buffer);*/
|
pos = __add_symbol_literal (parser, name.buffer, name.size);
|
||||||
EMIT_SEND_TO_SELF (parser, nargs, 0);
|
if (pos == -1) {
|
||||||
|
xp_stx_name_close (&name);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
/*EMIT_SEND_TO_SELF (parser, 0, pos);*/
|
||||||
|
if (__emit_send_to_self(parser,0,pos) == -1) {
|
||||||
|
xp_stx_name_close (&name);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
xp_stx_name_close (&name);
|
xp_stx_name_close (&name);
|
||||||
|
|
||||||
@ -1173,6 +1183,7 @@ static int __parse_binary_message (xp_stx_parser_t* parser)
|
|||||||
* <binary message> ::= binarySelector <binary argument>
|
* <binary message> ::= binarySelector <binary argument>
|
||||||
* <binary argument> ::= <primary> <unary message>*
|
* <binary argument> ::= <primary> <unary message>*
|
||||||
*/
|
*/
|
||||||
|
xp_word_t pos;
|
||||||
|
|
||||||
if (__parse_unary_message (parser) == -1) return -1;
|
if (__parse_unary_message (parser) == -1) return -1;
|
||||||
|
|
||||||
@ -1195,8 +1206,16 @@ static int __parse_binary_message (xp_stx_parser_t* parser)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: SEND_TO_SUPER */
|
/* TODO: SEND_TO_SUPER */
|
||||||
/*EMIT_SEND_TO_SELF (parser, 2, index of op);*/
|
pos = __add_symbol_literal (parser, op, xp_strlen(op));
|
||||||
EMIT_SEND_TO_SELF (parser, 2, 0);
|
if (pos == -1) {
|
||||||
|
xp_free (op);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
/*EMIT_SEND_TO_SELF (parser, 2, pos);*/
|
||||||
|
if (__emit_send_to_self(parser,2,pos) == -1) {
|
||||||
|
xp_free (op);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
xp_free (op);
|
xp_free (op);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user