*** empty log message ***

This commit is contained in:
hyung-hwan 2006-06-11 15:26:12 +00:00
parent f95922f690
commit 55bd4120c0

View File

@ -1,5 +1,5 @@
/* /*
* $Id: parse.c,v 1.109 2006-06-09 05:53:43 bacon Exp $ * $Id: parse.c,v 1.110 2006-06-11 15:26:12 bacon Exp $
*/ */
#include <xp/awk/awk_i.h> #include <xp/awk/awk_i.h>
@ -1067,11 +1067,6 @@ static xp_awk_nde_t* __parse_statement_nb (xp_awk_t* awk)
if (__get_token(awk) == -1) return XP_NULL; if (__get_token(awk) == -1) return XP_NULL;
nde = __parse_delete(awk); nde = __parse_delete(awk);
} }
else if (MATCH(awk,TOKEN_GETLINE))
{
if (__get_token(awk) == -1) return XP_NULL;
nde = __parse_getline(awk);
}
else if (MATCH(awk,TOKEN_NEXT)) else if (MATCH(awk,TOKEN_NEXT))
{ {
if (__get_token(awk) == -1) return XP_NULL; if (__get_token(awk) == -1) return XP_NULL;
@ -1428,6 +1423,7 @@ static xp_awk_nde_t* __parse_regex_match (xp_awk_t* awk)
static xp_awk_nde_t* __parse_bitwise_or (xp_awk_t* awk) static xp_awk_nde_t* __parse_bitwise_or (xp_awk_t* awk)
{ {
/*
__binmap_t map[] = __binmap_t map[] =
{ {
{ TOKEN_BOR, XP_AWK_BINOP_BOR }, { TOKEN_BOR, XP_AWK_BINOP_BOR },
@ -1435,9 +1431,11 @@ static xp_awk_nde_t* __parse_bitwise_or (xp_awk_t* awk)
}; };
return __parse_binary_expr (awk, map, __parse_bitwise_xor); return __parse_binary_expr (awk, map, __parse_bitwise_xor);
*/
xp_awk_nde_exp_t* nde;
xp_awk_nde_t* left, * right;
/* left = __parse_bitwise_xor (awk);
left = __prase_bitwise_xor (awk);
if (left == XP_NULL) return XP_NULL; if (left == XP_NULL) return XP_NULL;
while (1) while (1)
@ -1452,16 +1450,76 @@ static xp_awk_nde_t* __parse_bitwise_or (xp_awk_t* awk)
if (MATCH(awk,TOKEN_GETLINE)) if (MATCH(awk,TOKEN_GETLINE))
{ {
getline statemetn with pipe.... /* piped getline */
if (__get_token(awk) == -1)
{
xp_awk_clrpt (left);
return XP_NULL;
}
if (MATCH(awk,TOKEN_IDENT))
{
/* command | getline var */
/* TODO */
if (__get_token(awk) == -1)
{
xp_awk_clrpt (left);
return XP_NULL;
}
} }
else else
{ {
// normal bitwise or expression.... /* TODO */
/* command | getline */
nde = (xp_awk_nde_getline_t*)
xp_malloc (xp_sizeof(xp_awk_nde_getline_t));
if (nde == XP_NULL)
{
xp_awk_clrpt (left);
PANIC (awk, XP_AWK_ENOMEM);
}
nde->type = XP_AWK_NDE_GETLINE_BIN;
nde->next = XP_NULL;
nde->cmd = left;
nde->var = XP_NULL;
nde->file = XP_NULL;
}
}
else
{
right = __parse_bitwise_xor (awk);
if (right == XP_NULL)
{
xp_awk_clrpt (left);
return XP_NULL;
}
/* TODO: some constant folding */
nde = (xp_awk_nde_exp_t*)
xp_malloc (xp_sizeof(xp_awk_nde_exp_t));
if (nde == XP_NULL)
{
xp_awk_clrpt (right);
xp_awk_clrpt (left);
PANIC (awk, XP_AWK_ENOMEM);
}
nde->type = XP_AWK_NDE_EXP_BIN;
nde->next = XP_NULL;
nde->opcode = XP_AWK_BINOP_BOR;
nde->left = left;
nde->right = right;
left = (xp_awk_nde_t*)nde;
} }
} }
return left; return left;
*/
} }
static xp_awk_nde_t* __parse_bitwise_xor (xp_awk_t* awk) static xp_awk_nde_t* __parse_bitwise_xor (xp_awk_t* awk)
@ -3327,3 +3385,4 @@ static int __is_plain_var (xp_awk_nde_t* nde)
nde->type == XP_AWK_NDE_ARG || nde->type == XP_AWK_NDE_ARG ||
nde->type == XP_AWK_NDE_NAMED; nde->type == XP_AWK_NDE_NAMED;
} }