]> Cypherpunks repositories - gostls13.git/commitdiff
added printn and panicn
authorKen Thompson <ken@golang.org>
Thu, 2 Oct 2008 21:38:07 +0000 (14:38 -0700)
committerKen Thompson <ken@golang.org>
Thu, 2 Oct 2008 21:38:07 +0000 (14:38 -0700)
prints that insert spaces and new line

R=r
OCL=16370
CL=16370

src/cmd/gc/go.h
src/cmd/gc/go.y
src/cmd/gc/lex.c
src/cmd/gc/subr.c
src/cmd/gc/sys.go
src/cmd/gc/sysimport.c
src/cmd/gc/walk.c
src/runtime/print.c

index 073001e607f889ed1143421028dec8b2067e1bf5..d38c8cb38fb7638f1f06761c9711bf997cb6a1a6 100644 (file)
@@ -269,7 +269,7 @@ enum
        ORETURN, OFOR, OIF, OSWITCH,
        OAS, OASOP, OCASE, OXCASE, OFALL, OXFALL,
        OGOTO, OPROC, ONEW, OEMPTY, OSELECT,
-       OLEN, OCAP, OPANIC, OPRINT, OTYPEOF,
+       OLEN, OCAP, OPANIC, OPANICN, OPRINT, OPRINTN, OTYPEOF,
 
        OOROR,
        OANDAND,
@@ -695,7 +695,7 @@ Node*       ascompatee(int, Node**, Node**);
 Node*  ascompatet(int, Node**, Type**, int);
 Node*  ascompatte(int, Type**, Node**, int);
 int    ascompat(Type*, Type*);
-Node*  prcompat(Node*);
+Node*  prcompat(Node*, int);
 Node*  nodpanic(int32);
 Node*  newcompat(Node*);
 Node*  stringop(Node*, int);
index e4bcee30b7027dd564451df19c92b2ae8d0cdaa4..46b01e3a4352851dcb597d2e39aa930c0fc280d2 100644 (file)
@@ -18,7 +18,7 @@
 %token <sym>           LPACKAGE LIMPORT LEXPORT
 %token <sym>           LMAP LCHAN LINTERFACE LFUNC LSTRUCT
 %token <sym>           LCOLAS LFALL LRETURN
-%token <sym>           LNEW LLEN LCAP LTYPEOF LPANIC LPRINT
+%token <sym>           LNEW LLEN LCAP LTYPEOF LPANIC LPANICN LPRINT LPRINTN
 %token <sym>           LVAR LTYPE LCONST LCONVERT LSELECT
 %token <sym>           LFOR LIF LELSE LSWITCH LCASE LDEFAULT
 %token <sym>           LBREAK LCONTINUE LGO LGOTO LRANGE
@@ -361,10 +361,18 @@ noninc_stmt:
        {
                $$ = nod(OPRINT, $3, N);
        }
+|      LPRINTN '(' oexpr_list ')'
+       {
+               $$ = nod(OPRINTN, $3, N);
+       }
 |      LPANIC '(' oexpr_list ')'
        {
                $$ = nod(OPANIC, $3, N);
        }
+|      LPANICN '(' oexpr_list ')'
+       {
+               $$ = nod(OPANICN, $3, N);
+       }
 
 inc_stmt:
        expr LINC
@@ -896,7 +904,9 @@ keyword:
 |      LLEN
 |      LCAP
 |      LPANIC
+|      LPANICN
 |      LPRINT
+|      LPRINTN
 |      LNEW
 |      LBASETYPE
 |      LTYPEOF
index dce5c1453a9f4bcde56555c5642a0c660b1f0c47..707b61aa1567cec76fb72deb05d11c6a2e27b683 100644 (file)
@@ -998,7 +998,9 @@ static      struct
        "nil",          LNIL,           Txxx,
        "package",      LPACKAGE,       Txxx,
        "panic",        LPANIC,         Txxx,
+       "panicn",       LPANICN,        Txxx,
        "print",        LPRINT,         Txxx,
+       "printn",       LPRINTN,        Txxx,
        "range",        LRANGE,         Txxx,
        "return",       LRETURN,        Txxx,
        "select",       LSELECT,        Txxx,
index f659c17c2e303d6cfbb58aa0adab0f94863565eb..4514f39140c0bf2e08e4bedf5309eb04e06aeaf8 100644 (file)
@@ -693,7 +693,9 @@ opnames[] =
        [OFALL]         = "FALL",
        [OXFALL]        = "XFALL",
        [OPANIC]        = "PANIC",
+       [OPANICN]       = "PANICN",
        [OPRINT]        = "PRINT",
+       [OPRINTN]       = "PRINTN",
        [OXXX]          = "XXX",
 };
 
index a969ace605767e08832ae5fb7a3611caa3e2e655..abc62886ecce4359d289447c385c0cdf725b4682 100644 (file)
@@ -17,6 +17,8 @@ func  printint(int64);
 func   printstring(string);
 func   printpointer(*any);
 func   printinter(any);
+func   printnl();
+func   printsp();
 
 func   catstring(string, string) string;
 func   cmpstring(string, string) int32;
@@ -92,6 +94,8 @@ export
        printstring
        printpointer
        printinter
+       printnl
+       printsp
 
        // op string
        catstring
index ab124460d9abbcfbed20c6b430432c509351a540..b49e6ba278d65f68cc714a651f31139473a52d03 100644 (file)
@@ -2,10 +2,10 @@ char* sysimport =
        "package sys\n"
        "type sys._esys_002 {}\n"
        "type sys._esys_003 *sys.any\n"
-       "type sys._osys_457 {_esys_455 sys._esys_003}\n"
+       "type sys._osys_461 {_esys_459 sys._esys_003}\n"
        "type sys.uint32 6\n"
-       "type sys._isys_459 {_esys_456 sys.uint32}\n"
-       "type sys._esys_001 (sys._esys_002 sys._osys_457 sys._isys_459)\n"
+       "type sys._isys_463 {_esys_460 sys.uint32}\n"
+       "type sys._esys_001 (sys._esys_002 sys._osys_461 sys._isys_463)\n"
        "var !sys.mal sys._esys_001\n"
        "type sys._esys_005 {}\n"
        "type sys._esys_006 {}\n"
@@ -25,337 +25,347 @@ char*     sysimport =
        "type sys._esys_017 {}\n"
        "type sys._esys_018 {}\n"
        "type sys.int32 5\n"
-       "type sys._isys_467 {_esys_466 sys.int32}\n"
-       "type sys._esys_016 (sys._esys_017 sys._esys_018 sys._isys_467)\n"
+       "type sys._isys_471 {_esys_470 sys.int32}\n"
+       "type sys._esys_016 (sys._esys_017 sys._esys_018 sys._isys_471)\n"
        "var !sys.panicl sys._esys_016\n"
        "type sys._esys_020 {}\n"
        "type sys._esys_021 {}\n"
        "type sys.bool 12\n"
-       "type sys._isys_472 {_esys_471 sys.bool}\n"
-       "type sys._esys_019 (sys._esys_020 sys._esys_021 sys._isys_472)\n"
+       "type sys._isys_476 {_esys_475 sys.bool}\n"
+       "type sys._esys_019 (sys._esys_020 sys._esys_021 sys._isys_476)\n"
        "var !sys.printbool sys._esys_019\n"
        "type sys._esys_023 {}\n"
        "type sys._esys_024 {}\n"
        "type sys.float64 10\n"
-       "type sys._isys_477 {_esys_476 sys.float64}\n"
-       "type sys._esys_022 (sys._esys_023 sys._esys_024 sys._isys_477)\n"
+       "type sys._isys_481 {_esys_480 sys.float64}\n"
+       "type sys._esys_022 (sys._esys_023 sys._esys_024 sys._isys_481)\n"
        "var !sys.printfloat sys._esys_022\n"
        "type sys._esys_026 {}\n"
        "type sys._esys_027 {}\n"
        "type sys.int64 7\n"
-       "type sys._isys_482 {_esys_481 sys.int64}\n"
-       "type sys._esys_025 (sys._esys_026 sys._esys_027 sys._isys_482)\n"
+       "type sys._isys_486 {_esys_485 sys.int64}\n"
+       "type sys._esys_025 (sys._esys_026 sys._esys_027 sys._isys_486)\n"
        "var !sys.printint sys._esys_025\n"
        "type sys._esys_029 {}\n"
        "type sys._esys_030 {}\n"
-       "type sys._esys_031 25\n"
        "type sys.string *sys._esys_031\n"
-       "type sys._isys_487 {_esys_486 sys.string}\n"
-       "type sys._esys_028 (sys._esys_029 sys._esys_030 sys._isys_487)\n"
+       "type sys._isys_491 {_esys_490 sys.string}\n"
+       "type sys._esys_028 (sys._esys_029 sys._esys_030 sys._isys_491)\n"
        "var !sys.printstring sys._esys_028\n"
        "type sys._esys_033 {}\n"
        "type sys._esys_034 {}\n"
        "type sys._esys_035 *sys.any\n"
-       "type sys._isys_492 {_esys_491 sys._esys_035}\n"
-       "type sys._esys_032 (sys._esys_033 sys._esys_034 sys._isys_492)\n"
+       "type sys._isys_496 {_esys_495 sys._esys_035}\n"
+       "type sys._esys_032 (sys._esys_033 sys._esys_034 sys._isys_496)\n"
        "var !sys.printpointer sys._esys_032\n"
        "type sys._esys_037 {}\n"
        "type sys._esys_038 {}\n"
        "type sys.any 24\n"
-       "type sys._isys_497 {_esys_496 sys.any}\n"
-       "type sys._esys_036 (sys._esys_037 sys._esys_038 sys._isys_497)\n"
+       "type sys._isys_501 {_esys_500 sys.any}\n"
+       "type sys._esys_036 (sys._esys_037 sys._esys_038 sys._isys_501)\n"
        "var !sys.printinter sys._esys_036\n"
        "type sys._esys_040 {}\n"
-       "type sys._osys_504 {_esys_501 sys.string}\n"
-       "type sys._isys_506 {_esys_502 sys.string _esys_503 sys.string}\n"
-       "type sys._esys_039 (sys._esys_040 sys._osys_504 sys._isys_506)\n"
-       "var !sys.catstring sys._esys_039\n"
+       "type sys._esys_041 {}\n"
        "type sys._esys_042 {}\n"
-       "type sys._osys_514 {_esys_511 sys.int32}\n"
-       "type sys._isys_516 {_esys_512 sys.string _esys_513 sys.string}\n"
-       "type sys._esys_041 (sys._esys_042 sys._osys_514 sys._isys_516)\n"
-       "var !sys.cmpstring sys._esys_041\n"
+       "type sys._esys_039 (sys._esys_040 sys._esys_041 sys._esys_042)\n"
+       "var !sys.printnl sys._esys_039\n"
        "type sys._esys_044 {}\n"
-       "type sys._osys_525 {_esys_521 sys.string}\n"
-       "type sys._isys_527 {_esys_522 sys.string _esys_523 sys.int32 _esys_524 sys.int32}\n"
-       "type sys._esys_043 (sys._esys_044 sys._osys_525 sys._isys_527)\n"
-       "var !sys.slicestring sys._esys_043\n"
+       "type sys._esys_045 {}\n"
        "type sys._esys_046 {}\n"
-       "type sys.uint8 2\n"
-       "type sys._osys_536 {_esys_533 sys.uint8}\n"
-       "type sys._isys_538 {_esys_534 sys.string _esys_535 sys.int32}\n"
-       "type sys._esys_045 (sys._esys_046 sys._osys_536 sys._isys_538)\n"
-       "var !sys.indexstring sys._esys_045\n"
+       "type sys._esys_043 (sys._esys_044 sys._esys_045 sys._esys_046)\n"
+       "var !sys.printsp sys._esys_043\n"
        "type sys._esys_048 {}\n"
-       "type sys._osys_545 {_esys_543 sys.string}\n"
-       "type sys._isys_547 {_esys_544 sys.int64}\n"
-       "type sys._esys_047 (sys._esys_048 sys._osys_545 sys._isys_547)\n"
-       "var !sys.intstring sys._esys_047\n"
+       "type sys._osys_510 {_esys_507 sys.string}\n"
+       "type sys._isys_512 {_esys_508 sys.string _esys_509 sys.string}\n"
+       "type sys._esys_047 (sys._esys_048 sys._osys_510 sys._isys_512)\n"
+       "var !sys.catstring sys._esys_047\n"
        "type sys._esys_050 {}\n"
-       "type sys._osys_554 {_esys_551 sys.string}\n"
-       "type sys._esys_051 *sys.uint8\n"
-       "type sys._isys_556 {_esys_552 sys._esys_051 _esys_553 sys.int32}\n"
-       "type sys._esys_049 (sys._esys_050 sys._osys_554 sys._isys_556)\n"
-       "var !sys.byteastring sys._esys_049\n"
-       "type sys._esys_053 {}\n"
-       "type sys._osys_563 {_esys_561 sys.string}\n"
-       "type sys._esys_055 [] sys.uint8\n"
-       "type sys._esys_054 *sys._esys_055\n"
-       "type sys._isys_565 {_esys_562 sys._esys_054}\n"
-       "type sys._esys_052 (sys._esys_053 sys._osys_563 sys._isys_565)\n"
-       "var !sys.arraystring sys._esys_052\n"
-       "type sys._esys_057 {}\n"
-       "type sys._osys_569 {ret sys.any}\n"
-       "type sys._esys_058 *sys.uint8\n"
+       "type sys._osys_520 {_esys_517 sys.int32}\n"
+       "type sys._isys_522 {_esys_518 sys.string _esys_519 sys.string}\n"
+       "type sys._esys_049 (sys._esys_050 sys._osys_520 sys._isys_522)\n"
+       "var !sys.cmpstring sys._esys_049\n"
+       "type sys._esys_052 {}\n"
+       "type sys._osys_531 {_esys_527 sys.string}\n"
+       "type sys._isys_533 {_esys_528 sys.string _esys_529 sys.int32 _esys_530 sys.int32}\n"
+       "type sys._esys_051 (sys._esys_052 sys._osys_531 sys._isys_533)\n"
+       "var !sys.slicestring sys._esys_051\n"
+       "type sys._esys_054 {}\n"
+       "type sys.uint8 2\n"
+       "type sys._osys_542 {_esys_539 sys.uint8}\n"
+       "type sys._isys_544 {_esys_540 sys.string _esys_541 sys.int32}\n"
+       "type sys._esys_053 (sys._esys_054 sys._osys_542 sys._isys_544)\n"
+       "var !sys.indexstring sys._esys_053\n"
+       "type sys._esys_056 {}\n"
+       "type sys._osys_551 {_esys_549 sys.string}\n"
+       "type sys._isys_553 {_esys_550 sys.int64}\n"
+       "type sys._esys_055 (sys._esys_056 sys._osys_551 sys._isys_553)\n"
+       "var !sys.intstring sys._esys_055\n"
+       "type sys._esys_058 {}\n"
+       "type sys._osys_560 {_esys_557 sys.string}\n"
        "type sys._esys_059 *sys.uint8\n"
-       "type sys._isys_571 {sigi sys._esys_058 sigt sys._esys_059 elem sys.any}\n"
-       "type sys._esys_056 (sys._esys_057 sys._osys_569 sys._isys_571)\n"
-       "var !sys.ifaceT2I sys._esys_056\n"
+       "type sys._isys_562 {_esys_558 sys._esys_059 _esys_559 sys.int32}\n"
+       "type sys._esys_057 (sys._esys_058 sys._osys_560 sys._isys_562)\n"
+       "var !sys.byteastring sys._esys_057\n"
        "type sys._esys_061 {}\n"
-       "type sys._osys_578 {ret sys.any}\n"
-       "type sys._esys_062 *sys.uint8\n"
-       "type sys._isys_580 {sigt sys._esys_062 iface sys.any}\n"
-       "type sys._esys_060 (sys._esys_061 sys._osys_578 sys._isys_580)\n"
-       "var !sys.ifaceI2T sys._esys_060\n"
-       "type sys._esys_064 {}\n"
-       "type sys._osys_586 {ret sys.any}\n"
-       "type sys._esys_065 *sys.uint8\n"
-       "type sys._isys_588 {sigi sys._esys_065 iface sys.any}\n"
-       "type sys._esys_063 (sys._esys_064 sys._osys_586 sys._isys_588)\n"
-       "var !sys.ifaceI2I sys._esys_063\n"
-       "type sys._esys_067 {}\n"
-       "type sys._osys_595 {_esys_594 sys.int32}\n"
-       "type sys._esys_068 {}\n"
-       "type sys._esys_066 (sys._esys_067 sys._osys_595 sys._esys_068)\n"
-       "var !sys.argc sys._esys_066\n"
-       "type sys._esys_070 {}\n"
-       "type sys._osys_599 {_esys_598 sys.int32}\n"
-       "type sys._esys_071 {}\n"
-       "type sys._esys_069 (sys._esys_070 sys._osys_599 sys._esys_071)\n"
-       "var !sys.envc sys._esys_069\n"
-       "type sys._esys_073 {}\n"
-       "type sys._osys_604 {_esys_602 sys.string}\n"
-       "type sys._isys_606 {_esys_603 sys.int32}\n"
-       "type sys._esys_072 (sys._esys_073 sys._osys_604 sys._isys_606)\n"
-       "var !sys.argv sys._esys_072\n"
+       "type sys._osys_569 {_esys_567 sys.string}\n"
+       "type sys._esys_062 *sys._esys_063\n"
+       "type sys._isys_571 {_esys_568 sys._esys_062}\n"
+       "type sys._esys_060 (sys._esys_061 sys._osys_569 sys._isys_571)\n"
+       "var !sys.arraystring sys._esys_060\n"
+       "type sys._esys_065 {}\n"
+       "type sys._osys_575 {ret sys.any}\n"
+       "type sys._esys_066 *sys.uint8\n"
+       "type sys._esys_067 *sys.uint8\n"
+       "type sys._isys_577 {sigi sys._esys_066 sigt sys._esys_067 elem sys.any}\n"
+       "type sys._esys_064 (sys._esys_065 sys._osys_575 sys._isys_577)\n"
+       "var !sys.ifaceT2I sys._esys_064\n"
+       "type sys._esys_069 {}\n"
+       "type sys._osys_584 {ret sys.any}\n"
+       "type sys._esys_070 *sys.uint8\n"
+       "type sys._isys_586 {sigt sys._esys_070 iface sys.any}\n"
+       "type sys._esys_068 (sys._esys_069 sys._osys_584 sys._isys_586)\n"
+       "var !sys.ifaceI2T sys._esys_068\n"
+       "type sys._esys_072 {}\n"
+       "type sys._osys_592 {ret sys.any}\n"
+       "type sys._esys_073 *sys.uint8\n"
+       "type sys._isys_594 {sigi sys._esys_073 iface sys.any}\n"
+       "type sys._esys_071 (sys._esys_072 sys._osys_592 sys._isys_594)\n"
+       "var !sys.ifaceI2I sys._esys_071\n"
        "type sys._esys_075 {}\n"
-       "type sys._osys_612 {_esys_610 sys.string}\n"
-       "type sys._isys_614 {_esys_611 sys.int32}\n"
-       "type sys._esys_074 (sys._esys_075 sys._osys_612 sys._isys_614)\n"
-       "var !sys.envv sys._esys_074\n"
-       "type sys._esys_077 {}\n"
-       "type sys._osys_621 {_esys_618 sys.float64 _esys_619 sys.int32}\n"
-       "type sys._isys_623 {_esys_620 sys.float64}\n"
-       "type sys._esys_076 (sys._esys_077 sys._osys_621 sys._isys_623)\n"
-       "var !sys.frexp sys._esys_076\n"
+       "type sys._osys_601 {_esys_600 sys.int32}\n"
+       "type sys._esys_076 {}\n"
+       "type sys._esys_074 (sys._esys_075 sys._osys_601 sys._esys_076)\n"
+       "var !sys.argc sys._esys_074\n"
+       "type sys._esys_078 {}\n"
+       "type sys._osys_605 {_esys_604 sys.int32}\n"
        "type sys._esys_079 {}\n"
-       "type sys._osys_630 {_esys_627 sys.float64}\n"
-       "type sys._isys_632 {_esys_628 sys.float64 _esys_629 sys.int32}\n"
-       "type sys._esys_078 (sys._esys_079 sys._osys_630 sys._isys_632)\n"
-       "var !sys.ldexp sys._esys_078\n"
+       "type sys._esys_077 (sys._esys_078 sys._osys_605 sys._esys_079)\n"
+       "var !sys.envc sys._esys_077\n"
        "type sys._esys_081 {}\n"
-       "type sys._osys_640 {_esys_637 sys.float64 _esys_638 sys.float64}\n"
-       "type sys._isys_642 {_esys_639 sys.float64}\n"
-       "type sys._esys_080 (sys._esys_081 sys._osys_640 sys._isys_642)\n"
-       "var !sys.modf sys._esys_080\n"
+       "type sys._osys_610 {_esys_608 sys.string}\n"
+       "type sys._isys_612 {_esys_609 sys.int32}\n"
+       "type sys._esys_080 (sys._esys_081 sys._osys_610 sys._isys_612)\n"
+       "var !sys.argv sys._esys_080\n"
        "type sys._esys_083 {}\n"
-       "type sys._osys_649 {_esys_646 sys.bool}\n"
-       "type sys._isys_651 {_esys_647 sys.float64 _esys_648 sys.int32}\n"
-       "type sys._esys_082 (sys._esys_083 sys._osys_649 sys._isys_651)\n"
-       "var !sys.isInf sys._esys_082\n"
+       "type sys._osys_618 {_esys_616 sys.string}\n"
+       "type sys._isys_620 {_esys_617 sys.int32}\n"
+       "type sys._esys_082 (sys._esys_083 sys._osys_618 sys._isys_620)\n"
+       "var !sys.envv sys._esys_082\n"
        "type sys._esys_085 {}\n"
-       "type sys._osys_658 {_esys_656 sys.bool}\n"
-       "type sys._isys_660 {_esys_657 sys.float64}\n"
-       "type sys._esys_084 (sys._esys_085 sys._osys_658 sys._isys_660)\n"
-       "var !sys.isNaN sys._esys_084\n"
+       "type sys._osys_627 {_esys_624 sys.float64 _esys_625 sys.int32}\n"
+       "type sys._isys_629 {_esys_626 sys.float64}\n"
+       "type sys._esys_084 (sys._esys_085 sys._osys_627 sys._isys_629)\n"
+       "var !sys.frexp sys._esys_084\n"
        "type sys._esys_087 {}\n"
-       "type sys._osys_666 {_esys_664 sys.float64}\n"
-       "type sys._isys_668 {_esys_665 sys.int32}\n"
-       "type sys._esys_086 (sys._esys_087 sys._osys_666 sys._isys_668)\n"
-       "var !sys.Inf sys._esys_086\n"
+       "type sys._osys_636 {_esys_633 sys.float64}\n"
+       "type sys._isys_638 {_esys_634 sys.float64 _esys_635 sys.int32}\n"
+       "type sys._esys_086 (sys._esys_087 sys._osys_636 sys._isys_638)\n"
+       "var !sys.ldexp sys._esys_086\n"
        "type sys._esys_089 {}\n"
-       "type sys._osys_673 {_esys_672 sys.float64}\n"
-       "type sys._esys_090 {}\n"
-       "type sys._esys_088 (sys._esys_089 sys._osys_673 sys._esys_090)\n"
-       "var !sys.NaN sys._esys_088\n"
-       "type sys._esys_092 {}\n"
-       "type sys._esys_094 [sys.any] sys.any\n"
-       "type sys._esys_093 *sys._esys_094\n"
-       "type sys._osys_676 {hmap sys._esys_093}\n"
-       "type sys._isys_678 {keysize sys.uint32 valsize sys.uint32 keyalg sys.uint32 valalg sys.uint32 hint sys.uint32}\n"
-       "type sys._esys_091 (sys._esys_092 sys._osys_676 sys._isys_678)\n"
-       "var !sys.newmap sys._esys_091\n"
-       "type sys._esys_096 {}\n"
-       "type sys._osys_687 {val sys.any}\n"
-       "type sys._esys_098 [sys.any] sys.any\n"
-       "type sys._esys_097 *sys._esys_098\n"
-       "type sys._isys_689 {hmap sys._esys_097 key sys.any}\n"
-       "type sys._esys_095 (sys._esys_096 sys._osys_687 sys._isys_689)\n"
-       "var !sys.mapaccess1 sys._esys_095\n"
+       "type sys._osys_646 {_esys_643 sys.float64 _esys_644 sys.float64}\n"
+       "type sys._isys_648 {_esys_645 sys.float64}\n"
+       "type sys._esys_088 (sys._esys_089 sys._osys_646 sys._isys_648)\n"
+       "var !sys.modf sys._esys_088\n"
+       "type sys._esys_091 {}\n"
+       "type sys._osys_655 {_esys_652 sys.bool}\n"
+       "type sys._isys_657 {_esys_653 sys.float64 _esys_654 sys.int32}\n"
+       "type sys._esys_090 (sys._esys_091 sys._osys_655 sys._isys_657)\n"
+       "var !sys.isInf sys._esys_090\n"
+       "type sys._esys_093 {}\n"
+       "type sys._osys_664 {_esys_662 sys.bool}\n"
+       "type sys._isys_666 {_esys_663 sys.float64}\n"
+       "type sys._esys_092 (sys._esys_093 sys._osys_664 sys._isys_666)\n"
+       "var !sys.isNaN sys._esys_092\n"
+       "type sys._esys_095 {}\n"
+       "type sys._osys_672 {_esys_670 sys.float64}\n"
+       "type sys._isys_674 {_esys_671 sys.int32}\n"
+       "type sys._esys_094 (sys._esys_095 sys._osys_672 sys._isys_674)\n"
+       "var !sys.Inf sys._esys_094\n"
+       "type sys._esys_097 {}\n"
+       "type sys._osys_679 {_esys_678 sys.float64}\n"
+       "type sys._esys_098 {}\n"
+       "type sys._esys_096 (sys._esys_097 sys._osys_679 sys._esys_098)\n"
+       "var !sys.NaN sys._esys_096\n"
        "type sys._esys_100 {}\n"
-       "type sys._osys_695 {val sys.any pres sys.bool}\n"
-       "type sys._esys_102 [sys.any] sys.any\n"
        "type sys._esys_101 *sys._esys_102\n"
-       "type sys._isys_697 {hmap sys._esys_101 key sys.any}\n"
-       "type sys._esys_099 (sys._esys_100 sys._osys_695 sys._isys_697)\n"
-       "var !sys.mapaccess2 sys._esys_099\n"
+       "type sys._osys_682 {hmap sys._esys_101}\n"
+       "type sys._isys_684 {keysize sys.uint32 valsize sys.uint32 keyalg sys.uint32 valalg sys.uint32 hint sys.uint32}\n"
+       "type sys._esys_099 (sys._esys_100 sys._osys_682 sys._isys_684)\n"
+       "var !sys.newmap sys._esys_099\n"
        "type sys._esys_104 {}\n"
-       "type sys._esys_105 {}\n"
-       "type sys._esys_107 [sys.any] sys.any\n"
-       "type sys._esys_106 *sys._esys_107\n"
-       "type sys._isys_704 {hmap sys._esys_106 key sys.any val sys.any}\n"
-       "type sys._esys_103 (sys._esys_104 sys._esys_105 sys._isys_704)\n"
-       "var !sys.mapassign1 sys._esys_103\n"
-       "type sys._esys_109 {}\n"
-       "type sys._esys_110 {}\n"
-       "type sys._esys_112 [sys.any] sys.any\n"
-       "type sys._esys_111 *sys._esys_112\n"
-       "type sys._isys_710 {hmap sys._esys_111 key sys.any val sys.any pres sys.bool}\n"
-       "type sys._esys_108 (sys._esys_109 sys._esys_110 sys._isys_710)\n"
-       "var !sys.mapassign2 sys._esys_108\n"
-       "type sys._esys_114 {}\n"
-       "type sys._esys_116 1 sys.any\n"
-       "type sys._esys_115 *sys._esys_116\n"
-       "type sys._osys_717 {hchan sys._esys_115}\n"
-       "type sys._isys_719 {elemsize sys.uint32 elemalg sys.uint32 hint sys.uint32}\n"
-       "type sys._esys_113 (sys._esys_114 sys._osys_717 sys._isys_719)\n"
-       "var !sys.newchan sys._esys_113\n"
+       "type sys._osys_693 {val sys.any}\n"
+       "type sys._esys_105 *sys._esys_106\n"
+       "type sys._isys_695 {hmap sys._esys_105 key sys.any}\n"
+       "type sys._esys_103 (sys._esys_104 sys._osys_693 sys._isys_695)\n"
+       "var !sys.mapaccess1 sys._esys_103\n"
+       "type sys._esys_108 {}\n"
+       "type sys._osys_701 {val sys.any pres sys.bool}\n"
+       "type sys._esys_109 *sys._esys_110\n"
+       "type sys._isys_703 {hmap sys._esys_109 key sys.any}\n"
+       "type sys._esys_107 (sys._esys_108 sys._osys_701 sys._isys_703)\n"
+       "var !sys.mapaccess2 sys._esys_107\n"
+       "type sys._esys_112 {}\n"
+       "type sys._esys_113 {}\n"
+       "type sys._esys_114 *sys._esys_115\n"
+       "type sys._isys_710 {hmap sys._esys_114 key sys.any val sys.any}\n"
+       "type sys._esys_111 (sys._esys_112 sys._esys_113 sys._isys_710)\n"
+       "var !sys.mapassign1 sys._esys_111\n"
+       "type sys._esys_117 {}\n"
        "type sys._esys_118 {}\n"
-       "type sys._osys_726 {elem sys.any}\n"
-       "type sys._esys_120 1 sys.any\n"
        "type sys._esys_119 *sys._esys_120\n"
-       "type sys._isys_728 {hchan sys._esys_119}\n"
-       "type sys._esys_117 (sys._esys_118 sys._osys_726 sys._isys_728)\n"
-       "var !sys.chanrecv1 sys._esys_117\n"
+       "type sys._isys_716 {hmap sys._esys_119 key sys.any val sys.any pres sys.bool}\n"
+       "type sys._esys_116 (sys._esys_117 sys._esys_118 sys._isys_716)\n"
+       "var !sys.mapassign2 sys._esys_116\n"
        "type sys._esys_122 {}\n"
-       "type sys._osys_733 {elem sys.any pres sys.bool}\n"
-       "type sys._esys_124 1 sys.any\n"
        "type sys._esys_123 *sys._esys_124\n"
-       "type sys._isys_735 {hchan sys._esys_123}\n"
-       "type sys._esys_121 (sys._esys_122 sys._osys_733 sys._isys_735)\n"
-       "var !sys.chanrecv2 sys._esys_121\n"
+       "type sys._osys_723 {hchan sys._esys_123}\n"
+       "type sys._isys_725 {elemsize sys.uint32 elemalg sys.uint32 hint sys.uint32}\n"
+       "type sys._esys_121 (sys._esys_122 sys._osys_723 sys._isys_725)\n"
+       "var !sys.newchan sys._esys_121\n"
        "type sys._esys_126 {}\n"
-       "type sys._osys_741 {pres sys.bool}\n"
-       "type sys._esys_128 1 sys.any\n"
+       "type sys._osys_732 {elem sys.any}\n"
        "type sys._esys_127 *sys._esys_128\n"
-       "type sys._esys_129 *sys.any\n"
-       "type sys._isys_743 {hchan sys._esys_127 elem sys._esys_129}\n"
-       "type sys._esys_125 (sys._esys_126 sys._osys_741 sys._isys_743)\n"
-       "var !sys.chanrecv3 sys._esys_125\n"
-       "type sys._esys_131 {}\n"
-       "type sys._esys_132 {}\n"
-       "type sys._esys_134 1 sys.any\n"
-       "type sys._esys_133 *sys._esys_134\n"
-       "type sys._isys_749 {hchan sys._esys_133 elem sys.any}\n"
-       "type sys._esys_130 (sys._esys_131 sys._esys_132 sys._isys_749)\n"
-       "var !sys.chansend1 sys._esys_130\n"
-       "type sys._esys_136 {}\n"
-       "type sys._osys_754 {pres sys.bool}\n"
-       "type sys._esys_138 1 sys.any\n"
-       "type sys._esys_137 *sys._esys_138\n"
-       "type sys._isys_756 {hchan sys._esys_137 elem sys.any}\n"
-       "type sys._esys_135 (sys._esys_136 sys._osys_754 sys._isys_756)\n"
-       "var !sys.chansend2 sys._esys_135\n"
+       "type sys._isys_734 {hchan sys._esys_127}\n"
+       "type sys._esys_125 (sys._esys_126 sys._osys_732 sys._isys_734)\n"
+       "var !sys.chanrecv1 sys._esys_125\n"
+       "type sys._esys_130 {}\n"
+       "type sys._osys_739 {elem sys.any pres sys.bool}\n"
+       "type sys._esys_131 *sys._esys_132\n"
+       "type sys._isys_741 {hchan sys._esys_131}\n"
+       "type sys._esys_129 (sys._esys_130 sys._osys_739 sys._isys_741)\n"
+       "var !sys.chanrecv2 sys._esys_129\n"
+       "type sys._esys_134 {}\n"
+       "type sys._osys_747 {pres sys.bool}\n"
+       "type sys._esys_135 *sys._esys_136\n"
+       "type sys._esys_137 *sys.any\n"
+       "type sys._isys_749 {hchan sys._esys_135 elem sys._esys_137}\n"
+       "type sys._esys_133 (sys._esys_134 sys._osys_747 sys._isys_749)\n"
+       "var !sys.chanrecv3 sys._esys_133\n"
+       "type sys._esys_139 {}\n"
        "type sys._esys_140 {}\n"
-       "type sys._esys_141 *sys.uint8\n"
-       "type sys._osys_762 {sel sys._esys_141}\n"
-       "type sys._isys_764 {size sys.uint32}\n"
-       "type sys._esys_139 (sys._esys_140 sys._osys_762 sys._isys_764)\n"
-       "var !sys.newselect sys._esys_139\n"
-       "type sys._esys_143 {}\n"
-       "type sys._osys_769 {selected sys.bool}\n"
-       "type sys._esys_144 *sys.uint8\n"
-       "type sys._esys_146 1 sys.any\n"
+       "type sys._esys_141 *sys._esys_142\n"
+       "type sys._isys_755 {hchan sys._esys_141 elem sys.any}\n"
+       "type sys._esys_138 (sys._esys_139 sys._esys_140 sys._isys_755)\n"
+       "var !sys.chansend1 sys._esys_138\n"
+       "type sys._esys_144 {}\n"
+       "type sys._osys_760 {pres sys.bool}\n"
        "type sys._esys_145 *sys._esys_146\n"
-       "type sys._isys_771 {sel sys._esys_144 hchan sys._esys_145 elem sys.any}\n"
-       "type sys._esys_142 (sys._esys_143 sys._osys_769 sys._isys_771)\n"
-       "var !sys.selectsend sys._esys_142\n"
+       "type sys._isys_762 {hchan sys._esys_145 elem sys.any}\n"
+       "type sys._esys_143 (sys._esys_144 sys._osys_760 sys._isys_762)\n"
+       "var !sys.chansend2 sys._esys_143\n"
        "type sys._esys_148 {}\n"
-       "type sys._osys_778 {selected sys.bool}\n"
        "type sys._esys_149 *sys.uint8\n"
-       "type sys._esys_151 1 sys.any\n"
-       "type sys._esys_150 *sys._esys_151\n"
-       "type sys._esys_152 *sys.any\n"
-       "type sys._isys_780 {sel sys._esys_149 hchan sys._esys_150 elem sys._esys_152}\n"
-       "type sys._esys_147 (sys._esys_148 sys._osys_778 sys._isys_780)\n"
-       "var !sys.selectrecv sys._esys_147\n"
-       "type sys._esys_154 {}\n"
-       "type sys._esys_155 {}\n"
-       "type sys._esys_156 *sys.uint8\n"
-       "type sys._isys_787 {sel sys._esys_156}\n"
-       "type sys._esys_153 (sys._esys_154 sys._esys_155 sys._isys_787)\n"
-       "var !sys.selectgo sys._esys_153\n"
-       "type sys._esys_158 {}\n"
-       "type sys._esys_160 [] sys.any\n"
-       "type sys._esys_159 *sys._esys_160\n"
-       "type sys._osys_791 {ary sys._esys_159}\n"
-       "type sys._isys_793 {nel sys.uint32 cap sys.uint32 width sys.uint32}\n"
-       "type sys._esys_157 (sys._esys_158 sys._osys_791 sys._isys_793)\n"
-       "var !sys.newarray sys._esys_157\n"
+       "type sys._osys_768 {sel sys._esys_149}\n"
+       "type sys._isys_770 {size sys.uint32}\n"
+       "type sys._esys_147 (sys._esys_148 sys._osys_768 sys._isys_770)\n"
+       "var !sys.newselect sys._esys_147\n"
+       "type sys._esys_151 {}\n"
+       "type sys._osys_775 {selected sys.bool}\n"
+       "type sys._esys_152 *sys.uint8\n"
+       "type sys._esys_153 *sys._esys_154\n"
+       "type sys._isys_777 {sel sys._esys_152 hchan sys._esys_153 elem sys.any}\n"
+       "type sys._esys_150 (sys._esys_151 sys._osys_775 sys._isys_777)\n"
+       "var !sys.selectsend sys._esys_150\n"
+       "type sys._esys_156 {}\n"
+       "type sys._osys_784 {selected sys.bool}\n"
+       "type sys._esys_157 *sys.uint8\n"
+       "type sys._esys_158 *sys._esys_159\n"
+       "type sys._esys_160 *sys.any\n"
+       "type sys._isys_786 {sel sys._esys_157 hchan sys._esys_158 elem sys._esys_160}\n"
+       "type sys._esys_155 (sys._esys_156 sys._osys_784 sys._isys_786)\n"
+       "var !sys.selectrecv sys._esys_155\n"
        "type sys._esys_162 {}\n"
-       "type sys._esys_164 [] sys.any\n"
-       "type sys._esys_163 *sys._esys_164\n"
-       "type sys._osys_800 {ary sys._esys_163}\n"
-       "type sys._esys_166 [] sys.any\n"
-       "type sys._esys_165 *sys._esys_166\n"
-       "type sys._isys_802 {old sys._esys_165 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
-       "type sys._esys_161 (sys._esys_162 sys._osys_800 sys._isys_802)\n"
-       "var !sys.arraysliced sys._esys_161\n"
-       "type sys._esys_168 {}\n"
-       "type sys._esys_170 [] sys.any\n"
-       "type sys._esys_169 *sys._esys_170\n"
-       "type sys._osys_810 {ary sys._esys_169}\n"
-       "type sys._esys_171 *sys.any\n"
-       "type sys._isys_812 {old sys._esys_171 nel sys.uint32 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
-       "type sys._esys_167 (sys._esys_168 sys._osys_810 sys._isys_812)\n"
-       "var !sys.arrayslices sys._esys_167\n"
-       "type sys._esys_173 {}\n"
-       "type sys._esys_175 [] sys.any\n"
-       "type sys._esys_174 *sys._esys_175\n"
-       "type sys._osys_821 {ary sys._esys_174}\n"
-       "type sys._esys_176 *sys.any\n"
-       "type sys._isys_823 {old sys._esys_176 nel sys.uint32}\n"
-       "type sys._esys_172 (sys._esys_173 sys._osys_821 sys._isys_823)\n"
-       "var !sys.arrays2d sys._esys_172\n"
-       "type sys._esys_178 {}\n"
-       "type sys._esys_179 {}\n"
-       "type sys._esys_180 {}\n"
-       "type sys._esys_177 (sys._esys_178 sys._esys_179 sys._esys_180)\n"
-       "var !sys.gosched sys._esys_177\n"
-       "type sys._esys_182 {}\n"
-       "type sys._esys_183 {}\n"
-       "type sys._esys_184 {}\n"
-       "type sys._esys_181 (sys._esys_182 sys._esys_183 sys._esys_184)\n"
-       "var !sys.goexit sys._esys_181\n"
+       "type sys._esys_163 {}\n"
+       "type sys._esys_164 *sys.uint8\n"
+       "type sys._isys_793 {sel sys._esys_164}\n"
+       "type sys._esys_161 (sys._esys_162 sys._esys_163 sys._isys_793)\n"
+       "var !sys.selectgo sys._esys_161\n"
+       "type sys._esys_166 {}\n"
+       "type sys._esys_167 *sys._esys_168\n"
+       "type sys._osys_797 {ary sys._esys_167}\n"
+       "type sys._isys_799 {nel sys.uint32 cap sys.uint32 width sys.uint32}\n"
+       "type sys._esys_165 (sys._esys_166 sys._osys_797 sys._isys_799)\n"
+       "var !sys.newarray sys._esys_165\n"
+       "type sys._esys_170 {}\n"
+       "type sys._esys_171 *sys._esys_172\n"
+       "type sys._osys_806 {ary sys._esys_171}\n"
+       "type sys._esys_173 *sys._esys_174\n"
+       "type sys._isys_808 {old sys._esys_173 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
+       "type sys._esys_169 (sys._esys_170 sys._osys_806 sys._isys_808)\n"
+       "var !sys.arraysliced sys._esys_169\n"
+       "type sys._esys_176 {}\n"
+       "type sys._esys_177 *sys._esys_178\n"
+       "type sys._osys_816 {ary sys._esys_177}\n"
+       "type sys._esys_179 *sys.any\n"
+       "type sys._isys_818 {old sys._esys_179 nel sys.uint32 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
+       "type sys._esys_175 (sys._esys_176 sys._osys_816 sys._isys_818)\n"
+       "var !sys.arrayslices sys._esys_175\n"
+       "type sys._esys_181 {}\n"
+       "type sys._esys_182 *sys._esys_183\n"
+       "type sys._osys_827 {ary sys._esys_182}\n"
+       "type sys._esys_184 *sys.any\n"
+       "type sys._isys_829 {old sys._esys_184 nel sys.uint32}\n"
+       "type sys._esys_180 (sys._esys_181 sys._osys_827 sys._isys_829)\n"
+       "var !sys.arrays2d sys._esys_180\n"
        "type sys._esys_186 {}\n"
-       "type sys._osys_834 {_esys_831 sys.string _esys_832 sys.bool}\n"
-       "type sys._isys_836 {_esys_833 sys.string}\n"
-       "type sys._esys_185 (sys._esys_186 sys._osys_834 sys._isys_836)\n"
-       "var !sys.readfile sys._esys_185\n"
+       "type sys._esys_187 {}\n"
        "type sys._esys_188 {}\n"
-       "type sys._osys_843 {_esys_840 sys.bool}\n"
-       "type sys._isys_845 {_esys_841 sys.string _esys_842 sys.string}\n"
-       "type sys._esys_187 (sys._esys_188 sys._osys_843 sys._isys_845)\n"
-       "var !sys.writefile sys._esys_187\n"
+       "type sys._esys_185 (sys._esys_186 sys._esys_187 sys._esys_188)\n"
+       "var !sys.gosched sys._esys_185\n"
        "type sys._esys_190 {}\n"
-       "type sys._osys_855 {_esys_850 sys.int32 _esys_851 sys.int32}\n"
-       "type sys._esys_191 *sys.uint8\n"
-       "type sys._isys_857 {_esys_852 sys._esys_191 _esys_853 sys.int32 _esys_854 sys.int32}\n"
-       "type sys._esys_189 (sys._esys_190 sys._osys_855 sys._isys_857)\n"
-       "var !sys.bytestorune sys._esys_189\n"
-       "type sys._esys_193 {}\n"
-       "type sys._osys_868 {_esys_863 sys.int32 _esys_864 sys.int32}\n"
-       "type sys._isys_870 {_esys_865 sys.string _esys_866 sys.int32 _esys_867 sys.int32}\n"
-       "type sys._esys_192 (sys._esys_193 sys._osys_868 sys._isys_870)\n"
-       "var !sys.stringtorune sys._esys_192\n"
-       "type sys._esys_195 {}\n"
+       "type sys._esys_191 {}\n"
+       "type sys._esys_192 {}\n"
+       "type sys._esys_189 (sys._esys_190 sys._esys_191 sys._esys_192)\n"
+       "var !sys.goexit sys._esys_189\n"
+       "type sys._esys_194 {}\n"
+       "type sys._osys_840 {_esys_837 sys.string _esys_838 sys.bool}\n"
+       "type sys._isys_842 {_esys_839 sys.string}\n"
+       "type sys._esys_193 (sys._esys_194 sys._osys_840 sys._isys_842)\n"
+       "var !sys.readfile sys._esys_193\n"
        "type sys._esys_196 {}\n"
-       "type sys._isys_877 {_esys_876 sys.int32}\n"
-       "type sys._esys_194 (sys._esys_195 sys._esys_196 sys._isys_877)\n"
-       "var !sys.exit sys._esys_194\n"
+       "type sys._osys_849 {_esys_846 sys.bool}\n"
+       "type sys._isys_851 {_esys_847 sys.string _esys_848 sys.string}\n"
+       "type sys._esys_195 (sys._esys_196 sys._osys_849 sys._isys_851)\n"
+       "var !sys.writefile sys._esys_195\n"
        "type sys._esys_198 {}\n"
-       "type sys._esys_199 {}\n"
-       "type sys._esys_200 {}\n"
-       "type sys._esys_197 (sys._esys_198 sys._esys_199 sys._esys_200)\n"
+       "type sys._osys_861 {_esys_856 sys.int32 _esys_857 sys.int32}\n"
+       "type sys._esys_199 *sys.uint8\n"
+       "type sys._isys_863 {_esys_858 sys._esys_199 _esys_859 sys.int32 _esys_860 sys.int32}\n"
+       "type sys._esys_197 (sys._esys_198 sys._osys_861 sys._isys_863)\n"
+       "var !sys.bytestorune sys._esys_197\n"
+       "type sys._esys_201 {}\n"
+       "type sys._osys_874 {_esys_869 sys.int32 _esys_870 sys.int32}\n"
+       "type sys._isys_876 {_esys_871 sys.string _esys_872 sys.int32 _esys_873 sys.int32}\n"
+       "type sys._esys_200 (sys._esys_201 sys._osys_874 sys._isys_876)\n"
+       "var !sys.stringtorune sys._esys_200\n"
+       "type sys._esys_203 {}\n"
+       "type sys._esys_204 {}\n"
+       "type sys._isys_883 {_esys_882 sys.int32}\n"
+       "type sys._esys_202 (sys._esys_203 sys._esys_204 sys._isys_883)\n"
+       "var !sys.exit sys._esys_202\n"
+       "type sys._esys_206 {}\n"
+       "type sys._esys_207 {}\n"
+       "type sys._esys_208 {}\n"
+       "type sys._esys_205 (sys._esys_206 sys._esys_207 sys._esys_208)\n"
+       "type sys._esys_031 25\n"
+       "type sys._esys_063 [] sys.uint8\n"
+       "type sys._esys_102 [sys.any] sys.any\n"
+       "type sys._esys_106 [sys.any] sys.any\n"
+       "type sys._esys_110 [sys.any] sys.any\n"
+       "type sys._esys_115 [sys.any] sys.any\n"
+       "type sys._esys_120 [sys.any] sys.any\n"
+       "type sys._esys_124 1 sys.any\n"
+       "type sys._esys_128 1 sys.any\n"
+       "type sys._esys_132 1 sys.any\n"
+       "type sys._esys_136 1 sys.any\n"
+       "type sys._esys_142 1 sys.any\n"
+       "type sys._esys_146 1 sys.any\n"
+       "type sys._esys_154 1 sys.any\n"
+       "type sys._esys_159 1 sys.any\n"
+       "type sys._esys_168 [] sys.any\n"
+       "type sys._esys_172 [] sys.any\n"
+       "type sys._esys_174 [] sys.any\n"
+       "type sys._esys_178 [] sys.any\n"
+       "type sys._esys_183 [] sys.any\n"
        "))\n"
 ;
index 1cd3c2003b6e74c536f6d03c8768fd219b1a4ec2..cc06abc6e5f9f5c05dbabb782489d6afb98615ad 100644 (file)
@@ -124,7 +124,9 @@ loop:
        case OSEND:
        case ORECV:
        case OPRINT:
+       case OPRINTN:
        case OPANIC:
+       case OPANICN:
        case OFOR:
        case OIF:
        case OSWITCH:
@@ -203,14 +205,28 @@ loop:
                if(top != Etop)
                        goto nottop;
                walktype(n->left, Erv);
-               indir(n, prcompat(n->left));
+               indir(n, prcompat(n->left, 0));
+               goto ret;
+
+       case OPRINTN:
+               if(top != Etop)
+                       goto nottop;
+               walktype(n->left, Erv);
+               indir(n, prcompat(n->left, 1));
                goto ret;
 
        case OPANIC:
                if(top != Etop)
                        goto nottop;
                walktype(n->left, Erv);
-               indir(n, list(prcompat(n->left), nodpanic(n->lineno)));
+               indir(n, list(prcompat(n->left, 0), nodpanic(n->lineno)));
+               goto ret;
+
+       case OPANICN:
+               if(top != Etop)
+                       goto nottop;
+               walktype(n->left, Erv);
+               indir(n, list(prcompat(n->left, 1), nodpanic(n->lineno)));
                goto ret;
 
        case OLITERAL:
@@ -1598,23 +1614,33 @@ ascompat(Type *t1, Type *t2)
 }
 
 Node*
-prcompat(Node *n)
+prcompat(Node *n, int fmt)
 {
        Node *l, *r;
        Node *on;
        Type *t;
        Iter save;
-       int w;
+       int w, notfirst;
 
        r = N;
        l = listfirst(&save, &n);
+       notfirst = 0;
 
 loop:
        if(l == N) {
+               if(fmt) {
+                       on = syslook("printnl", 0);
+                       r = list(r, nod(OCALL, on, N));
+               }
                walktype(r, Etop);
                return r;
        }
 
+       if(notfirst) {
+               on = syslook("printsp", 0);
+               r = list(r, nod(OCALL, on, N));
+       }
+
        w = whatis(l);
        switch(w) {
        default:
@@ -1663,12 +1689,10 @@ loop:
                l->type = t;
        }
 
-       if(r == N)
-               r = nod(OCALL, on, l);
-       else
-               r = list(r, nod(OCALL, on, l));
+       r = list(r, nod(OCALL, on, l));
 
 out:
+       notfirst = fmt;
        l = listnext(&save);
        goto loop;
 }
index 2bc58752d567312743e3804e2490c10ed7ca02b1..f50d308957c890fd220817b44557874997166d9d 100644 (file)
@@ -166,3 +166,15 @@ sys·printstring(string v)
        if(v != nil)
                sys·write(1, v->str, v->len);
 }
+
+void
+sys·printsp(void)
+{
+       sys·write(1, " ", 1);
+}
+
+void
+sys·printnl(void)
+{
+       sys·write(1, "\n", 1);
+}