diff --git a/ase/awk/parse.c b/ase/awk/parse.c index 0cc59578..a9be3243 100644 --- a/ase/awk/parse.c +++ b/ase/awk/parse.c @@ -1,5 +1,5 @@ /* - * $Id: parse.c,v 1.107 2006-06-03 15:56:31 bacon Exp $ + * $Id: parse.c,v 1.108 2006-06-07 14:59:52 bacon Exp $ */ #include @@ -150,6 +150,7 @@ static xp_awk_nde_t* __parse_continue (xp_awk_t* awk); static xp_awk_nde_t* __parse_return (xp_awk_t* awk); static xp_awk_nde_t* __parse_exit (xp_awk_t* awk); static xp_awk_nde_t* __parse_delete (xp_awk_t* awk); +static xp_awk_nde_t* __parse_getline (xp_awk_t* awk); static xp_awk_nde_t* __parse_next (xp_awk_t* awk); static xp_awk_nde_t* __parse_nextfile (xp_awk_t* awk); @@ -1427,6 +1428,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) { + /* __binmap_t map[] = { { TOKEN_BOR, XP_AWK_BINOP_BOR }, @@ -1434,6 +1436,32 @@ static xp_awk_nde_t* __parse_bitwise_or (xp_awk_t* awk) }; return __parse_binary_expr (awk, map, __parse_bitwise_xor); + */ + + left = __prase_bitwise_xor (awk); + if (left == XP_NULL) return XP_NULL; + + while (1) + { + if (!MATCH(awk,TOKEN_BOR)) break; + + if (__get_token(awk) == -1) + { + xp_awk_clrpt (left); + return XP_NULL; + } + + if (MATCH(awk,TOKEN_GETLINE)) + { + getline statemetn with pipe.... + } + else + { + // normal bitwise or expression.... + } + } + + return left; } static xp_awk_nde_t* __parse_bitwise_xor (xp_awk_t* awk)