
     1  %begin
     2  
503 @ 4405:         LINE   1 "regression-run-tmp/clover.imp"
504 @ 4438:         BEGIN  _lev0id0 {lev=0 --> 1}

     3    %const %byte  TRUE  = 0
505 @ 4439:            LINE   3 "regression-run-tmp/clover.imp"

     4    %const %byte  FALSE = 1
     5  
506 @ 4472:            LINE   4 "regression-run-tmp/clover.imp"

     6    %byte %fn tolower(%byte c)
507 @ 4505:            LINE   6 "regression-run-tmp/clover.imp"
508 @ 4538:            DEF    TOLOWER (_lev0id0_TOLOWER) p1=V_0081 a/tf=18 b/format=2 c/ostate=10  type=1 (integer) form=8 (function) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=1 unass=0
509 @ 4557:               START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
510 @ 4558:                  DEF    C p1=V_0082 a/tf=11 b/format=2 c/ostate=0  type=1 (integer) form=1 (simple) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
511 @ 4571:               FINISH ) {lev=2}

     7      %if 'A' <= c %and c <= 'Z' %then %result = c + 16_20
512 @ 4572:               LINE   7 "regression-run-tmp/clover.imp"
513 @ 4605:               PUSHI  #0x00000041
514 @ 4610:               PUSH   C
515 @ 4613:               JUMPIF > L_0004
516 @ 4617:               PUSH   C
517 @ 4620:               PUSHI  #0x0000005a
518 @ 4625:               JUMPIF > L_0004
519 @ 4629:               PUSH   C
520 @ 4632:               PUSHI  #0x00000020
521 @ 4637:               ADD   
522 @ 4638:               RESULT
523 @ 4639:               LOCATE L_0004

     8      %result = c
524 @ 4642:               LINE   8 "regression-run-tmp/clover.imp"
525 @ 4675:               PUSH   C
526 @ 4678:               RESULT

     9    %end
    10  
527 @ 4679:               LINE   9 "regression-run-tmp/clover.imp"
528 @ 4712:            END    _lev0id0_TOLOWER {lev=2 --> 1}

    11    %byte i, a, ishex, size, num, n
529 @ 4713:            LINE   11 "regression-run-tmp/clover.imp"
530 @ 4746:            DEF    I p1=V_0082 a/tf=11 b/format=2 c/ostate=0  type=1 (integer) form=1 (simple) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
531 @ 4759:            DEF    A p1=V_0083 a/tf=11 b/format=2 c/ostate=0  type=1 (integer) form=1 (simple) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
532 @ 4772:            DEF    ISHEX p1=V_0084 a/tf=11 b/format=2 c/ostate=0  type=1 (integer) form=1 (simple) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
533 @ 4789:            DEF    SIZE p1=V_0085 a/tf=11 b/format=2 c/ostate=0  type=1 (integer) form=1 (simple) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
534 @ 4805:            DEF    NUM p1=V_0086 a/tf=11 b/format=2 c/ostate=0  type=1 (integer) form=1 (simple) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
535 @ 4820:            DEF    N p1=V_0087 a/tf=11 b/format=2 c/ostate=0  type=1 (integer) form=1 (simple) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0

    12    %byte %array s(0:2)
    13  
536 @ 4833:            LINE   12 "regression-run-tmp/clover.imp"
537 @ 4866:            DEF    S p1=V_0088 a/tf=1b b/format=2 c/ostate=100  type=1 (integer) form=11 (array) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
538 @ 4879:            PUSHI  #0x00000000
539 @ 4884:            PUSHI  #0x00000002
540 @ 4889:            DIM    0001 0001

    14    size = 3; s(0)='$'; s(1) = '8'; s(2) = 'C'
    15    
541 @ 4895:            LINE   14 "regression-run-tmp/clover.imp"
542 @ 4928:            PUSH   SIZE
543 @ 4931:            PUSHI  #0x00000003
544 @ 4936:            ASSVAL
545 @ 4937:            LINE   14 "regression-run-tmp/clover.imp"
546 @ 4970:            PUSH   S
547 @ 4973:            PUSHI  #0x00000000
548 @ 4978:            ACCESS
549 @ 4979:            PUSHI  #0x00000024
550 @ 4984:            ASSVAL
551 @ 4985:            LINE   14 "regression-run-tmp/clover.imp"
552 @ 5018:            PUSH   S
553 @ 5021:            PUSHI  #0x00000001
554 @ 5026:            ACCESS
555 @ 5027:            PUSHI  #0x00000038
556 @ 5032:            ASSVAL
557 @ 5033:            LINE   14 "regression-run-tmp/clover.imp"
558 @ 5066:            PUSH   S
559 @ 5069:            PUSHI  #0x00000002
560 @ 5074:            ACCESS
561 @ 5075:            PUSHI  #0x00000043
562 @ 5080:            ASSVAL

    16    ishex = FALSE
563 @ 5081:            LINE   16 "regression-run-tmp/clover.imp"
564 @ 5114:            PUSH   ISHEX
565 @ 5117:            PUSHI  #0x00000001
566 @ 5122:            ASSVAL

    17    i = 0;
    18    
567 @ 5123:            LINE   17 "regression-run-tmp/clover.imp"
568 @ 5156:            PUSH   I
569 @ 5159:            PUSHI  #0x00000000
570 @ 5164:            ASSVAL

    19    %if s(0) = '$' %then %start
571 @ 5165:            LINE   19 "regression-run-tmp/clover.imp"
572 @ 5198:            PUSH   S
573 @ 5201:            PUSHI  #0x00000000
574 @ 5206:            ACCESS
575 @ 5207:            PUSHI  #0x00000024
576 @ 5212:            JUMPIF # L_0004

    20      ishex = TRUE
577 @ 5216:            LINE   20 "regression-run-tmp/clover.imp"
578 @ 5249:            PUSH   ISHEX
579 @ 5252:            PUSHI  #0x00000000
580 @ 5257:            ASSVAL

    21      i = 1
581 @ 5258:            LINE   21 "regression-run-tmp/clover.imp"
582 @ 5291:            PUSH   I
583 @ 5294:            PUSHI  #0x00000001
584 @ 5299:            ASSVAL

    22    %finish
    23      
585 @ 5300:            LINE   22 "regression-run-tmp/clover.imp"
586 @ 5333:            LOCATE L_0004

    24    num = 0
    25      
587 @ 5336:            LINE   24 "regression-run-tmp/clover.imp"
588 @ 5369:            PUSH   NUM
589 @ 5372:            PUSHI  #0x00000000
590 @ 5377:            ASSVAL

    26    %while i < size %cycle
591 @ 5378:            LINE   26 "regression-run-tmp/clover.imp"
592 @ 5411:            LOCATE L_0003
593 @ 5414:            PUSH   I
594 @ 5417:            PUSH   SIZE
595 @ 5420:            JUMPIF >= L_0004

    27      n = s(i); i = i+1
596 @ 5424:            LINE   27 "regression-run-tmp/clover.imp"
597 @ 5457:            PUSH   N
598 @ 5460:            PUSH   S
599 @ 5463:            PUSH   I
600 @ 5466:            ACCESS
601 @ 5467:            ASSVAL
602 @ 5468:            LINE   27 "regression-run-tmp/clover.imp"
603 @ 5501:            PUSH   I
604 @ 5504:            PUSH   I
605 @ 5507:            PUSHI  #0x00000001
606 @ 5512:            ADD   
607 @ 5513:            ASSVAL

    28      %if '0' <= n %and n <= '9' %then %start
608 @ 5514:            LINE   28 "regression-run-tmp/clover.imp"
609 @ 5547:            PUSHI  #0x00000030
610 @ 5552:            PUSH   N
611 @ 5555:            JUMPIF > L_0007
612 @ 5559:            PUSH   N
613 @ 5562:            PUSHI  #0x00000039
614 @ 5567:            JUMPIF > L_0007

    29        n = n - '0';
615 @ 5571:            LINE   29 "regression-run-tmp/clover.imp"
616 @ 5604:            PUSH   N
617 @ 5607:            PUSH   N
618 @ 5610:            PUSHI  #0x00000030
619 @ 5615:            SUB   
620 @ 5616:            ASSVAL

    30      %finish %else %start
621 @ 5617:            LINE   30 "regression-run-tmp/clover.imp"
622 @ 5650:            GOTO   L_0006
623 @ 5653:            LOCATE L_0007

    31        %if ishex = TRUE %then %start
624 @ 5656:            LINE   31 "regression-run-tmp/clover.imp"
625 @ 5689:            PUSH   ISHEX
626 @ 5692:            PUSHI  #0x00000000
627 @ 5697:            JUMPIF # L_000a

    32          n = tolower(n)
628 @ 5701:            LINE   32 "regression-run-tmp/clover.imp"
629 @ 5734:            PUSH   N
630 @ 5737:            PUSH   TOLOWER
631 @ 5740:            PUSH   N
632 @ 5743:            ASSPAR
633 @ 5744:            CALL  
634 @ 5745:            ASSVAL

    33          %if 'a' <= n %and n <= 'f' %then n = n - ('a' - 10) %else %stop
635 @ 5746:            LINE   33 "regression-run-tmp/clover.imp"
636 @ 5779:            PUSHI  #0x00000061
637 @ 5784:            PUSH   N
638 @ 5787:            JUMPIF > L_000d
639 @ 5791:            PUSH   N
640 @ 5794:            PUSHI  #0x00000066
641 @ 5799:            JUMPIF > L_000d
642 @ 5803:            PUSH   N
643 @ 5806:            PUSH   N
644 @ 5809:            PUSHI  #0x00000061
645 @ 5814:            PUSHI  #0x0000000a
646 @ 5819:            SUB   
647 @ 5820:            SUB   
648 @ 5821:            ASSVAL
649 @ 5822:            GOTO   L_000c
650 @ 5825:            LOCATE L_000d
651 @ 5828:            STOP  
652 @ 5829:            LOCATE L_000c

    34        %finish
653 @ 5832:            LINE   34 "regression-run-tmp/clover.imp"
654 @ 5865:            LOCATE L_000a

    35      %finish
655 @ 5868:            LINE   35 "regression-run-tmp/clover.imp"
656 @ 5901:            LOCATE L_0006

    36      %if ishex = TRUE %then num = num * 16 + n %else num = num * 10 + n
657 @ 5904:            LINE   36 "regression-run-tmp/clover.imp"
658 @ 5937:            PUSH   ISHEX
659 @ 5940:            PUSHI  #0x00000000
660 @ 5945:            JUMPIF # L_0007
661 @ 5949:            PUSH   NUM
662 @ 5952:            PUSH   NUM
663 @ 5955:            PUSHI  #0x00000010
664 @ 5960:            MUL   
665 @ 5961:            PUSH   N
666 @ 5964:            ADD   
667 @ 5965:            ASSVAL
668 @ 5966:            GOTO   L_0006
669 @ 5969:            LOCATE L_0007
670 @ 5972:            PUSH   NUM
671 @ 5975:            PUSH   NUM
672 @ 5978:            PUSHI  #0x0000000a
673 @ 5983:            MUL   
674 @ 5984:            PUSH   N
675 @ 5987:            ADD   
676 @ 5988:            ASSVAL
677 @ 5989:            LOCATE L_0006

    37    %repeat
    38    
678 @ 5992:            LINE   37 "regression-run-tmp/clover.imp"
679 @ 6025:            REPEAT L_0003
680 @ 6028:            LOCATE L_0004

    39    a = num
681 @ 6031:            LINE   39 "regression-run-tmp/clover.imp"
682 @ 6064:            PUSH   A
683 @ 6067:            PUSH   NUM
684 @ 6070:            ASSVAL

    40    print string("a=")
685 @ 6071:            LINE   40 "regression-run-tmp/clover.imp"
686 @ 6104:            PUSH   PRINTSTRING
687 @ 6107:            PUSHS  "a="
688 @ 6111:            ASSPAR
689 @ 6112:            CALL  

    41    write(a, 0)
690 @ 6113:            LINE   41 "regression-run-tmp/clover.imp"
691 @ 6146:            PUSH   WRITE
692 @ 6149:            PUSH   A
693 @ 6152:            ASSPAR
694 @ 6153:            PUSHI  #0x00000000
695 @ 6158:            ASSPAR
696 @ 6159:            CALL  

    42    newline
    43  
697 @ 6160:            LINE   42 "regression-run-tmp/clover.imp"
698 @ 6193:            PUSH   NEWLINE
699 @ 6196:            CALL  

    44  %end %of %program
700 @ 6197:            LINE   44 "regression-run-tmp/clover.imp"
701 @ 6230:         END    _lev0id0 {lev=1 --> 0}
702 @ 6231:         END     {lev=0 --> -1}
703 @ 6232: 

