Article View: comp.sources.reviewed
Article #27v02i031: mawk - (Ver. 1.1) An interpreter for the AWK language, Patch02d/4
From: Mike Brennan
Date: Tue, 13 Oct 1992 22:15
Date: Tue, 13 Oct 1992 22:15
1574 lines
60754 bytes
60754 bytes
Submitted-by: Mike Brennan <brennan@boeing.com>
Posting-number: Volume 2, Issue 31
Archive-name: mawk/patch02d
Patch-To: mawk: Volume 1, Issue 50-68
#!/bin/sh
# this is part.04 (part 4 of a multipart archive)
# do not concatenate these parts, unpack them in order with /bin/sh
# file Xparse.c continued
#
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 4; then
echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping Xparse.c'
else
echo 'x - continuing file Xparse.c'
sed 's/^X//' << 'SHAR_EOF' >> 'Xparse.c' &&
break;
case 53:
#line 322 "parse.y"
{ patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
break;
case 55:
#line 327 "parse.y"
{ code1(_CAT) ; }
break;
case 56:
#line 331 "parse.y"
{ yyval.start = code_ptr ; code2(_PUSHD, yyvsp[0].ptr) ; }
break;
case 57:
#line 333 "parse.y"
{ yyval.start = code_ptr ; code2(_PUSHS, yyvsp[0].ptr) ; }
break;
case 58:
#line 335 "parse.y"
{ check_var(yyvsp[0].stp) ;
X yyval.start = code_ptr ;
X if ( is_local(yyvsp[0].stp) )
X { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
X else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
X }
break;
case 59:
#line 343 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 60:
#line 347 "parse.y"
{ yyval.start = code_ptr ; code2(_MATCH0, yyvsp[0].ptr) ; }
break;
case 61:
#line 350 "parse.y"
{ code1(_ADD) ; }
break;
case 62:
#line 351 "parse.y"
{ code1(_SUB) ; }
break;
case 63:
#line 352 "parse.y"
{ code1(_MUL) ; }
break;
case 64:
#line 353 "parse.y"
{ code1(_DIV) ; }
break;
case 65:
#line 354 "parse.y"
{ code1(_MOD) ; }
break;
case 66:
#line 355 "parse.y"
{ code1(_POW) ; }
break;
case 67:
#line 357 "parse.y"
{ yyval.start = yyvsp[0].start ; code1(_NOT) ; }
break;
case 68:
#line 359 "parse.y"
{ yyval.start = yyvsp[0].start ; code1(_UPLUS) ; }
break;
case 69:
#line 361 "parse.y"
{ yyval.start = yyvsp[0].start ; code1(_UMINUS) ; }
break;
case 71:
#line 366 "parse.y"
{ check_var(yyvsp[-1].stp) ;
X yyval.start = code_ptr ;
X code_address(yyvsp[-1].stp) ;
X
X if ( yyvsp[0].ival == '+' ) code1(_POST_INC) ;
X else code1(_POST_DEC) ;
X }
break;
case 72:
#line 374 "parse.y"
{ yyval.start = yyvsp[0].start ;
X if ( yyvsp[-1].ival == '+' ) code1(_PRE_INC) ;
X else code1(_PRE_DEC) ;
X }
break;
case 73:
#line 381 "parse.y"
{ if (yyvsp[0].ival == '+' ) code1(F_POST_INC ) ;
X else code1(F_POST_DEC) ;
X }
break;
case 74:
#line 385 "parse.y"
{ yyval.start = yyvsp[0].start ;
X if ( yyvsp[-1].ival == '+' ) code1(F_PRE_INC) ;
X else code1( F_PRE_DEC) ;
X }
break;
case 75:
#line 392 "parse.y"
{ yyval.start = code_ptr ;
X check_var(yyvsp[0].stp) ;
X code_address(yyvsp[0].stp) ;
X }
break;
case 76:
#line 400 "parse.y"
{ yyval.ival = 0 ; }
break;
case 78:
#line 405 "parse.y"
{ yyval.ival = 1 ; }
break;
case 79:
#line 407 "parse.y"
{ yyval.ival = yyvsp[-2].ival + 1 ; }
break;
case 80:
#line 412 "parse.y"
{ BI_REC *p = yyvsp[-4].bip ;
X yyval.start = yyvsp[-3].start ;
X if ( p-> min_args > yyvsp[-1].ival || p->max_args < yyvsp[-1].ival )
X compile_error(
X "wrong number of arguments in call to %s" ,
X p->name ) ;
X if ( p->min_args != p->max_args ) /* variable args */
X { code1(_PUSHINT) ; code1(yyvsp[-1].ival) ; }
X code2(_BUILTIN , p->fp) ;
X }
break;
case 81:
#line 423 "parse.y"
{
X code1(_PUSHINT) ; code1(0) ;
X code2(_BUILTIN, yyvsp[0].bip->fp) ;
X }
break;
case 82:
#line 431 "parse.y"
{ yyval.start = code_ptr ; }
break;
case 83:
#line 435 "parse.y"
{ code2(_PRINT, yyvsp[-4].fp) ; yyval.start = yyvsp[-3].start ;
X if ( yyvsp[-4].fp == bi_printf && yyvsp[-2].ival == 0 )
X compile_error("no arguments in call to printf") ;
X print_flag = 0 ;
X yyval.start = yyvsp[-3].start ;
X }
break;
case 84:
#line 443 "parse.y"
{ yyval.fp = bi_print ; print_flag = 1 ;}
break;
case 85:
#line 444 "parse.y"
{ yyval.fp = bi_printf ; print_flag = 1 ; }
break;
case 86:
#line 447 "parse.y"
{ code1(_PUSHINT) ; code1(yyvsp[0].ival) ; }
break;
case 87:
#line 449 "parse.y"
{ yyval.ival = yyvsp[-1].arg2p->cnt ; zfree(yyvsp[-1].arg2p,sizeof(ARG2_REC)) ;
X code1(_PUSHINT) ; code1(yyval.ival) ;
X }
break;
case 88:
#line 453 "parse.y"
{ yyval.ival=0 ; code1(_PUSHINT) ; code1(0) ; }
break;
case 89:
#line 457 "parse.y"
{ yyval.arg2p = (ARG2_REC*) zmalloc(sizeof(ARG2_REC)) ;
X yyval.arg2p->start = yyvsp[-2].start ;
X yyval.arg2p->cnt = 2 ;
X }
break;
case 90:
#line 462 "parse.y"
{ yyval.arg2p = yyvsp[-2].arg2p ; yyval.arg2p->cnt++ ; }
break;
case 92:
#line 467 "parse.y"
{ code1(_PUSHINT) ; code1(yyvsp[-1].ival) ; }
break;
case 93:
#line 474 "parse.y"
{ yyval.start = yyvsp[-1].start ; eat_nl() ; code_jmp(_JZ, (INST*)0) ; }
break;
case 94:
#line 479 "parse.y"
{ patch_jmp( code_ptr ) ; }
break;
case 95:
#line 482 "parse.y"
{ eat_nl() ; code_jmp(_JMP, (INST*)0) ; }
break;
case 96:
#line 487 "parse.y"
{ patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
break;
case 97:
#line 493 "parse.y"
{ eat_nl() ; BC_new() ; }
break;
case 98:
#line 498 "parse.y"
{ yyval.start = yyvsp[-5].start ;
X code_jmp(_JNZ, yyvsp[-5].start) ;
X BC_clear(code_ptr, yyvsp[-2].start) ; }
break;
case 99:
#line 504 "parse.y"
{ eat_nl() ; BC_new() ;
X yyval.start = yyvsp[-1].start ;
X
X /* check if const expression */
X if ( code_ptr - 2 == yyvsp[-1].start &&
X code_ptr[-2].op == _PUSHD &&
X *(double*)code_ptr[-1].ptr != 0.0
X )
X code_ptr -= 2 ;
X else
X {
X code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
X code_ptr = yyvsp[-1].start ;
X code2(_JMP, (INST*)0) ; /* code2() not code_jmp() */
X }
X }
break;
case 100:
#line 524 "parse.y"
{
X INST *c_addr ; int len ;
X
X if ( yyvsp[-1].start != yyvsp[0].start ) /* real test in loop */
X {
X yyvsp[-1].start[1].op = code_ptr-(yyvsp[-1].start+1) ;
X c_addr = code_ptr ;
X len = code_pop(code_ptr) ;
X code_ptr += len ;
X code_jmp(_JNZ, yyvsp[0].start) ;
X BC_clear(code_ptr, c_addr) ;
X }
X else /* while(1) */
X {
X code_jmp(_JMP, yyvsp[-1].start) ;
X BC_clear(code_ptr, yyvsp[0].start) ;
X }
X }
break;
case 101:
#line 547 "parse.y"
{
X INST *cont_address = code_ptr ;
X unsigned len = code_pop(code_ptr) ;
X
X code_ptr += len ;
X
X if ( yyvsp[-2].start != yyvsp[0].start ) /* real test in for2 */
X {
X yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
X len = code_pop(code_ptr) ;
X code_ptr += len ;
X code_jmp(_JNZ, yyvsp[0].start) ;
X }
X else /* for(;;) */
X code_jmp(_JMP, yyvsp[0].start) ;
X
X BC_clear(code_ptr, cont_address) ;
X
X }
break;
case 102:
#line 568 "parse.y"
{ yyval.start = code_ptr ; }
break;
case 103:
#line 570 "parse.y"
{ yyval.start = yyvsp[-1].start ; code1(_POP) ; }
break;
case 104:
#line 573 "parse.y"
{ yyval.start = code_ptr ; }
break;
case 105:
#line 575 "parse.y"
{
X if ( code_ptr - 2 == yyvsp[-1].start &&
X code_ptr[-2].op == _PUSHD &&
X * (double*) code_ptr[-1].ptr != 0.0
X )
X code_ptr -= 2 ;
X else
X {
X code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
X code_ptr = yyvsp[-1].start ;
X code2(_JMP, (INST*)0) ;
X }
X }
break;
case 106:
#line 591 "parse.y"
{ eat_nl() ; BC_new() ; code_push((INST*)0,0) ; }
break;
case 107:
#line 593 "parse.y"
{ eat_nl() ; BC_new() ;
X code1(_POP) ;
X code_push(yyvsp[-1].start, code_ptr - yyvsp[-1].start) ;
X code_ptr -= code_ptr - yyvsp[-1].start ;
X }
break;
case 108:
#line 604 "parse.y"
{ check_array(yyvsp[0].stp) ;
X code_array(yyvsp[0].stp) ;
X code1(A_TEST) ;
X }
break;
case 109:
#line 609 "parse.y"
{ yyval.start = yyvsp[-3].arg2p->start ;
X code1(A_CAT) ; code1(yyvsp[-3].arg2p->cnt) ;
X zfree(yyvsp[-3].arg2p, sizeof(ARG2_REC)) ;
X
X check_array(yyvsp[0].stp) ;
X code_array(yyvsp[0].stp) ;
X code1(A_TEST) ;
X }
break;
case 110:
#line 620 "parse.y"
{
X if ( yyvsp[-1].ival > 1 )
X { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
X
X check_array(yyvsp[-4].stp) ;
X if( is_local(yyvsp[-4].stp) )
X { code1(LAE_PUSHA) ; code1(yyvsp[-4].stp->offset) ; }
X else code2(AE_PUSHA, yyvsp[-4].stp->stval.array) ;
X yyval.start = yyvsp[-3].start ;
X }
break;
case 111:
#line 633 "parse.y"
{
X if ( yyvsp[-1].ival > 1 )
X { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
X
X check_array(yyvsp[-4].stp) ;
X if( is_local(yyvsp[-4].stp) )
X { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
X else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
X yyval.start = yyvsp[-3].start ;
X }
break;
case 112:
#line 645 "parse.y"
{
X if ( yyvsp[-2].ival > 1 )
X { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
X
X check_array(yyvsp[-5].stp) ;
X if( is_local(yyvsp[-5].stp) )
X { code1(LAE_PUSHA) ; code1(yyvsp[-5].stp->offset) ; }
X else code2(AE_PUSHA, yyvsp[-5].stp->stval.array) ;
X if ( yyvsp[0].ival == '+' ) code1(_POST_INC) ;
X else code1(_POST_DEC) ;
X
X yyval.start = yyvsp[-4].start ;
X }
break;
case 113:
#line 662 "parse.y"
{
X yyval.start = yyvsp[-4].start ;
X if ( yyvsp[-2].ival > 1 ) { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
X check_array(yyvsp[-5].stp) ;
X code_array(yyvsp[-5].stp) ;
X code1(A_DEL) ;
X }
break;
case 114:
#line 675 "parse.y"
{ eat_nl() ; BC_new() ;
X yyval.start = code_ptr ;
X
X check_var(yyvsp[-3].stp) ;
X code_address(yyvsp[-3].stp) ;
X check_array(yyvsp[-1].stp) ;
X code_array(yyvsp[-1].stp) ;
X
X code2(SET_ALOOP, (INST*)0) ;
X }
break;
case 115:
#line 689 "parse.y"
{
X yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
X BC_clear( code_ptr+3 , code_ptr) ;
X code_jmp(ALOOP, yyvsp[0].start) ;
X code_ptr++->ptr = (PTR) ZMALLOC(ALOOP_STATE) ;
X }
break;
case 116:
#line 704 "parse.y"
{ yyval.start = code_ptr ; code2(F_PUSHA, yyvsp[0].cp) ; }
break;
case 117:
#line 706 "parse.y"
{ check_var(yyvsp[0].stp) ;
X yyval.start = code_ptr ;
X if ( is_local(yyvsp[0].stp) )
X { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
X else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
X
X CODE_FE_PUSHA() ;
X }
break;
case 118:
#line 715 "parse.y"
{
X if ( yyvsp[-1].ival > 1 )
X { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
X
X check_array(yyvsp[-4].stp) ;
X if( is_local(yyvsp[-4].stp) )
X { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
X else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
X
X CODE_FE_PUSHA() ;
X
X yyval.start = yyvsp[-3].start ;
X }
break;
case 119:
#line 729 "parse.y"
{ yyval.start = yyvsp[0].start ; CODE_FE_PUSHA() ; }
break;
case 120:
#line 731 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 121:
#line 735 "parse.y"
{ field_A2I() ; }
break;
case 122:
#line 738 "parse.y"
{ code1(F_ASSIGN) ; }
break;
case 123:
#line 739 "parse.y"
{ code1(F_ADD_ASG) ; }
break;
case 124:
#line 740 "parse.y"
{ code1(F_SUB_ASG) ; }
break;
case 125:
#line 741 "parse.y"
{ code1(F_MUL_ASG) ; }
break;
case 126:
#line 742 "parse.y"
{ code1(F_DIV_ASG) ; }
break;
case 127:
#line 743 "parse.y"
{ code1(F_MOD_ASG) ; }
break;
case 128:
#line 744 "parse.y"
{ code1(F_POW_ASG) ; }
break;
case 129:
#line 751 "parse.y"
{ code2(_BUILTIN, bi_split) ; }
break;
case 130:
#line 755 "parse.y"
{ yyval.start = yyvsp[-2].start ;
X check_array(yyvsp[0].stp) ;
X code_array(yyvsp[0].stp) ;
X }
break;
case 131:
#line 762 "parse.y"
{ code2(_PUSHI, &fs_shadow) ; }
break;
case 132:
#line 764 "parse.y"
{
X if ( yyvsp[-1].start == code_ptr - 2 )
X {
X if ( code_ptr[-2].op == _MATCH0 )
X RE_as_arg() ;
X else
X if ( code_ptr[-2].op == _PUSHS )
X { CELL *cp = ZMALLOC(CELL) ;
X
X cp->type = C_STRING ;
X cp->ptr = code_ptr[-1].ptr ;
X cast_for_split(cp) ;
X code_ptr[-2].op = _PUSHC ;
X code_ptr[-1].ptr = (PTR) cp ;
X }
X }
X }
break;
case 133:
#line 788 "parse.y"
{ yyval.start = yyvsp[-3].start ;
X code2(_BUILTIN, bi_match) ;
X }
break;
case 134:
#line 795 "parse.y"
{
X if ( yyvsp[0].start == code_ptr - 2 )
X {
X if ( yyvsp[0].start->op == _MATCH0 ) RE_as_arg() ;
X else
X if ( yyvsp[0].start->op == _PUSHS )
X { CELL *cp = ZMALLOC(CELL) ;
X
X cp->type = C_STRING ;
X cp->ptr = yyvsp[0].start[1].ptr ;
X cast_to_RE(cp) ;
X yyvsp[0].start->op = _PUSHC ;
X yyvsp[0].start[1].ptr = (PTR) cp ;
X }
X }
X }
break;
case 135:
#line 816 "parse.y"
{ yyval.start = code_ptr ;
X code1(_EXIT0) ; }
break;
case 136:
#line 819 "parse.y"
{ yyval.start = yyvsp[-1].start ; code1(_EXIT) ; }
break;
case 137:
#line 822 "parse.y"
{ yyval.start = code_ptr ;
X code1(_RET0) ; }
break;
case 138:
#line 825 "parse.y"
{ yyval.start = yyvsp[-1].start ; code1(_RET) ; }
break;
case 139:
#line 830 "parse.y"
{ yyval.start = code_ptr ;
X code2(F_PUSHA, &field[0]) ;
X code1(_PUSHINT) ; code1(0) ;
X code2(_BUILTIN, bi_getline) ;
X getline_flag = 0 ;
X }
break;
case 140:
#line 837 "parse.y"
{ yyval.start = yyvsp[0].start ;
X code1(_PUSHINT) ; code1(0) ;
X code2(_BUILTIN, bi_getline) ;
X getline_flag = 0 ;
X }
break;
case 141:
#line 843 "parse.y"
{ code1(_PUSHINT) ; code1(F_IN) ;
X code2(_BUILTIN, bi_getline) ;
X /* getline_flag already off in yylex() */
X }
break;
case 142:
#line 848 "parse.y"
{ code2(F_PUSHA, &field[0]) ;
X code1(_PUSHINT) ; code1(PIPE_IN) ;
X code2(_BUILTIN, bi_getline) ;
X }
break;
case 143:
#line 853 "parse.y"
{
X code1(_PUSHINT) ; code1(PIPE_IN) ;
X code2(_BUILTIN, bi_getline) ;
X }
break;
case 144:
#line 859 "parse.y"
{ getline_flag = 1 ; }
break;
case 147:
#line 864 "parse.y"
{ yyval.start = code_ptr ;
X code2(F_PUSHA, field+0) ;
X }
break;
case 148:
#line 868 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 149:
#line 876 "parse.y"
{
X if ( yyvsp[0].start - yyvsp[-1].start == 2 && yyvsp[-1].start->op == _PUSHS )
X { /* cast from STRING to REPL at compile time */
X CELL *cp = ZMALLOC(CELL) ;
X cp->type = C_STRING ;
X cp->ptr = yyvsp[-1].start[1].ptr ;
X cast_to_REPL(cp) ;
X yyvsp[-1].start->op = _PUSHC ;
X yyvsp[-1].start[1].ptr = (PTR) cp ;
X }
X code2(_BUILTIN, yyvsp[-5].fp) ;
X yyval.start = yyvsp[-3].start ;
X }
break;
case 150:
#line 891 "parse.y"
{ yyval.fp = bi_sub ; }
break;
case 151:
#line 892 "parse.y"
{ yyval.fp = bi_gsub ; }
break;
case 152:
#line 897 "parse.y"
{ yyval.start = code_ptr ;
X code2(F_PUSHA, &field[0]) ;
X }
break;
case 153:
#line 902 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 154:
#line 910 "parse.y"
{ resize_fblock(yyvsp[-1].fbp, code_ptr) ;
X code_ptr = main_code_ptr ;
X scope = SCOPE_MAIN ;
X active_funct = (FBLOCK *) 0 ;
X restore_ids() ;
X }
break;
case 155:
#line 920 "parse.y"
{ eat_nl() ;
X scope = SCOPE_FUNCT ;
X active_funct = yyvsp[-3].fbp ;
X main_code_ptr = code_ptr ;
X
X if ( yyvsp[-3].fbp->nargs = yyvsp[-1].ival )
X yyvsp[-3].fbp->typev = (char *)
X memset( zmalloc(yyvsp[-1].ival), ST_LOCAL_NONE, SIZE_T(yyvsp[-1].ival)) ;
X else yyvsp[-3].fbp->typev = (char *) 0 ;
X code_ptr = yyvsp[-3].fbp->code =
X (INST *) zmalloc(PAGE_SZ*sizeof(INST)) ;
X }
break;
case 156:
#line 935 "parse.y"
{ FBLOCK *fbp ;
X
X if ( yyvsp[0].stp->type == ST_NONE )
X {
X yyvsp[0].stp->type = ST_FUNCT ;
X fbp = yyvsp[0].stp->stval.fbp =
X (FBLOCK *) zmalloc(sizeof(FBLOCK)) ;
X fbp->name = yyvsp[0].stp->name ;
X }
X else
X {
X type_error( yyvsp[0].stp ) ;
X
X /* this FBLOCK will not be put in
X the symbol table */
X fbp = (FBLOCK*) zmalloc(sizeof(FBLOCK)) ;
X fbp->name = "" ;
X }
X yyval.fbp = fbp ;
X }
break;
case 157:
#line 957 "parse.y"
{ yyval.fbp = yyvsp[0].fbp ;
X if ( yyvsp[0].fbp->code )
X compile_error("redefinition of %s" , yyvsp[0].fbp->name) ;
X }
break;
case 158:
#line 963 "parse.y"
{ yyval.ival = 0 ; }
break;
case 160:
#line 968 "parse.y"
{ yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
X yyvsp[0].stp->type = ST_LOCAL_NONE ;
X yyvsp[0].stp->offset = 0 ;
X yyval.ival = 1 ;
X }
break;
case 161:
#line 974 "parse.y"
{ if ( is_local(yyvsp[0].stp) )
X compile_error("%s is duplicated in argument list",
X yyvsp[0].stp->name) ;
X else
X { yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
X yyvsp[0].stp->type = ST_LOCAL_NONE ;
X yyvsp[0].stp->offset = yyvsp[-2].ival ;
X yyval.ival = yyvsp[-2].ival + 1 ;
X }
X }
break;
case 162:
#line 987 "parse.y"
{ /* we may have to recover from a bungled function
X definition */
X
X /* can have local ids, before code scope
X changes */
X restore_ids() ;
X
X if (scope == SCOPE_FUNCT)
X { scope = SCOPE_MAIN ;
X active_funct = (FBLOCK*) 0 ;
X }
X
X code_ptr = main_code_ptr ;
X }
break;
case 163:
#line 1006 "parse.y"
{ yyval.start = yyvsp[-1].start ;
X code2(_CALL, yyvsp[-2].fbp) ;
X
X if ( yyvsp[0].ca_p ) code1(yyvsp[0].ca_p->arg_num+1) ;
X else code1(0) ;
X
X check_fcall(yyvsp[-2].fbp, scope, active_funct,
X yyvsp[0].ca_p, token_lineno) ;
X }
break;
case 164:
#line 1018 "parse.y"
{ yyval.ca_p = (CA_REC *) 0 ; }
break;
case 165:
#line 1020 "parse.y"
{ yyval.ca_p = yyvsp[0].ca_p ;
X yyval.ca_p->link = yyvsp[-1].ca_p ;
X yyval.ca_p->arg_num = yyvsp[-1].ca_p ? yyvsp[-1].ca_p->arg_num+1 : 0 ;
X }
break;
case 166:
#line 1035 "parse.y"
{ yyval.ca_p = (CA_REC *) 0 ; }
break;
case 167:
#line 1037 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X yyval.ca_p->link = yyvsp[-2].ca_p ;
X yyval.ca_p->type = CA_EXPR ;
X yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
X }
break;
case 168:
#line 1043 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X yyval.ca_p->link = yyvsp[-2].ca_p ;
X yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
X
X code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
X }
break;
case 169:
#line 1052 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X yyval.ca_p->type = CA_EXPR ;
X }
break;
case 170:
#line 1057 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
X }
break;
#line 2522 "y.tab.c"
X }
X yyssp -= yym;
X yystate = *yyssp;
X yyvsp -= yym;
X yym = yylhs[yyn];
X if (yystate == 0 && yym == 0)
X {
#if YYDEBUG
X if (yydebug)
X printf("yydebug: after reduction, shifting from state 0 to\
X state %d\n", YYFINAL);
#endif
X yystate = YYFINAL;
X *++yyssp = YYFINAL;
X *++yyvsp = yyval;
X if (yychar < 0)
X {
X if ((yychar = YYLEX()) < 0) yychar = 0;
#if YYDEBUG
X if (yydebug)
X {
X yys = 0;
X if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
X if (!yys) yys = "illegal-symbol";
X printf("yydebug: state %d, reading %d (%s)\n",
X YYFINAL, yychar, yys);
X }
#endif
X }
X if (yychar == 0) goto yyaccept;
X goto yyloop;
X }
X if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
X yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
X yystate = yytable[yyn];
X else
X yystate = yydgoto[yym];
#if YYDEBUG
X if (yydebug)
X printf("yydebug: after reduction, shifting from state %d \
to state %d\n", *yyssp, yystate);
#endif
X if (yyssp >= yyss + yystacksize - 1)
X {
X goto yyoverflow;
X }
X *++yyssp = yystate;
X *++yyvsp = yyval;
X goto yyloop;
yyoverflow:
X yyerror("yacc stack overflow");
yyabort:
X return (1);
yyaccept:
X return (0);
}
X
/********************************************
parse2.xc
copyright 1991, Michael D. Brennan
X
This is a source file for mawk, an implementation of
the AWK programming language.
X
Mawk is distributed without warranty under the terms of
the GNU General Public License, version 2, 1991.
********************************************/
X
/* $Log: parse.c,v $
X * Revision 1.6 1992/08/27 04:12:49 mike
X * *** empty log message ***
X *
Revision 5.1 1991/12/05 07:52:38 brennan
1.1 pre-release
X
*/
X
/* If using Berkeley yacc, we can put the parser table
X memory to the zmalloc pool. This is kind of ugly and
X with paged vm probably a nop, but for DOS and MINIX and ??
X it frees a considerably amount of memory.
X
X This file is part of parse.c via
X cat y.tab.c parse2.xc > parse.c
*/
X
static struct yacc_mem yacc_mem[] =
{
0 , 0 , /* don't remove this */
X
#ifdef YYBYACC
(PTR) yycheck, sizeof(yycheck)/ZBLOCKSZ,
(PTR) yytable, sizeof(yytable)/ZBLOCKSZ,
#ifndef YYXBYACC /* with xbyacc these are storage auto */
(PTR) yyvs , sizeof(yyvs)/ZBLOCKSZ,
(PTR) yyss, sizeof(yyss)/ZBLOCKSZ,
#endif
(PTR) yydefred, sizeof(yydefred)/ZBLOCKSZ,
(PTR) yydgoto, sizeof(yydgoto)/ZBLOCKSZ,
(PTR) yygindex, sizeof(yygindex)/ZBLOCKSZ,
(PTR) yylen, sizeof(yylen)/ZBLOCKSZ,
(PTR) yylhs, sizeof(yylhs)/ZBLOCKSZ,
(PTR) yyrindex, sizeof(yyrindex)/ZBLOCKSZ,
(PTR) yysindex, sizeof(yysindex)/ZBLOCKSZ,
#endif
X
0,0 } ;
X
struct yacc_mem *yacc_memp = yacc_mem ;
X
SHAR_EOF
echo 'File Xparse.c is complete' &&
chmod 0644 Xparse.c ||
echo 'restore of Xparse.c failed'
Wc_c="`wc -c < 'Xparse.c'`"
test 91455 -eq "$Wc_c" ||
echo 'Xparse.c: original size 91455, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= Xparse.h ==============
if test -f 'Xparse.h' -a X"$1" != X"-c"; then
echo 'x - skipping Xparse.h (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting Xparse.h (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'Xparse.h' &&
#define UNEXPECTED 257
#define BAD_DECIMAL 258
#define NL 259
#define SEMI_COLON 260
#define LBRACE 261
#define RBRACE 262
#define LBOX 263
#define RBOX 264
#define COMMA 265
#define IO_OUT 266
#define ASSIGN 267
#define ADD_ASG 268
#define SUB_ASG 269
#define MUL_ASG 270
#define DIV_ASG 271
#define MOD_ASG 272
#define POW_ASG 273
#define QMARK 274
#define COLON 275
#define OR 276
#define AND 277
#define IN 278
#define MATCH 279
#define EQ 280
#define NEQ 281
#define LT 282
#define LTE 283
#define GT 284
#define GTE 285
#define CAT 286
#define GETLINE 287
#define PLUS 288
#define MINUS 289
#define MUL 290
#define DIV 291
#define MOD 292
#define NOT 293
#define UMINUS 294
#define IO_IN 295
#define PIPE 296
#define POW 297
#define INC_or_DEC 298
#define DOLLAR 299
#define FIELD 300
#define LPAREN 301
#define RPAREN 302
#define DOUBLE 303
#define STRING_ 304
#define RE 305
#define ID 306
#define D_ID 307
#define FUNCT_ID 308
#define BUILTIN 309
#define LENGTH 310
#define PRINT 311
#define PRINTF 312
#define SPLIT 313
#define MATCH_FUNC 314
#define SUB 315
#define GSUB 316
#define DO 317
#define WHILE 318
#define FOR 319
#define BREAK 320
#define CONTINUE 321
#define IF 322
#define ELSE 323
#define DELETE 324
#define BEGIN 325
#define END 326
#define EXIT 327
#define NEXT 328
#define RETURN 329
#define FUNCTION 330
typedef union{
CELL *cp ;
SYMTAB *stp ;
INST *start ; /* code starting address */
PF_CP fp ; /* ptr to a (print/printf) or (sub/gsub) function */
BI_REC *bip ; /* ptr to info about a builtin */
FBLOCK *fbp ; /* ptr to a function block */
ARG2_REC *arg2p ;
CA_REC *ca_p ;
int ival ;
PTR ptr ;
} YYSTYPE;
extern YYSTYPE yylval;
SHAR_EOF
chmod 0644 Xparse.h ||
echo 'restore of Xparse.h failed'
Wc_c="`wc -c < 'Xparse.h'`"
test 1671 -eq "$Wc_c" ||
echo 'Xparse.h: original size 1671, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= doc.diff ==============
if test -f 'doc.diff' -a X"$1" != X"-c"; then
echo 'x - skipping doc.diff (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting doc.diff (Binary)'
sed 's/^X//' << 'SHAR_EOF' > _shar_tmp_.tmp &&
begin 600 doc.diff
M26YD97@Z(&UA=VLN9&]C"C$Q9#$P"CP@"C$X9#$V"CP@"C0T9#0Q"CP@"C0V
M8S0S"CP@("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@('-E=',@=&AE(&9I
M96QD('-E<&%R871O<BP@1E,L('1O(%\(=E\(85\(;%\(=5\(92X*+2TM"CX@
M("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@("`@<V5T<R!T:&4@9FEE;&0@
M<V5P87)A=&]R+"!&4RP@=&\@7PAV7PAA7PAL7PAU7PAE+@HT-V$T-2PT-PH^
M("`@("`@+68@7PAF7PAI7PAL7PAE("`@("`@("!0<F]G<F%M('1E>'0@:7,@
M<F5A9"`@9G)O;2`@7PAF7PAI7PAL7PAE("!I;G-T96%D("!O9@H^("`@("`@
M("`@("`@("`@("`@("`@9G)O;2`@=&AE("!C;VUM86YD(&QI;F4N("!-=6QT
M:7!L92`M9B!O<'1I;VYS"CX@("`@("`@("`@("`@("`@("`@("!A<F4@86QL
M;W=E9"X*-#DL-3%C-#D*/"`@("`@("UF(%\(9E\(:5\(;%\(92`@("`@(%!R
M;V=R86T@=&5X="!I<R!R96%D(&9R;VT@7PAF7PAI7PAL7PAE(&EN<W1E860@
M;V8@(&9R;VT*/"`@("`@("`@("`@("`@("`@("!T:&4@(&-O;6UA;F0@(&QI
M;F4N("`@375L=&EP;&4@("UF("!O<'1I;VYS(&%R90H\("`@("`@("`@("`@
M("`@("`@(&%L;&]W960N"BTM+0H^("`@("`@+78@7PAV7PAA7PAR/5\(=E\(
M85\(;%\(=5\(92`@(&%S<VEG;G,@7PAV7PAA7PAL7PAU7PAE('1O('!R;V=R
M86T@=F%R:6%B;&4@7PAV7PAA7PAR+@HU,F$U,0H^("`@("`@+2T@("`@("`@
M("`@("`@:6YD:6-A=&5S('1H92!U;F%M8FEG=6]U<R!E;F0@;V8@;W!T:6]N
M<RX*-31C-3,L-34*/"`@("`@("UV(%\(=E\(85\(<CU?"'9?"&%?"&Q?"'5?
M"&4@87-S:6=N<R!?"'9?"&%?"&Q?"'5?"&4@=&\@<')O9W)A;2!V87)I86)L
M92!?"'9?"&%?"'(N"BTM+0H^("`@("`@5&AE(&%B;W9E(&]P=&EO;G,@=VEL
M;"!B92!A=F%I;&%B;&4@=VET:"!A;GD@4&]S:7@@(&-O;7!A=&DM"CX@("`@
M("!B;&4@(&EM<&QE;65N=&%T:6]N("!O9B`@05=++"`@86YD("!I;7!L96UE
M;G1A=&EO;B`@<W!E8VEF:6,*/B`@("`@(&]P=&EO;G,@87)E('!R969A8V5D
M('=I=&@@+5<N("!M87=K('!R;W9I9&5S(&9O=7(Z"C4U834W+#4Y"CX@("`@
M("`M5R!V97)S:6]N("`@("!M87=K('=R:71E<R`@:71S("!V97)S:6]N("!A
M;F0@(&-O<'ER:6=H="`@=&\*/B`@("`@("`@("`@("`@("`@("`@('-T9&]U
M="`@86YD("!C;VUP:6QE9"`@;&EM:71S("!T;R`@<W1D97)R(&%N9`H^("`@
M("`@("`@("`@("`@("`@("`@97AI=',@,"X*-3=D-C`*/"`@("`@("TM("`@
M("`@("`@("!I;F1I8V%T97,@=&AE('5N86UB:6=U;W5S(&5N9"!O9B!O<'1I
M;VYS+@HU.6$V,PH^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z
M($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@("`Q"C8S9#8V"CP@5F5R
M<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@
M("`@("`@("`@("`@("`@(#$*-C<L-CED-CD*/"`*/"`*/"`*-S0L-S9C-S0L
M-S8*/"`@("`@(%1H92!A8F]V92!O<'1I;VYS('=I;&P@8F4@879A:6QA8FQE
M('=I=&@@86YY(%!O<VEX("!C;VUP871I+0H\("`@("`@8FQE("!I;7!L96UE
M;G1A=&EO;B`@;V8@($%72RP@(&%N9"`@:6UP;&5M96YT871I;VX@('-P96-I
M9FEC"CP@("`@("!O<'1I;VYS(&%R92!P<F5F86-E9"!W:71H("U7+B!M87=K
M('!R;W9I9&5S('1H<F5E.@HM+2T*/B`@("`@("U7(&1U;7`@("`@("`@('=R
M:71E<R`@86X@(&%S<V5M8FQE<B`@;&EK92`@;&ES=&EN9R`@;V8@('1H90H^
M("`@("`@("`@("`@("`@("`@("`@:6YT97)N86P@(')E<')E<V5N=&%T:6]N
M("!O9B`@=&AE("!P<F]G<F%M('1O"CX@("`@("`@("`@("`@("`@("`@("!S
M=&1E<G(N"C<W83<X+#@Q"CX@("`@("`M5R!S<')I;G1F/5\(;E\(=5\(;2!A
M9&IU<W1S('1H92!S:7IE(&]F(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*
M/B`@("`@("`@("`@("`@("`@("`@(&)U9F9E<B`@=&\@(%\(;E\(=5\(;2!B
M>71E<RX@($UO<F4@=&AA;B!R87)E('5S92!O9@H^("`@("`@("`@("`@("`@
M("`@("`@=&AI<R!O<'1I;VX@:6YD:6-A=&5S(&UA=VL@<VAO=6QD("!B92`@
M<F5C;VTM"CX@("`@("`@("`@("`@("`@("`@("!P:6QE9"X*-SDL.#!C.#,*
M/"`@("`@("U7('9E<G-I;VX@("!M87=K('=R:71E<R!I=',@=F5R<VEO;B!A
M;F0@8V]P>7)I9VAT('1O('-T9&]U=`H\("`@("`@("`@("`@("`@("`@(&%N
M9"!C;VUP:6QE9"!L:6UI=',@=&\@<W1D97)R(&%N9"!E>&ET<R`P+@HM+2T*
M/B`@("`@("U7('!O<VEX7W-P86-E(&9O<F-E<R!M87=K(&YO="!T;R!C;VYS
M:61E<B`G7&XG('1O(&)E('-P86-E+@HX,BPY-&0X-`H\("`@("`@+5<@9'5M
M<"`@("`@('=R:71E<R!A;B!A<W-E;6)L97(@;&EK92!L:7-T:6YG(&]F('1H
M92`@:6YT97(M"CP@("`@("`@("`@("`@("`@("`@;F%L(')E<')E<V5N=&%T
M:6]N(&]F('1H92!P<F]G<F%M('1O('-T9&5R<BX*/"`*/"`@("`@("U7('-P
M<FEN=&8]7PAN7PAU7PAM"CP@("`@("`@("`@("`@("`@("`@861J=7-T<R!T
M:&4@<VEZ92`@;V8@(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*/"`@("`@
M("`@("`@("`@("`@("!B=69F97(@('1O("!?"&Y?"'5?"&T@(&)Y=&5S+B`@
M($UO<F4@=&AA;B!R87)E('5S92!O9@H\("`@("`@("`@("`@("`@("`@('1H
M:7,@;W!T:6]N(&EN9&EC871E<R`@;6%W:R`@<VAO=6QD("!B92`@<F5C;VTM
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
M,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@
M("`@("`@("`@("`S"C(P,F0Q.3@*/"!-05=+*#$I("`@("`@("`@("`@("`@
M("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR
M,#8L,C`W8S(P,@H\("`@("`@8V]M92!F<F]M(&EN<'5T(&%N9"!A<F4@='EP
M:6-A;&QY('-T;W)E9"`@:6X@(&9I96QD<RX@("`H4V5E"CP@("`@("!S96-T
M:6]N(#0I+@HM+2T*/B!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@
M0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR,#DL,C$Q9#(P
M,PH\("`@("`@5&AE('1Y<&4@;V8@86X@97AP<F5S<VEO;B!I<R!D971E<FUI
M;F5D(&)Y(&ET<R`@8V]N=&5X="`@86YD"CP@("`@("!A=71O;6%T:6,@='EP
M92!C;VYV97)S:6]N(&]C8W5R<R!I9B!N965D960N("!&;W(@97AA;7!L92P@
M=&\*/"`@("`@(&5V86QU871E('1H92!S=&%T96UE;G1S"C(Q,V0R,#0*/"`@
M("`@("`@("`@>2`]('@@*R`R("`[("!Z(#T@>"`@(FAE;&QO(@HR,35D,C`U
M"CP@("`@("!4:&4@=F%L=64@<W1O<F5D(&EN('9A<FEA8FQE('D@=VEL;"!B
M92!T>7!E9"!N=6UE<FEC+B`@268@('@*,C,U+#(T,6,R,C4L,C(W"CP@("`@
M("!I9B!B;W1H(&]P97)A;F1S(&%R92!S=')I;F<@=&AE(&-O;7!A<FES;VX@
M(&ES("!S=')I;F<N("`@268*/"`@("`@(&5X86-T;'D@(&]N92!O<&5R86YD
M(&ES('-T<FEN9R!A;F0@869T97(@=')I;6UI;F<@<W!A8V5S(&%N9`H\("`@
M("`@=&%B<R!F<F]M("!T:&4@(&9R;VYT("!A;F0@(&)A8VL@('1H92`@<F5M
M86EN:6YG("!S=')I;F<@(&ES"CP@("`@("!E;G1I<F5L>2`@;G5M97)I8R`@
M:6X@(&9O<FTL('1H96X@=&AE('-T<FEN9R!I<R!C;VYV97)T960@=&\*/"`@
M("`@(&YU;6)E<B!A;F0@=&AE(&-O;7!A<FES;VX@:7,@;G5M97)I8SL@;W1H
M97)W:7-E+"!T:&4@;G5M97)I8PH\("`@("`@;W!E<F%N9"!I<R!C;VYV97)T
M960@=&\@<W1R:6YG(&%N9"!T:&4@8V]M<&%R:7-O;B!I<R!S=')I;F<N"CP@
M("`@("!4:&4@<F5S=6QT(&]F(&$@8V]M<&%R:7-O;B!I<R!N=6UE<FEC+"`P
M(&]R(#$N"BTM+0H^("`@("`@:68@8F]T:"!O<&5R86YD<R!A<F4@<W1R:6YG
M('1H92!C;VUP87)I<V]N(&ES('-T<FEN9SL@:68@;VYE"CX@("`@("!O<&5R
M86YD("!I<R`@<W1R:6YG+"!T:&4@;F]N+7-T<FEN9R!O<&5R86YD(&ES(&-O
M;G9E<G1E9"!A;F0*/B`@("`@('1H92!C;VUP87)I<V]N(&ES('-T<FEN9RX@
M(%1H92!R97-U;'0@:7,@;G5M97)I8RP@,2!O<B`P+@HR-3=A,C0T+#(T-0H^
M("`@("`@<F5P;&%C:6YG('X@=VET:"!T:&4@(FYO="!M871C:"(@;W!E<F%T
M;W(L("%^("P@<F5V97)S97,@=&AE"CX@("`@("!M96%N:6YG+B`@07,@('!A
M='1E<FXM86-T:6]N('!A:7)S+`HR-3AA,C0W"CX@("`@("`@("`@("]?"'(O
M('L@7PAA7PAC7PAT7PAI7PAO7PAN('T@("!A;F0@("`D,"!^("]?"'(O('L@
M7PAA7PAC7PAT7PAI7PAO7PAN('T*,C4Y83(T.2PR-30*/B`@("`@(&%R92!T
M:&4@<V%M92P@86YD(&9O<B!E86-H("!I;G!U="`@<F5C;W)D("!T:&%T("!M
M871C:&5S("!?"'(L"CX@("`@("!?"&%?"&-?"'1?"&E?"&]?"&X@(&ES(&5X
M96-U=&5D+B`@26X@9F%C="P@+U\(<B\@:7,@86X@05=+(&5X<')E<W-I;VX@
M=&AA=`H^("`@("`@:7,@97%U:79A;&5N="!T;R`H)#`@?B`O7PAR+RD@(&%N
M>7=H97)E("!E>&-E<'0@('=H96X@(&]N("!T:&4*/B`@("`@(')I9VAT('-I
M9&4@;V8@82!M871C:"!O<&5R871O<B!O<B!P87-S960@87,@86X@87)G=6UE
M;G0@=&\@80H^("`@("`@8G5I;'0M:6X@9G5N8W1I;VX@=&AA="!E>'!E8W1S
M(&$@(')E9W5L87(@(&5X<')E<W-I;VX@(&%R9W4M"CX@("`@("!M96YT+@HR
M-C%C,C4V+#(U-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`T"BTM+0H^("`@("`@
M05=+('5S97,@97AT96YD960@<F5G=6QA<B!E>'!R97-S:6]N<R!A<R!W:71H
M(%\(95\(9U\(<E\(95\(<"@Q*2X@(%1H90H^("`@("`@<F5G=6QA<B`@97AP
M<F5S<VEO;B!M971A8VAA<F%C=&5R<RP@:2YE+BP@=&AO<V4@=VET:"!S<&5C
M:6%L"C(V-&$R-C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`@-`HR-CAD,C8T"CP@
M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
M("`@("`@("`@("`@($U!5TLH,2D*,C<R+#(W,V,R-C@*/"`@("`@(')E<&QA
M8VEN9R!^('=I=&@@=&AE(")N;W0@;6%T8V@B(&]P97)A=&]R+"`A?B`L(')E
M=F5R<V5S('1H90H\("`@("`@;65A;FEN9RX@($%S("!P871T97)N+6%C=&EO
M;B!P86ER<RP*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52
M($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,C<U9#(V.0H\
M("`@("`@("`@("`O7PAR+R#`@?B`O7PAR+R![(%\(85\(8U\(=%\(:5\(;U\(;B!]"C(W-RPR.#)D
M,C<P"CP@("`@("!A<F4@=&AE('-A;64L(&%N9"!F;W(@96%C:"`@:6YP=70@
M(')E8V]R9"`@=&AA="`@;6%T8VAE<R`@7PAR+`H\("`@("`@7PAA7PAC7PAT
M7PAI7PAO7PAN("!I<R!E>&5C=71E9"X@($EN(&9A8W0L("]?"'(O(&ES(&%N
M($%72R!E>'!R97-S:6]N('1H870*/"`@("`@(&ES(&5Q=6EV86QE;G0@=&\@
M*"0P('X@+U\(<B\I("!A;GEW:&5R92`@97AC97!T("!W:&5N("!O;B`@=&AE
M"CP@("`@("!R:6=H="!S:61E(&]F(&$@;6%T8V@@;W!E<F%T;W(@;W(@<&%S
M<V5D(&%S(&%N(&%R9W5M96YT('1O(&$*/"`@("`@(&)U:6QT+6EN(&9U;F-T
M:6]N('1H870@97AP96-T<R!A("!R96=U;&%R("!E>'!R97-S:6]N("!A<F=U
M+0H\("`@("`@;65N="X*,C@T+#(X-60R-S$*/"`@("`@($%72R!U<V5S(&5X
M=&5N9&5D(')E9W5L87(@97AP<F5S<VEO;G,@87,@=VET:"!?"&5?"&=?"')?
M"&5?"'`H,2DN("!4:&4*/"`@("`@(')E9W5L87(@(&5X<')E<W-I;VX@;65T
M86-H87)A8W1E<G,L(&DN92XL('1H;W-E('=I=&@@<W!E8VEA;`HR.31C,C@P
M"CP@("`@("`@("`@(%Q?"&,@("`@("`@("`@(&UA=&-H97,@82!C:&%R86-T
M97(@9&5F:6YE9"`@8GD@('1H92`@<V%M90HM+2T*/B`@("`@("`@("`@(EQ?
M"&,B("`@("`@("`@;6%T8VAE<R!A(&-H87)A8W1E<B!D969I;F5D("!B>2`@
M=&AE("!S86UE"C,Q-2PS,39C,S`Q+#,P,@H\("`@("`@("`@("!?"'(Q7PAR
M,B!M871C:&5S(%\(<C$@9F]L;&]W960@:6UM961I871E;'D@8GD@7PAR,B`@
M*&-O;F-A=&5N82T*/"`@("`@("`@("`@("`@("!T:6]N*2X*+2TM"CX@("`@
M("`@("`@(%\(<C%?"'(R("`@("`@("`@;6%T8VAE<R`@7PAR,2`@9F]L;&]W
M960@(&EM;65D:6%T96QY("!B>2`@7PAR,@H^("`@("`@("`@("`@("`@("`@
M("`@("`@*&-O;F-A=&5N871I;VXI+@HS,3@L,S$Y8S,P-`H\("`@("`@("`@
M("!?"'(Q('P@7PAR,@H\("`@("`@("`@("`@("`@(&UA=&-H97,@7PAR,2!O
M<B!?"'(R("AA;'1E<FYA=&EO;BDN"BTM+0H^("`@("`@("`@("!?"'(Q('P@
M7PAR,B`@("`@(&UA=&-H97,@7PAR,2!O<B!?"'(R("AA;'1E<FYA=&EO;BDN
M"C,R,6,S,#8*/"`@("`@("`@("`@7PAR*B`@(&UA=&-H97,@7PAR(')E<&5A
M=&5D('IE<F\@;W(@;6]R92!T:6UE<RX*+2TM"CX@("`@("`@("`@(%\(<BH@
M("`@("`@("`@(&UA=&-H97,@7PAR(')E<&5A=&5D('IE<F\@;W(@;6]R92!T
M:6UE<RX*,S(S8S,P.`H\("`@("`@("`@("!?"'(K("`@;6%T8VAE<R!?"'(@
M<F5P96%T960@;VYE(&]R(&UO<F4@=&EM97,N"BTM+0H^("`@("`@("`@("!?
M"'(K("`@("`@("`@("!M871C:&5S(%\(<B!R97!E871E9"!O;F4@;W(@;6]R
M92!T:6UE<RX*,S(T83,Q,`H^("`@("`@("`@("!?"'(_("`@("`@("`@("!M
M871C:&5S(%\(<B!Z97)O(&]R(&]N8V4N"C,R-6$S,3(*/B`@("`@("`@("`@
M*%\(<BD@("`@("`@("`@;6%T8VAE<R!?"'(L('!R;W9I9&EN9R!G<F]U<&EN
M9RX*,S(W8S,Q-"PS,34*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@8VAA
M;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`@-0HM+2T*/B`@
M("`@(%1H92!I;F-R96%S:6YG('!R96-E9&5N8V4@;V8@;W!E<F%T;W)S(&ES
M(&%L=&5R;F%T:6]N+"`@8V]N+0H^("`@("`@8V%T96YA=&EO;B!A;F0@=6YA
M<GD@*"HL("L@;W(@/RDN"C,R.&$S,3<*/B`@("`@($9O<B!E>&%M<&QE+`HS
M,CEA,S$Y+#,R,`H^("`@("`@("`@("`O7EM?82UZ02U:75M?82UZ02U:,"TY
M72HD+R`@86YD"CX@("`@("`@("`@("]>6RTK73\H6S`M.5TK7"X_?%PN6S`M
M.5TI6S`M.5TJ*%ME15U;+2M=/ULP+3E=*RD_)"\*,S,P83,R,BPS,C,*/B`@
M("`@(&%R92!M871C:&5D(&)Y($%72R!I9&5N=&EF:65R<R`@86YD("!!5TL@
M(&YU;65R:6,@(&-O;G-T86YT<PH^("`@("`@<F5S<&5C=&EV96QY+B`@("!.
M;W1E("!T:&%T("`N("!H87,@('1O("!B92`@97-C87!E9"`@=&\@(&)E"C,S
M-&,S,C<*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.
M1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HM+2T*/B!697)S:6]N(#$N
M,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@
M("`@("`@("`@-0HS,SAD,S,P"CP@("`@("`@("`@(%\(<C\@("!M871C:&5S
M(%\(<B!Z97)O(&]R(&]N8V4N"C,T,&0S,S$*/"`@("`@("`@("`@*%\(<BD@
M(&UA=&-H97,@7PAR+"!P<F]V:61I;F<@9W)O=7!I;F<N"C,T,BPS-#-D,S,R
M"CP@("`@("!4:&4@:6YC<F5A<VEN9R!P<F5C961E;F-E(&]F(&]P97)A=&]R
M<R!I<R!A;'1E<FYA=&EO;BP@(&-O;BT*/"`@("`@(&-A=&5N871I;VX@86YD
M('5N87)Y("@J+"`K(&]R(#\I+@HS-#5C,S,T"CP@("`@("!&;W(@97AA;7!L
M92P*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,S0W+#,T.&0S,S4*/"`@
M("`@("`@("`@+UY;7V$M>D$M6EU;7V$M>D$M6C`M.5TJ)"\@(&%N9`H\("`@
M("`@("`@("`O7ELM*UT_*%LP+3E=*UPN/WQ<+ELP+3E=*5LP+3E=*BA;945=
M6RTK73];,"TY72LI/R0O"C,U,"PS-3-D,S,V"CP@("`@("!A<F4@;6%T8VAE
M9"!B>2!!5TL@:61E;G1I9FEE<G,@(&%N9"`@05=+("!N=6UE<FEC("!C;VYS
M=&%N=',*/"`@("`@(')E<W!E8W1I=F5L>2X@("!.;W1E("!T:&%T("`N(&AA
M<R!T;R!B92!E<V-A<&5D('1O(&)E(')E8V]G+0H\("`@("`@;FEZ960@87,@
M82!D96-I;6%L('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R
M92`@;F]T"CP@("`@("!S<&5C:6%L(&EN<VED92!C:&%R86-T97(@8VQA<W-E
M<RX*,S4T83,S."PS-#`*/B`@("`@(')E8V]G;FEZ960@87,@82!D96-I;6%L
M('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R90H^("`@("`@
M;F]T('-P96-I86P@:6YS:61E(&-H87)A8W1E<B!C;&%S<V5S+@H^(`HS.#EA
M,S<V"CX@("`@("!S=')I;F<N("!&;W(@97AA;7!L92P*,SDP83,W."PS.#`*
M/B`@("`@("`@("`@96-H;R`R-"`R-$4@?`H^("`@("`@("`@("!M87=K("=[
M('!R:6YT*"0Q/C$P,"P@)#$^(C$P,"(L("0R/C$P,"P@)#(^(C$P,"(I('TG
M"CX@("`@("`@("`@(#`@,2`Q(#$*,SDQ83,X,BPS.#0*/B`@("`@("0P(&%N
M9"`D,B!A<F4@<W1R:6YG(&%N9"`D,2!I<R!N=6UB97(@86YD('-T<FEN9RX@
M(%1H92!F:7)S=`H^("`@("`@8V]M<&%R:7-O;B`@:7,@(&YU;65R:6,L("!T
M:&4@<V5C;VYD(&ES('-T<FEN9RP@=&AE('1H:7)D(&ES"CX@("`@("!S=')I
M;F<@*#$P,"!I<R!C;VYV97)T960@=&\@(C$P,"(I+"!A;F0@=&AE(&QA<W0@
M:7,@<W1R:6YG+@HS.3-C,S@V+#,X.0H\(%9E<G-I;VX@,2XQ("`@("`@("`@
M3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`V
M"BTM+0H^("`@-2X@17AP<F5S<VEO;G,@86YD(&]P97)A=&]R<PH^("`@("`@
M5&AE(&5X<')E<W-I;VX@<WEN=&%X(&ES('-I;6EL87(@=&\@0RX@(%!R:6UA
M<GD@(&5X<')E<W-I;VYS"CX@("`@("!A<F4@(&YU;65R:6,@8V]N<W1A;G1S
M+"!S=')I;F<@8V]N<W1A;G1S+"!V87)I86)L97,L(&9I96QD<RP*/B`@("`@
M(&%R<F%Y<R!A;F0@9G5N8W1I;VYS+B!4:&4@:61E;G1I9FEE<B!F;W(@82`@
M=F%R:6%B;&4L("!A<G)A>0HS.39A,SDS"CX@5F5R<VEO;B`Q+C$N,B`@("`@
M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
M(#8*-#`P9#,Y-@H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C0P-&,T,#`*/"`@
M("`@('-T<FEN9RX@($9O<B!E>&%M<&QE+`HM+2T*/B!-05=+*#$I("`@("`@
M("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@
M34%72R@Q*0HT,#8L-#`X9#0P,0H\("`@("`@("`@("!E8VAO(#(T(#(T12!\
M"CP@("`@("`@("`@(&UA=VL@)WL@<')I;G0H)#$^,3`P+"`D,3XB,3`P(BP@
M)#(^,3`P+"`D,CXB,3`P(BD@?2<*/"`@("`@("`@("`@,"`P(#$@,0HT,3`L
M-#$S9#0P,@H\("`@("`@)#`@86YD("0R(&%R92!S=')I;F<@86YD("0Q(&ES
M(&YU;6)E<B!A;F0@<W1R:6YG+B`@5&AE(&9I<G-T"CP@("`@("!A;F0@('-E
M8V]N9"`@8V]M<&%R:7-O;G,@(&%R92`@;G5M97)I8R`@86YD('1H92!L87-T
M('1W;R!A<F4*/"`@("`@('-T<FEN9RX@($EN('1H92!S96-O;F0@(C$P,"(@
M:7,@8V]N=F5R=&5D('1O(#$P,"P@86YD(&EN('1H90H\("`@("`@=&AI<F0@
M,3`P(&ES(&-O;G9E<G1E9"!T;R`B,3`P(BX*-#$U+#0Q.&0T,#,*/"`@(#4N
M($5X<')E<W-I;VYS(&%N9"!O<&5R871O<G,*/"`@("`@(%1H92!E>'!R97-S
M:6]N('-Y;G1A>"!I<R!S:6UI;&%R('1O($,N("!0<FEM87)Y("!E>'!R97-S
M:6]N<PH\("`@("`@87)E("!N=6UE<FEC(&-O;G-T86YT<RP@<W1R:6YG(&-O
M;G-T86YT<RP@=F%R:6%B;&5S+"!F:65L9',L"CP@("`@("!A<G)A>7,@86YD
M(&9U;F-T:6]N<RX@5&AE(&ED96YT:69I97(@9F]R(&$@('9A<FEA8FQE+"`@
M87)R87D*-#4V830T,BPT-#,*/B`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T
M:&4@9F]R('-T871E;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H^("`@
M("`@:6YD97@@;V8@86X@87)R87DN"C0U-V$T-#4*/B`@("`@("`@("`@9F]R
M("@@7PAV7PAA7PAR(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(
M=%\(95\(;5\(95\(;E\(=`HT-3EC-#0W+#0T.0H\(%9E<G-I;VX@,2XQ("`@
M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
M("`@("`W"BTM+0H^("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C:"!I;F1E
M>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(=%\(85\(
M=%\(95\(;5\(95\(;E\(="X@(%1H90H^("`@("`@;W)D97(@('1H870@(%\(
M=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@7PAA7PAR
M7PAR7PAA7PAY(&ES(&YO=`H^("`@("`@9&5F:6YE9"X*-#8P830U,2PT-3(*
M/B`@("`@(%1H92!S=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;
M7PAE7PAX7PAP7PAR72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?
M"'!?"')=(&YO="!T;PH^("`@("`@97AI<W0N"C0V,6$T-30L-#4U"CX@("`@
M("!-=6QT:61I;65N<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I
M=&@@(&-O;F-A=&5N871I;VX*/B`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN
M('9A<FEA8FQE(%-50E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?
M"'(Q+%\(95\(>%\(<%\(<C)=(&ES"C0V-&$T-3D*/B!697)S:6]N(#$N,2XR
M("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@
M("`@("`@-PHT-C9D-#8P"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*-#<P+#0W
M,60T-C,*/"`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T:&4@9F]R('-T871E
M;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H\("`@("`@:6YD97@@;V8@
M86X@87)R87DN"C0W,V0T-C0*/"`@("`@("`@("`@9F]R("@@7PAV7PAA7PAR
M(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
M;E\(=`HT-S4L-#<W8S0V-@H\("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C
M:"!I;F1E>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(
M=%\(85\(=%\(95\(;5\(95\(;E\(="X@(%1H90H\("`@("`@;W)D97(@('1H
M870@(%\(=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@
M7PAA7PAR7PAR7PAA7PAY(&ES(&YO=`H\("`@("`@9&5F:6YE9"X*+2TM"CX@
M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
M("`@("`@("`@("`@($U!5TLH,2D*-#<Y+#0X,&0T-C<*/"`@("`@(%1H92!S
M=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;7PAE7PAX7PAP7PAR
M72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"')=(&YO="!T
M;PH\("`@("`@97AI<W0N"C0X,BPT.#-C-#8Y"CP@("`@("!-=6QT:61I;65N
M<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I=&@@(&-O;F-A=&5N
M871I;VX*/"`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN('9A<FEA8FQE(%-5
M0E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"'(Q+%\(95\(>%\(
M<%\(<C)=(&ES"BTM+0H^(`HU,C)A-3`Y+#4Q,`H^("`@("`@("`@("!/4E,@
M("`@("`@=&5R;6EN871E<R!E86-H(')E8V]R9"!O;B!O=71P=70L(&EN:71I
M86QL>2`]"CX@("`@("`@("`@("`@("`@("`@("`B7&XB+@HU,C-A-3$R+#4Q
M,PH^("`@("`@("`@("!23$5.1U1(("`@;&5N9W1H('-E="!B>2!T:&4@;&%S
M="!C86QL('1O("!T:&4@(&)U:6QT+6EN"CX@("`@("`@("`@("`@("`@("`@
M("!F=6YC=&EO;BP@;6%T8V@H*2X*-3(U8S4Q-0H\(%9E<G-I;VX@,2XQ("`@
M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
M("`@("`X"BTM+0H^("`@("`@("`@("!24R`@("`@("`@:6YP=70@<F5C;W)D
M('-E<&%R871O<BP@:6YI=&EA;&QY(#T@(EQN(BX*-3(V834Q-PH^("`@("`@
M("`@("!24U1!4E0@("`@:6YD97@@<V5T(&)Y('1H92!L87-T(&-A;&P@=&\@
M;6%T8V@H*2X*-3(W834Q.2PU,C`*/B`@("`@("`@("`@4U5"4T50("`@('5S
M960@=&\@8G5I;&0@;75L=&EP;&4@87)R87D@<W5B<V-R:7!T<RP@:6YI+0H^
M("`@("`@("`@("`@("`@("`@("`@=&EA;&QY(#T@(EPP,S0B+@HU,S)C-3(U
M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
M("`@("`@("`@("`@("`@($U!5TLH,2D*+2TM"CX@5F5R<VEO;B`Q+C$N,B`@
M("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@
M("`@(#@*-3,V+#4S-V0U,C@*/"`@("`@("`@("`@3U)3("`@("`@('1E<FUI
M;F%T97,@96%C:"!R96-O<F0@;VX@;W5T<'5T+"!I;FET:6%L;'D@/0H\("`@
M("`@("`@("`@("`@("`@("`@(EQN(BX*-3,Y+#4T,&0U,CD*/"`@("`@("`@
M("`@4DQ%3D=42"`@(&QE;F=T:"!S970@8GD@=&AE(&QA<W0@8V%L;"!T;R`@
M=&AE("!B=6EL="UI;@H\("`@("`@("`@("`@("`@("`@("`@9G5N8W1I;VXL
M(&UA=&-H*"DN"C4T,F0U,S`*/"`@("`@("`@("`@4E,@("`@("`@(&EN<'5T
M(')E8V]R9"!S97!A<F%T;W(L(&EN:71I86QL>2`](")<;B(N"C4T-&,U,S(*
M/"`@("`@("`@("`@4E-405)4("`@(&EN9&5X('-E="!B>2!T:&4@;&%S="!C
M86QL('1O(&UA=&-H*"DN"BTM+0H^($U!5TLH,2D@("`@("`@("`@("`@("`@
M("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C4T
M-BPU-#=D-3,S"CP@("`@("`@("`@(%-50E-%4"`@("!U<V5D('1O(&)U:6QD
M(&UU;'1I<&QE(&%R<F%Y('-U8G-C<FEP=',L(&EN:2T*/"`@("`@("`@("`@
M("`@("`@("`@('1I86QL>2`](")<,#,T(BX*-30X834S-0H^(`HU-C4L-38W
M8S4U,BPU-3,*/"`@("`@("`@("`@;&5N9W1H*%\(<RD@(&QE;F=T:"@I"CP@
M("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H(&]F('-T<FEN9R!?
M"',[('=I=&AO=70@(&%N("!A<F=U+0H\("`@("`@("`@("`@("`@(&UE;G0L
M(')E='5R;G,@=&AE(&QE;F=T:"!O9B`D,"X*+2TM"CX@("`@("`@("`@(&QE
M;F=T:"A?"',I"CX@("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H
M(&]F('-T<FEN9R!?"',N"C4X-V$U-S0L-3<U"CX@("`@("`@("`@("`@("`@
M86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM7PAA7PAT+B`@(%-E92`@=&AE
M("!D97-C<FEP=&EO;B`@;V8*/B`@("`@("`@("`@("`@("!P<FEN=&8H*2!B
M96QO=RX*-3@X834W-RPU-SD*/B`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
M*2`@<W5B*%\(<BQ?"',I"CX@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/B`@("`@
M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HU.#EA-3@Q+#4X-`H^("`@
M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
M/B`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CX@("`@("`@("`@("`@("`@:6YD
M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
M92!S=69F:7@*/B`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
M(%\(:2!I<R!R971U<FYE9"X*-3DQ8S4X-BPU.#<*/"!697)S:6]N(#$N,2`@
M("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@
M("`@("`@.0HM+2T*/B`@("`@("`@("`@=&]L;W=E<BA?"',I"CX@("`@("`@
M("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@7PAS('=I=&@@86QL('5P<&5R
M(&-A<V4@8VAA<F%C=&5R<PHU.31A-3DQ"CX@5F5R<VEO;B`Q+C$N,B`@("`@
M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
M(#D*-3DX9#4Y-`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C8P,BPV,#-C-3DX
M"CP@("`@("`@("`@("`@("`@86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM
M7PAA7PAT+B`@(%-E92`@=&AE("!D97-C<FEP=&EO;B`@;V8*/"`@("`@("`@
M("`@("`@("!P<FEN=&8H*2!B96QO=RX*+2TM"CX@34%72R@Q*2`@("`@("`@
M("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!
M5TLH,2D*-C`U+#8P-V0U.3D*/"`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
M*2`@<W5B*%\(<BQ?"',I"CP@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/"`@("`@
M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HV,#DL-C$R9#8P,`H\("`@
M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
M/"`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CP@("`@("`@("`@("`@("`@:6YD
M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
M92!S=69F:7@*/"`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
M(%\(:2!I<R!R971U<FYE9"X*-C$T+#8Q-60V,#$*/"`@("`@("`@("`@=&]L
M;W=E<BA?"',I"CP@("`@("`@("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@
M7PAS('=I=&@@86QL('5P<&5R(&-A<V4@8VAA<F%C=&5R<PHV-30L-C8W9#8S
M.0H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$P"CP@"CP@"CP@"CP@
M"CP@"CP@"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*-C@Q838U
M-"PV-C<*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA
M;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q,`H^(`H^(`H^
M(`H^(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C<R
M,"PW,S-D-S`U"CP@"CP@"CP@"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T
M(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@("`@("`@("`@("`@("`@,3$*/"`*
M/"`*/"`*/"`*/"`*/"`*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%53
M15(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\
M(`HW-#AA-S(Q+#<S,PH^(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S
M="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$Q"CX@
M"CX@"CX@"CX@"CX@"CX@"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*
M/B`*-S@W+#<Y.60W-S$*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA
M<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q,@H\
M(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@
M55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@
M"CP@"C@Q,6,W.#,*/"`@("`@("`@("`@("`@("!R971U<FYS(#`@86YD("!?
M"$$@(&ES("!U;F-H86YG960N("`@3W1H97)W:7-E+"`@86QL"BTM+0H^("`@
M("`@("`@("`@("`@(')E='5R;G,@,"!A;F0@7PA!("!I<R`@<V5T("!E;7!T
M>2X@("!/=&AE<G=I<V4L("!A;&P*.#$S83<X-BPW.3D*/B`*/B`*/B`*/B!6
M97)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@
M("`@("`@("`@("`@("`@("`Q,@H^(`H^(`H^(`H^(`H^(`H^(`H^($U!5TLH
M,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@
M("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C@U,BPX-C5D.#,W"CP@"CP@"CP@
M"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y
M.3(@("`@("`@("`@("`@("`@("`@,3,*/"`*/"`*/"`*/"`*/"`*/"`*/"!-
M05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@
M("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\(`HX-SEA.#4R+#@V-0H^(`H^
M(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q
M,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$S"CX@"CX@"CX@"CX@"CX@"CX@
M"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
M("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*/B`*.3$W83DP-"PY,#4*
M/B`@("`@(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE
M($5.1"!?"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CX@("`@("!S
M:61E<F5D(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN
M7PAS(&%R92!E>&5C=71E9"X*.3$X83DP-RPY,3(*/B`@("`@($EN('1H92!E
M>&%M<&QE+"!T:&4@87-S:6=N;65N="!V/3$@('1A:V5S("!P;&%C92`@869T
M97(@('1H90H^("`@("`@0D5'24X@(%\(85\(8U\(=%\(:5\(;U\(;E\(<R`@
M87)E("!E>&5C=71E9"P@(&%N9"`@=&AE(&1A=&$@<&QA8V5D(&EN('8@:7,*
M/B`@("`@('1Y<&5D(&YU;6)E<B!A;F0@<W1R:6YG+B`@26YP=70@:7,@=&AE
M;B!R96%D("!F<F]M("!F:6QE("!!+@H^("`@("`@3VX@(&5N9"`@;V8@9FEL
M92!!+"!T(&ES('-E="!T;R!T:&4@<W1R:6YG(")H96QL;R(L(&%N9"!"(&ES
M"CX@("`@("!O<&5N960@9F]R(&EN<'5T+B`@3VX@96YD(&]F(&9I;&4@0BP@
M('1H92`@14Y$("!?"&%?"&-?"'1?"&E?"&]?"&Y?"',@(&%R90H^("`@("`@
M97AE8W5T960N"CDQ.6$Y,30L.3$U"CX@("`@("!0<F]G<F%M(&9L;W<@870@
M=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(;B![7PAA7PAC7PAT7PAI7PAO7PAN
M?2!L979E;"`@8V%N("!B92`@8VAA;F=E9`H^("`@("`@=VET:"!T:&4*.3(Q
M8SDQ-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$T"BTM+0H^("`@("`@("`@("!N
M97AT("`@86YD"CDR-&$Y,C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@
M8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-`HY,CAD
M.3(T"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13
M("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,R+#DS,V,Y,C@*/"`@("`@
M(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE($5.1"!?
M"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CP@("`@("!S:61E<F5D
M(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN7PAS(&%R
M92!E>&5C=71E9"X*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,U+#DT
M,&0Y,CD*/"`@("`@($EN('1H92!E>&%M<&QE+"!T:&4@87-S:6=N;65N="!V
M/3$@('1A:V5S("!P;&%C92`@869T97(@('1H90H\("`@("`@0D5'24X@(%\(
M85\(8U\(=%\(:5\(;U\(;E\(<R`@87)E("!E>&5C=71E9"P@(&%N9"`@=&AE
M(&1A=&$@<&QA8V5D(&EN('8@:7,*/"`@("`@('1Y<&5D(&YU;6)E<B!A;F0@
M<W1R:6YG+B`@26YP=70@:7,@=&AE;B!R96%D("!F<F]M("!F:6QE("!!+@H\
M("`@("`@3VX@(&5N9"`@;V8@9FEL92!!+"!T(&ES('-E="!T;R!T:&4@<W1R
M:6YG(")H96QL;R(L(&%N9"!"(&ES"CP@("`@("!O<&5N960@9F]R(&EN<'5T
M+B`@3VX@96YD(&]F(&9I;&4@0BP@('1H92`@14Y$("!?"&%?"&-?"'1?"&E?
M"&]?"&Y?"',@(&%R90H\("`@("`@97AE8W5T960N"CDT,BPY-#-D.3,P"CP@
M("`@("!0<F]G<F%M(&9L;W<@870@=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(
M;B#$@?B`O
M9&5B:71\;&]S<R\@('L@<W5M("T]("0R('T*.3@T83DW,@H^("`@("`@("`@
M("!%3D0@>R!P<FEN="!S=6T@?0HY.#5A.3<T"CX@("`@("`U+B!S;W)T(&$@
M9FEL92P@8V]M<&%R:6YG(&%S('-T<FEN9PHY.#=C.3<V+#DW-PH\(%9E<G-I
M;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@
M("`@("`@("`@("`@(#$U"BTM+0H^("`@("`@("`@("![(&QI;F5;3E)=(#T@
M)#`@(B(@?2`@(R!M86ME('-U<F4@;V8@8V]M<&%R:7-O;B!T>7!E"CX@("`@
M("`@("`@("`@("`@("`@("`@("`@("`C(&EN(&-A<V4@<V]M92!L:6YE<R!L
M;V]K(&YU;65R:6,*.3@X83DW.2PY.#$*/B`@("`@("`@("`@14Y$('L@(&ES
M;W)T*&QI;F4L($Y2*0H^("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@/#T@
M3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/B`@("`@("`@("`@?0HY.#EA.3@S
M"CX@("`@("`@("`@("-I;G-E<G1I;VX@<V]R="!O9B!!6S$N+FY="CDY,F$Y
M.#<*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@
M,3DY,B`@("`@("`@("`@("`@("`@("`Q-0HY.31D.3@X"CP@34%72R@Q*2`@
M("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@
M("`@($U!5TLH,2D*.3DX+#DY.60Y.3$*/"`@("`@("`@("`@)#$@?B`O8W)E
M9&ET?&=A:6XO('L@<W5M("L]("0R('T*/"`@("`@("`@("`@)#$@?B`O9&5B
M:71\;&]S<R\@('L@<W5M("T]("0R('T*,3`P,60Y.3(*/"`@("`@("`@("`@
M14Y$('L@<')I;G0@<W5M('T*,3`P,V,Y.30*/"`@("`@(#4N('-O<G0@82!F
M:6QE+"!C;VUP87)I;F<@87,@<W1R:6YG"BTM+0H^($U!5TLH,2D@("`@("`@
M("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-
M05=+*#$I"C$P,#4L,3`P-F0Y.34*/"`@("`@("`@("`@>R!L:6YE6TY272`]
M("0P("(B('T@(",@;6%K92!S=7)E(&]F(&-O;7!A<FES;VX@='EP90H\("`@
M("`@("`@("`@("`@("`@("`@("`@("`@(R!I;B!C87-E('-O;64@;&EN97,@
M;&]O:R!N=6UE<FEC"C$P,#@L,3`Q,&0Y.38*/"`@("`@("`@("`@14Y$('L@
M(&ES;W)T*&QI;F4L($Y2*0H\("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@
M/#T@3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/"`@("`@("`@("`@?0HQ,#$R
M9#DY-PH\("`@("`@("`@("`C:6YS97)T:6]N('-O<G0@;V8@05LQ+BYN70HQ
M,#(V9#$P,3`*/"`*,3`U,"PQ,#8S9#$P,S,*/"`*/"`*/"`*/"!697)S:6]N
M(#$N,2`@("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@
M("`@("`@("`@("`Q-@H\(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@
M("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@
M("!-05=+*#$I"CP@"CP@"CP@"C$P.#!A,3`U,2PQ,#8S"CX@"CX@"CX@5F5R
M<VEO;B`Q+C$N,B`@("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@
M("`@("`@("`@("`@("`@,38*/B`*/B`*/B`*/B`*/B`*/B`*/B!-05=+*#$I
M("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@
M("`@("`@34%72R@Q*0H^(`H^(`H^(`HQ,3$U+#$Q,CED,3`Y-PH\(`H\(`H\
M(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$W"CP@"CP@"CP@"CP@"CP@"CP@
M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
M("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*,3$T-V$Q,3$V+#$Q
M,CD*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-PH^(`H^(`H^(`H^
M(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-
M04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C$Q-C-D
M,3$T-`H\(`HQ,38U8S$Q-#8*/"`@("`@(%\(95\(9U\(<E\(95\(<"`H,2D*
M+2TM"CX@("`@("!?"&5?"&=?"')?"&5?"'`H,2D*,3$W.2PQ,3DU9#$Q-3D*
M/"`*/"`*/"`*/"`*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@
M8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q.`H\(`H\
M(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%
M4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@"CP@
M"C$R,3!D,3$W,PH\(`HQ,C(R+#$R-3%C,3$X-0H\(`H\(`H\(`H\(`H\(`H\
M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\
M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@
M("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@
M(#$Y"BTM+0H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU
?;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$X"F%S
`
end
SHAR_EOF
echo 'uudecoding file doc.diff' &&
uudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
chmod 0644 doc.diff ||
echo 'restore of doc.diff failed'
Wc_c="`wc -c < 'doc.diff'`"
test 22396 -eq "$Wc_c" ||
echo 'doc.diff: original size 22396, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
rm -f _shar_seq_.tmp
echo You have unpacked the last part
exit 0
exit 0 # Just in case...
--
Andrew Patrick acting as Comp.Sources.Reviewed Moderator
Department of Communications, Ottawa, CANADA
csr@calvin.dgbt.doc.CA
Technical Details
Message-ID:
<1992Oct13.221503.10172@rick.dgbt.doc.ca>Path:
arc1-ca.pugleaf.net!sparky!uunet!elroy.jpl.nasa.gov!ames!haven.umd.edu!darwin.sura.net!convex!news.utdallas.edu!corpgate!bnrgate!nrcnet0!dgbt!rick.dgbt.doc.ca!calvin.dgbt.doc.ca!csrShow Full Headers
Complete Article Headers
Newsgroups: comp.sources.reviewed Path: arc1-ca.pugleaf.net!sparky!uunet!elroy.jpl.nasa.gov!ames!haven.umd.edu!darwin.sura.net!convex!news.utdallas.edu!corpgate!bnrgate!nrcnet0!dgbt!rick.dgbt.doc.ca!calvin.dgbt.doc.ca!csr From: Mike Brennan <brennan@boeing.com> Subject: v02i031: mawk - (Ver. 1.1) An interpreter for the AWK language, Patch02d/4 Message-ID: <1992Oct13.221503.10172@rick.dgbt.doc.ca> Originator: csr@calvin.dgbt.doc.ca Sender: news@rick.dgbt.doc.ca Nntp-Posting-Host: calvin.dgbt.doc.ca Organization: Communications Research Centre, Ottawa Date: Tue, 13 Oct 1992 22:15:03 GMT Approved: csr@calvin.dgbt.doc.ca Lines: 1574