Changeset 25738 in project for release


Ignore:
Timestamp:
12/23/11 18:54:19 (10 years ago)
Author:
Alan Post
Message:

genturfa'i: use list, rather than vector, for parser input.

This converts several of the now o(n) routines back to o(1). I
noticed the performance hit, just testing as I converted this
code.

Rather than storing a vector and an index, we store the current
position in the list and advance it as we parse. The grouping
code is now immeasurably slower. You won't notice.

Location:
release/4/genturfahi/trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • release/4/genturfahi/trunk/bootstrap.scm

    r25683 r25738  
    2323      (nunjavni-secuxna
    2424        (lambda () 'cfari)
    25         (lambda (porsi zvati mapti namapti)
    26           (cfari-6 porsi zvati mapti namapti))))
     25        (lambda (porsi mapti namapti)
     26          (cfari-6 porsi mapti namapti))))
    2727    (define cfari-samselpla-2
    2828      (nunjavni-secuxna
    2929        (lambda () 'cfari-samselpla)
    30         (lambda (porsi zvati mapti namapti)
    31           (cfari-samselpla-7 porsi zvati mapti namapti))))
     30        (lambda (porsi mapti namapti)
     31          (cfari-samselpla-7 porsi mapti namapti))))
    3232    (define gerna-3
    3333      (nunjavni-secuxna
    3434        (lambda () 'gerna)
    35         (lambda (porsi zvati mapti namapti)
    36           (gerna-9 porsi zvati mapti namapti))))
     35        (lambda (porsi mapti namapti)
     36          (gerna-9 porsi mapti namapti))))
    3737    (define smuni-8
    3838      (nunjavni-secuxna
    3939        (lambda () 'smuni)
    40         (lambda (porsi zvati mapti namapti)
    41           (smuni-12 porsi zvati mapti namapti))))
     40        (lambda (porsi mapti namapti)
     41          (smuni-12 porsi mapti namapti))))
    4242    (define naselci-10
    4343      (nunjavni-secuxna
    4444        (lambda () 'naselci)
    45         (lambda (porsi zvati mapti namapti)
    46           (naselci-13 porsi zvati mapti namapti))))
     45        (lambda (porsi mapti namapti)
     46          (naselci-13 porsi mapti namapti))))
    4747    (define javni-11
    4848      (nunjavni-secuxna
    4949        (lambda () 'javni)
    50         (lambda (porsi zvati mapti namapti)
    51           (javni-16 porsi zvati mapti namapti))))
     50        (lambda (porsi mapti namapti)
     51          (javni-16 porsi mapti namapti))))
    5252    (define jonai-14
    5353      (nunjavni-secuxna
    5454        (lambda () 'jonai)
    55         (lambda (porsi zvati mapti namapti)
    56           (jonai-17 porsi zvati mapti namapti))))
     55        (lambda (porsi mapti namapti)
     56          (jonai-17 porsi mapti namapti))))
    5757    (define je-15
    5858      (nunjavni-secuxna
    5959        (lambda () 'je)
    60         (lambda (porsi zvati mapti namapti)
    61           (je-20 porsi zvati mapti namapti))))
     60        (lambda (porsi mapti namapti)
     61          (je-20 porsi mapti namapti))))
    6262    (define nastura-pajavni-18
    6363      (nunjavni-secuxna
    6464        (lambda () 'nastura-pajavni)
    65         (lambda (porsi zvati mapti namapti)
    66           (nastura-pajavni-22 porsi zvati mapti namapti))))
     65        (lambda (porsi mapti namapti)
     66          (nastura-pajavni-22 porsi mapti namapti))))
    6767    (define pajavni-21
    6868      (nunjavni-secuxna
    6969        (lambda () 'pajavni)
    70         (lambda (porsi zvati mapti namapti)
    71           (pajavni-35 porsi zvati mapti namapti))))
     70        (lambda (porsi mapti namapti)
     71          (pajavni-35 porsi mapti namapti))))
    7272    (define dot-zero-or-more-23
    7373      (nunjavni-secuxna
    7474        (lambda () 'dot-zero-or-more)
    75         (lambda (porsi zvati mapti namapti)
    76           (dot-zero-or-more-36 porsi zvati mapti namapti))))
     75        (lambda (porsi mapti namapti)
     76          (dot-zero-or-more-36 porsi mapti namapti))))
    7777    (define dot-one-or-more-24
    7878      (nunjavni-secuxna
    7979        (lambda () 'dot-one-or-more)
    80         (lambda (porsi zvati mapti namapti)
    81           (dot-one-or-more-37 porsi zvati mapti namapti))))
     80        (lambda (porsi mapti namapti)
     81          (dot-one-or-more-37 porsi mapti namapti))))
    8282    (define dot-kuspe-25
    8383      (nunjavni-secuxna
    8484        (lambda () 'dot-kuspe)
    85         (lambda (porsi zvati mapti namapti)
    86           (dot-kuspe-39 porsi zvati mapti namapti))))
     85        (lambda (porsi mapti namapti)
     86          (dot-kuspe-39 porsi mapti namapti))))
    8787    (define optional-26
    8888      (nunjavni-secuxna
    8989        (lambda () 'optional)
    90         (lambda (porsi zvati mapti namapti)
    91           (optional-40 porsi zvati mapti namapti))))
     90        (lambda (porsi mapti namapti)
     91          (optional-40 porsi mapti namapti))))
    9292    (define zero-or-more-27
    9393      (nunjavni-secuxna
    9494        (lambda () 'zero-or-more)
    95         (lambda (porsi zvati mapti namapti)
    96           (zero-or-more-41 porsi zvati mapti namapti))))
     95        (lambda (porsi mapti namapti)
     96          (zero-or-more-41 porsi mapti namapti))))
    9797    (define one-or-more-28
    9898      (nunjavni-secuxna
    9999        (lambda () 'one-or-more)
    100         (lambda (porsi zvati mapti namapti)
    101           (one-or-more-42 porsi zvati mapti namapti))))
     100        (lambda (porsi mapti namapti)
     101          (one-or-more-42 porsi mapti namapti))))
    102102    (define kuspe-29
    103103      (nunjavni-secuxna
    104104        (lambda () 'kuspe)
    105         (lambda (porsi zvati mapti namapti)
    106           (kuspe-43 porsi zvati mapti namapti))))
     105        (lambda (porsi mapti namapti)
     106          (kuspe-43 porsi mapti namapti))))
    107107    (define and-predicate-30
    108108      (nunjavni-secuxna
    109109        (lambda () 'and-predicate)
    110         (lambda (porsi zvati mapti namapti)
    111           (and-predicate-44 porsi zvati mapti namapti))))
     110        (lambda (porsi mapti namapti)
     111          (and-predicate-44 porsi mapti namapti))))
    112112    (define end-of-input-31
    113113      (nunjavni-secuxna
    114114        (lambda () 'end-of-input)
    115         (lambda (porsi zvati mapti namapti)
    116           (end-of-input-45 porsi zvati mapti namapti))))
     115        (lambda (porsi mapti namapti)
     116          (end-of-input-45 porsi mapti namapti))))
    117117    (define not-predicate-32
    118118      (nunjavni-secuxna
    119119        (lambda () 'not-predicate)
    120         (lambda (porsi zvati mapti namapti)
    121           (not-predicate-46 porsi zvati mapti namapti))))
     120        (lambda (porsi mapti namapti)
     121          (not-predicate-46 porsi mapti namapti))))
    122122    (define cmene-sumti-33
    123123      (nunjavni-secuxna
    124124        (lambda () 'cmene-sumti)
    125         (lambda (porsi zvati mapti namapti)
    126           (cmene-sumti-47 porsi zvati mapti namapti))))
     125        (lambda (porsi mapti namapti)
     126          (cmene-sumti-47 porsi mapti namapti))))
    127127    (define selci-javni-34
    128128      (nunjavni-secuxna
    129129        (lambda () 'selci-javni)
    130         (lambda (porsi zvati mapti namapti)
    131           (selci-javni-54 porsi zvati mapti namapti))))
     130        (lambda (porsi mapti namapti)
     131          (selci-javni-54 porsi mapti namapti))))
    132132    (define selci-naselci-48
    133133      (nunjavni-secuxna
    134134        (lambda () 'selci-naselci)
    135         (lambda (porsi zvati mapti namapti)
    136           (selci-naselci-55 porsi zvati mapti namapti))))
     135        (lambda (porsi mapti namapti)
     136          (selci-naselci-55 porsi mapti namapti))))
    137137    (define lerfu-selci-49
    138138      (nunjavni-secuxna
    139139        (lambda () 'lerfu-selci)
    140         (lambda (porsi zvati mapti namapti)
    141           (lerfu-selci-57 porsi zvati mapti namapti))))
     140        (lambda (porsi mapti namapti)
     141          (lerfu-selci-57 porsi mapti namapti))))
    142142    (define lerfu-cmene-56
    143143      (nunjavni-secuxna
    144144        (lambda () 'lerfu-cmene)
    145         (lambda (porsi zvati mapti namapti)
    146           (lerfu-cmene-58 porsi zvati mapti namapti))))
     145        (lambda (porsi mapti namapti)
     146          (lerfu-cmene-58 porsi mapti namapti))))
    147147    (define valsi-selci-50
    148148      (nunjavni-secuxna
    149149        (lambda () 'valsi-selci)
    150         (lambda (porsi zvati mapti namapti)
    151           (valsi-selci-60 porsi zvati mapti namapti))))
     150        (lambda (porsi mapti namapti)
     151          (valsi-selci-60 porsi mapti namapti))))
    152152    (define valsi-lerfu-59
    153153      (nunjavni-secuxna
    154154        (lambda () 'valsi-lerfu)
    155         (lambda (porsi zvati mapti namapti)
    156           (valsi-lerfu-61 porsi zvati mapti namapti))))
     155        (lambda (porsi mapti namapti)
     156          (valsi-lerfu-61 porsi mapti namapti))))
    157157    (define klesi-selci-51
    158158      (nunjavni-secuxna
    159159        (lambda () 'klesi-selci)
    160         (lambda (porsi zvati mapti namapti)
    161           (klesi-selci-63 porsi zvati mapti namapti))))
     160        (lambda (porsi mapti namapti)
     161          (klesi-selci-63 porsi mapti namapti))))
    162162    (define klesi-lerfu-62
    163163      (nunjavni-secuxna
    164164        (lambda () 'klesi-lerfu)
    165         (lambda (porsi zvati mapti namapti)
    166           (klesi-lerfu-66 porsi zvati mapti namapti))))
     165        (lambda (porsi mapti namapti)
     166          (klesi-lerfu-66 porsi mapti namapti))))
    167167    (define klesi-cmene-64
    168168      (nunjavni-secuxna
    169169        (lambda () 'klesi-cmene)
    170         (lambda (porsi zvati mapti namapti)
    171           (klesi-cmene-67 porsi zvati mapti namapti))))
     170        (lambda (porsi mapti namapti)
     171          (klesi-cmene-67 porsi mapti namapti))))
    172172    (define klesi-binxo-65
    173173      (nunjavni-secuxna
    174174        (lambda () 'klesi-binxo)
    175         (lambda (porsi zvati mapti namapti)
    176           (klesi-binxo-68 porsi zvati mapti namapti))))
     175        (lambda (porsi mapti namapti)
     176          (klesi-binxo-68 porsi mapti namapti))))
    177177    (define denpabu-52
    178178      (nunjavni-secuxna
    179179        (lambda () 'denpabu)
    180         (lambda (porsi zvati mapti namapti)
    181           (denpabu-69 porsi zvati mapti namapti))))
     180        (lambda (porsi mapti namapti)
     181          (denpabu-69 porsi mapti namapti))))
    182182    (define samselpla-19
    183183      (nunjavni-secuxna
    184184        (lambda () 'samselpla)
    185         (lambda (porsi zvati mapti namapti)
    186           (samselpla-72 porsi zvati mapti namapti))))
     185        (lambda (porsi mapti namapti)
     186          (samselpla-72 porsi mapti namapti))))
    187187    (define samselpla-xadni-70
    188188      (nunjavni-secuxna
    189189        (lambda () 'samselpla-xadni)
    190         (lambda (porsi zvati mapti namapti)
    191           (samselpla-xadni-73 porsi zvati mapti namapti))))
     190        (lambda (porsi mapti namapti)
     191          (samselpla-xadni-73 porsi mapti namapti))))
    192192    (define samselpla-cmene-71
    193193      (nunjavni-secuxna
    194194        (lambda () 'samselpla-cmene)
    195         (lambda (porsi zvati mapti namapti)
    196           (samselpla-cmene-74 porsi zvati mapti namapti))))
     195        (lambda (porsi mapti namapti)
     196          (samselpla-cmene-74 porsi mapti namapti))))
    197197    (define girzu-javni-53
    198198      (nunjavni-secuxna
    199199        (lambda () 'girzu-javni)
    200         (lambda (porsi zvati mapti namapti)
    201           (girzu-javni-75 porsi zvati mapti namapti))))
     200        (lambda (porsi mapti namapti)
     201          (girzu-javni-75 porsi mapti namapti))))
    202202    (define namcu-38
    203203      (nunjavni-secuxna
    204204        (lambda () 'namcu)
    205         (lambda (porsi zvati mapti namapti)
    206           (namcu-76 porsi zvati mapti namapti))))
     205        (lambda (porsi mapti namapti)
     206          (namcu-76 porsi mapti namapti))))
    207207    (define canlu-1
    208208      (nunjavni-secuxna
    209209        (lambda () 'canlu)
    210         (lambda (porsi zvati mapti namapti)
    211           (canlu-79 porsi zvati mapti namapti))))
     210        (lambda (porsi mapti namapti)
     211          (canlu-79 porsi mapti namapti))))
    212212    (define canlubu-77
    213213      (nunjavni-secuxna
    214214        (lambda () 'canlubu)
    215         (lambda (porsi zvati mapti namapti)
    216           (canlubu-81 porsi zvati mapti namapti))))
     215        (lambda (porsi mapti namapti)
     216          (canlubu-81 porsi mapti namapti))))
    217217    (define totoi-78
    218218      (nunjavni-secuxna
    219219        (lambda () 'totoi)
    220         (lambda (porsi zvati mapti namapti)
    221           (totoi-82 porsi zvati mapti namapti))))
     220        (lambda (porsi mapti namapti)
     221          (totoi-82 porsi mapti namapti))))
    222222    (define CR-83
    223223      (nunjavni-secuxna
    224224        (lambda () 'CR)
    225         (lambda (porsi zvati mapti namapti)
    226           (CR-84 porsi zvati mapti namapti))))
     225        (lambda (porsi mapti namapti)
     226          (CR-84 porsi mapti namapti))))
    227227    (define LF-85
    228228      (nunjavni-secuxna
    229229        (lambda () 'LF)
    230         (lambda (porsi zvati mapti namapti)
    231           (LF-86 porsi zvati mapti namapti))))
     230        (lambda (porsi mapti namapti)
     231          (LF-86 porsi mapti namapti))))
    232232    (define CRLF-80
    233233      (nunjavni-secuxna
    234234        (lambda () 'CRLF)
    235         (lambda (porsi zvati mapti namapti)
    236           (CRLF-87 porsi zvati mapti namapti))))
     235        (lambda (porsi mapti namapti)
     236          (CRLF-87 porsi mapti namapti))))
    237237    (define FAhO-4
    238238      (nunjavni-secuxna
    239239        (lambda () 'FAhO)
    240         (lambda (porsi zvati mapti namapti)
    241           (FAhO-88 porsi zvati mapti namapti))))
     240        (lambda (porsi mapti namapti)
     241          (FAhO-88 porsi mapti namapti))))
    242242    (define cfari-6
    243243      (nunjavni-morji
  • release/4/genturfahi/trunk/cfisisku.scm

    r23156 r25738  
    3030
    3131      (lambda (cmene javni)
    32         (define (javni-cfisisku porsi zvati mapti namapti #!rest cmene-sumti)
     32        (define (javni-cfisisku porsi mapti namapti #!rest cmene-sumti)
    3333          (define (push!)
    3434            (set! stack (cons jalge stack))
     
    3939            (set! stack (cdr stack)))
    4040
    41           (define (mapti-cfisisku porsi zvati nunvalsi)
     41          (define (mapti-cfisisku porsi nunvalsi)
    4242            (pop! "mapti")
    43             (mapti porsi zvati nunvalsi))
     43            (mapti porsi nunvalsi))
    4444
    45           (define (namapti-cfisisku porsi zvati)
     45          (define (namapti-cfisisku porsi)
    4646            (pop! "namapti")
    47             (namapti porsi zvati))
     47            (namapti porsi))
    4848
    4949          (push!)
    5050          (apply javni
    5151                 porsi
    52                  zvati
    5352                 mapti-cfisisku
    5453                 namapti-cfisisku
  • release/4/genturfahi/trunk/chicken-ext.scm

    r25672 r25738  
    3535   lerfu-porsi-fanmo?
    3636
     37   span-kuspe
    3738
    3839   ; javni-valsi
  • release/4/genturfahi/trunk/genturfahi.scm

    r23157 r25738  
    4242            (pretty-print (junla-datni) port)))))
    4343
    44   (define (mapti porsi zvati valsi)
     44  (define (mapti porsi valsi)
    4545    ; always clear memoizations, which aren't valid when we get
    4646    ; a new |porsi|.
     
    5151
    5252    (values (javni-valsi-val valsi)
    53             (lerfu-porsi-string porsi zvati)))
     53            (lerfu-porsi-string porsi)))
    5454
    55   (define (namapti porsi zvati)
     55  (define (namapti porsi)
    5656    ; always clear memoizations, which aren't valid when we get
    5757    ; a new |porsi|.
     
    7070                     (make-lerfu-porsi-port lefpoi)
    7171                     (make-lerfu-porsi-string lefpoi))))
    72       (genturfahi-semorji (string-length porsi))
    73       (javni porsi 0 mapti namapti))))
     72      (genturfahi-semorji (length porsi))
     73      (javni porsi mapti namapti))))
    7474
    7575(define (genturfahi* javni)
  • release/4/genturfahi/trunk/junla.scm

    r23156 r25738  
    5959      (lambda (cmene javni)
    6060        (let ((javni-merli (make-javni-merli 0 0 0)))
    61           (define (javni-junla porsi zvati mapti namapti #!rest cmene-sumti)
     61          (define (javni-junla porsi mapti namapti #!rest cmene-sumti)
    6262                  ; start the timer
    6363            (let ((cfari (time->seconds (current-time))))
     
    7070                                          (+ temci (- fanmo cfari)))))
    7171
    72               (define (mapti-junla porsi zvati nunvalsi)
     72              (define (mapti-junla porsi nunvalsi)
    7373                (sisti)
    7474                (let ((mapti-klani (javni-merli-mapti javni-merli)))
    7575                  (set-javni-merli-mapti! javni-merli (fx+ 1 mapti-klani)))
    76                 (mapti porsi zvati nunvalsi))
     76                (mapti porsi nunvalsi))
    7777
    78               (define (namapti-junla porsi zvati)
     78              (define (namapti-junla porsi)
    7979                (sisti)
    8080                (let ((namapti-klani (javni-merli-namapti javni-merli)))
    8181                  (set-javni-merli-namapti! javni-merli (fx+ 1 namapti-klani)))
    82                 (namapti porsi zvati))
     82                (namapti porsi))
    8383
    84               (apply javni porsi zvati mapti-junla namapti-junla cmene-sumti)))
     84              (apply javni porsi mapti-junla namapti-junla cmene-sumti)))
    8585
    8686            ; register our profile metrics for the profile report.
  • release/4/genturfahi/trunk/lerfu-porsi.scm

    r23156 r25738  
    2222(define (make-lerfu-porsi-string lefpoi)
    2323  ;; Append a #\nul to the end of the string as a sentinel.
    24   (string-append lefpoi (make-string 1 #\nul)))
     24  (string->list (string-append lefpoi (make-string 1 #\nul))))
    2525
    2626
     
    4141    (get-output-string oport))
    4242
    43   (port->string (open-output-string)))
     43  (string->list (port->string (open-output-string))))
    4444
    4545
    4646;; return the remaining characters in the parse input.
    4747;;
    48 (define (lerfu-porsi-string porsi zvati)
    49   (string-copy porsi
    50                zvati
    51                ; skip the sentinel
    52                (fx- (string-length porsi) 1)))
     48(define (lerfu-porsi-string porsi)
     49  ; skip the sentinel
     50  (list->string (drop-right porsi 1)))
    5351
    5452
    5553;; return #t if this |lerfu-porsi| is EOF
    5654;;
    57 (define (lerfu-porsi-fanmo? porsi zvati)
    58   (eq? (fx+ zvati 1) (string-length porsi)))
     55(define (lerfu-porsi-fanmo? porsi)
     56  (null? (cdr porsi)))
     57
     58;; a version of span (from srfi-1) that has min/max values
     59;; and calls continuations rather than returning multiple
     60;; values.  |pred| also works on lists, rather than elements..
     61;;
     62;; basically, this is custom designed to solve a unique problem
     63;; with the range operator.
     64;;
     65(define (span-kuspe pred?
     66                    porsi
     67                    mapti
     68                    namapti
     69                    #!key (my 0)
     70                          (ny most-positive-fixnum)
     71                          (klani 0)
     72                          (cfari-porsi porsi)
     73                          (cfari (list '()))
     74                          (fanmo cfari))
     75  (if (and (fx< klani ny) (pred? porsi))
     76      (begin
     77        (set-cdr! fanmo (list (car porsi)))
     78        (span-kuspe pred?
     79                    (cdr porsi)
     80                    mapti
     81                    namapti
     82                    my: my
     83                    ny: ny
     84                    klani: (fx+ 1 klani)
     85                    cfari-porsi: cfari-porsi
     86                    cfari: cfari
     87                    fanmo: (cdr fanmo)))
     88      (if (fx>= klani my)
     89          (mapti porsi (cdr cfari))
     90          (namapti cfari-porsi))))
  • release/4/genturfahi/trunk/nunjavni.scm

    r23639 r25738  
    2626(define (nunjavni-lerfu lerfu #!key cmene (nastura #t) porjahe)
    2727  (let ((nunvalsi-lerfu (make-nunvalsi cmene nastura porjahe)))
    28     (define (javni-lerfu porsi zvati mapti namapti)
    29       (if (char=? lerfu (string-ref porsi zvati))
    30           (mapti porsi (fx+ 1 zvati) (nunvalsi-lerfu lerfu))
    31           (namapti porsi zvati)))
     28    (define (javni-lerfu porsi mapti namapti)
     29      (if (char=? lerfu (car porsi))
     30          (mapti (cdr porsi) (nunvalsi-lerfu lerfu))
     31          (namapti porsi)))
    3232    javni-lerfu))
    3333
     
    3737(define (nunjavni-.* #!key cmene nastura porjahe)
    3838  (let ((nunvalsi-.* (make-nunvalsi cmene nastura porjahe)))
    39     (define (javni-.* porsi zvati mapti ignore-namapti)
    40       (mapti porsi
    41              (fx- (string-length porsi) 1)
    42              (nunvalsi-.* (lerfu-porsi-string porsi zvati))))
     39    (define (javni-.* porsi mapti ignore-namapti)
     40      (mapti '(#\nul) (nunvalsi-.* (lerfu-porsi-string porsi))))
    4341    javni-.*))
    4442
    4543(define (nunjavni-.+ #!key cmene nastura porjahe)
    4644  (let ((nunvalsi-.+ (make-nunvalsi cmene nastura porjahe)))
    47     (define (javni-.+ porsi zvati mapti namapti)
    48       (if (lerfu-porsi-fanmo? porsi zvati)
    49           (namapti porsi zvati)
    50           (mapti porsi
    51                  (fx- (string-length porsi) 1)
    52                  (nunvalsi-.+ (lerfu-porsi-string porsi zvati)))))
     45    (define (javni-.+ porsi mapti namapti)
     46      (if (lerfu-porsi-fanmo? porsi)
     47          (namapti porsi)
     48          (mapti '(#\nul) (nunvalsi-.+ (lerfu-porsi-string porsi)))))
    5349    javni-.+))
    5450
     
    5854                               (my 0)
    5955                               (ny most-positive-fixnum))
    60   (let ((nunvalsi-.kuspe (make-nunvalsi cmene nastura porjahe)))
    61     (define (javni-.kuspe porsi zvati mapti namapti)
    62       (let ((fam (fx- (fx- (string-length porsi) 1) zvati)))
    63         (if (fx>= fam my)
    64             (let ((stali (min fam ny)))
    65               (mapti porsi
    66                      (fx+ zvati stali)
    67                      (nunvalsi-.kuspe (string-copy porsi
    68                                                    zvati
    69                                                    (fx+ zvati stali)))))
    70             (namapti porsi zvati))))
     56  (let ((nunvalsi-.kuspe (make-nunvalsi cmene nastura porjahe))
     57        (na-fanmo? (lambda (porsi) (not (lerfu-porsi-fanmo?  porsi)))))
     58    (define (javni-.kuspe porsi mapti namapti)
     59      (define (mapti-.kuspe porsi valsi)
     60        (mapti porsi (nunvalsi-.kuspe (list->string valsi))))
     61
     62      (span-kuspe na-fanmo?
     63                  porsi
     64                  mapti-.kuspe
     65                  namapti
     66                  my: my
     67                  ny: ny))
     68
    7169    javni-.kuspe))
    7270
    7371(define (nunjavni-. #!key cmene nastura porjahe)
    7472  (let ((nunvalsi-. (make-nunvalsi cmene nastura porjahe)))
    75     (define (javni-. porsi zvati mapti namapti)
    76       (if (lerfu-porsi-fanmo? porsi zvati)
    77           (namapti porsi zvati)
    78           (mapti porsi (fx+ 1 zvati) (nunvalsi-.  (string-ref porsi zvati)))))
     73    (define (javni-. porsi mapti namapti)
     74      (if (lerfu-porsi-fanmo? porsi)
     75          (namapti porsi)
     76          (mapti (cdr porsi) (nunvalsi-. (car porsi)))))
    7977    javni-.))
    8078
     
    8583(define (nunjavni-e #!key cmene (nastura #t) porjahe (empty-string ""))
    8684  (let ((nunvalsi-e (make-nunvalsi cmene nastura porjahe)))
    87     (define (javni-e porsi zvati mapti ignore-namapti)
    88       (mapti porsi zvati (nunvalsi-e empty-string)))
     85    (define (javni-e porsi mapti ignore-namapti)
     86      (mapti porsi (nunvalsi-e empty-string)))
    8987    javni-e))
    9088
     
    9593(define (nunjavni-nil #!key cmene nastura porjahe (empty-list '()))
    9694  (let ((nunvalsi-nil (make-nunvalsi cmene nastura porjahe)))
    97     (define (javni-nil porsi zvati mapti ignore-namapti)
    98       (mapti porsi zvati (nunvalsi-nil empty-list)))
     95    (define (javni-nil porsi mapti ignore-namapti)
     96      (mapti porsi (nunvalsi-nil empty-list)))
    9997    javni-nil))
    10098
     
    107105(define (nunjavni-fanmo #!key cmene (nastura #t) porjahe (sentinel #\nul))
    108106  (let ((nunvalsi-fanmo (make-nunvalsi cmene nastura porjahe)))
    109     (define (javni-fanmo porsi zvati mapti namapti)
    110       (if (lerfu-porsi-fanmo? porsi zvati)
    111           (mapti porsi zvati (nunvalsi-fanmo sentinel))
    112           (namapti porsi zvati)))
     107    (define (javni-fanmo porsi mapti namapti)
     108      (if (lerfu-porsi-fanmo? porsi)
     109          (mapti porsi (nunvalsi-fanmo sentinel))
     110          (namapti porsi)))
    113111  javni-fanmo))
    114112
     
    117115;;
    118116(define (nunjavni-valsi valsi #!key cmene (nastura #t) porjahe)
    119   (let ((nilcla (string-length valsi))
     117  (define list-prefix?
     118    (lambda (vla poi)
     119      (cond ((null? vla) poi)
     120            ((null? poi) #f)
     121            ((char=? (car vla) (car poi)) (list-prefix? (cdr vla) (cdr poi)))
     122            (else #f))))
     123
     124  (let ((vlapoi (string->list valsi))
    120125        (nunvalsi-valsi (make-nunvalsi cmene nastura porjahe)))
    121     (define (javni-valsi porsi zvati mapti namapti)
    122       (if (string-prefix? valsi
    123                           porsi
    124                           0
    125                           nilcla
    126                           zvati
    127                           (fx- (string-length porsi) 1))
    128           (mapti porsi (fx+ zvati nilcla) (nunvalsi-valsi valsi))
    129           (namapti porsi zvati)))
     126    (define (javni-valsi porsi mapti namapti)
     127      (let ((poi (list-prefix? vlapoi porsi)))
     128        (if poi
     129            (mapti poi (nunvalsi-valsi valsi))
     130            (namapti porsi))))
    130131    javni-valsi))
    131132
    132133
    133134(define (nunjavni-char-set-* char-set #!key cmene nastura porjahe)
    134   (let ((nunvalsi-char-set-* (make-nunvalsi cmene nastura porjahe)))
     135  (let ((nunvalsi-char-set-* (make-nunvalsi cmene nastura porjahe))
     136        (contains? (lambda (poi) (char-set-contains? char-set poi))))
    135137    (define (javni-char-set-* porsi
    136                               cfari-zvati
    137138                              mapti
    138139                              ignore-namapti
    139                                          ; if we're matching one or
    140                                          ; more, this will be advanced
    141                                          ; by one.
    142                               #!optional (zvati cfari-zvati))
    143       (define (mapti-char-set-* zvati)
    144         (mapti porsi
    145                zvati
    146                (nunvalsi-char-set-* (string-copy porsi cfari-zvati zvati))))
    147 
    148       (define (char-set-* zvati)
    149         (if (char-set-contains? char-set (string-ref porsi zvati))
    150             (char-set-* (fx+ 1 zvati))
    151             zvati))
    152 
    153       (mapti-char-set-* (char-set-* zvati)))
     140                                     ; if we're matching one or
     141                                     ; more, this will be advanced
     142                                     ; by one.
     143                              #!key (cfari (list '()))
     144                                    (fanmo cfari))
     145      (define (mapti-char-set-* porsi valsi)
     146        (mapti porsi (nunvalsi-char-set-* valsi)))
     147
     148      (call-with-values
     149         (lambda () (span contains? porsi))
     150         (lambda (vla poi)
     151           (set-cdr! fanmo vla)
     152           (mapti-char-set-* poi (list->string (cdr cfari))))))
    154153    javni-char-set-*))
    155154
     
    160159                                               nastura: nastura
    161160                                               porjahe: porjahe)))
    162     (define (javni-char-set-+ porsi zvati mapti namapti)
    163       (if (char-set-contains? char-set (string-ref porsi zvati))
    164           (javni-char-set-* porsi
    165                             zvati
    166                             mapti
    167                             namapti
    168                             (fx+ 1 zvati))
    169           (namapti porsi zvati)))
     161    (define (javni-char-set-+ porsi mapti namapti)
     162      (if (char-set-contains? char-set (car porsi))
     163          (let ((cfari `(() ,(car porsi))))
     164            (javni-char-set-* (cdr porsi)
     165                              mapti
     166                              namapti
     167                              cfari: cfari
     168                              fanmo: (cdr cfari)))
     169          (namapti porsi)))
    170170    javni-char-set-+))
    171171
     
    175175                                                (my 0)
    176176                                                (ny most-positive-fixnum))
    177   (let ((nunvalsi-char-set-kuspe (make-nunvalsi cmene nastura porjahe)))
    178     (define (javni-char-set-kuspe porsi
    179                                   zvati
    180                                   mapti
    181                                   namapti)
    182       (define (mapti-char-set-kuspe klani)
    183         (mapti porsi
    184                (fx+ zvati klani)
    185                (nunvalsi-char-set-kuspe (string-copy porsi
    186                                                      zvati
    187                                                      (fx+ zvati klani)))))
    188 
    189       (define (char-set-kuspe zvati klani)
    190         (if (and (fx< klani ny)
    191                  (char-set-contains? char-set (string-ref porsi zvati)))
    192             (char-set-kuspe (fx+ 1 zvati) (fx+ 1 klani))
    193             klani))
    194 
    195       (let ((klani (char-set-kuspe zvati 0)))
    196         (if (fx>= klani my)
    197             (mapti-char-set-kuspe klani)
    198             (namapti porsi zvati))))
     177  (let ((nunvalsi-char-set-kuspe (make-nunvalsi cmene nastura porjahe))
     178        (contains? (lambda (porsi) (char-set-contains? char-set (car porsi)))))
     179    (define (javni-char-set-kuspe porsi mapti namapti)
     180      (define (mapti-char-set-kuspe porsi valsi)
     181        (mapti porsi (nunvalsi-char-set-kuspe (list->string valsi))))
     182
     183      (span-kuspe contains?
     184                  porsi
     185                  mapti-char-set-kuspe
     186                  namapti
     187                  my: my
     188                  ny: ny))
    199189
    200190    javni-char-set-kuspe))
     
    202192(define (nunjavni-char-set char-set #!key cmene nastura porjahe)
    203193  (let ((nunvalsi-char-set (make-nunvalsi cmene nastura porjahe)))
    204     (define (javni-char-set porsi zvati mapti namapti)
    205       (let ((lerfu (string-ref porsi zvati)))
     194    (define (javni-char-set porsi mapti namapti)
     195      (let ((lerfu (car porsi)))
    206196        (if (char-set-contains? char-set lerfu)
    207             (mapti porsi (fx+ 1 zvati) (nunvalsi-char-set lerfu))
    208             (namapti porsi zvati))))
     197            (mapti (cdr porsi) (nunvalsi-char-set lerfu))
     198            (namapti porsi))))
    209199    javni-char-set))
    210200
     
    218208        (novejmina (novejmina-nunvalsi cmene nastura porjahe default #f)))
    219209    (define (suhopa-javni-* porsi
    220                             zvati
    221210                            mapti
    222211                            namapti
     
    229218                            #!key (cfari (list '()))
    230219                                  (fanmo cfari))
    231       (define (mapti-* porsi zvati nunvalsi)
     220      (define (mapti-* porsi nunvalsi)
    232221        ; append this result to the result list
    233222        (set-cdr! fanmo (list nunvalsi))
    234223        (suhopa-javni-* porsi
    235                         zvati
    236224                        mapti
    237225                        namapti
     
    239227                        fanmo: (cdr fanmo)))
    240228
    241       (define (namapti-* porsi zvati)
     229      (define (namapti-* porsi)
    242230        ; ignore the failure in |ignore-nunjavni|, as
    243231        ; this javni cannot fail.  |porsi| is not advanced
     
    245233        ; cases that did succeed.
    246234        ;
    247         (mapti porsi zvati (vejmina (cdr cfari))))
    248 
    249       (javni porsi zvati mapti-* namapti-*))
     235        (mapti porsi (vejmina (cdr cfari))))
     236
     237      (javni porsi mapti-* namapti-*))
    250238
    251239    (define (pamoi-javni-* porsi
    252                            zvati
    253240                           mapti
    254241                           namapti
     
    261248                           #!key (cfari (list '()))
    262249                                 (fanmo cfari))
    263       (define (mapti-* porsi zvati nunvalsi)
     250      (define (mapti-* porsi nunvalsi)
    264251        ; append this result to the result list
    265252        (set-cdr! fanmo (list nunvalsi))
    266253        (suhopa-javni-* porsi
    267                         zvati
    268254                        mapti
    269255                        namapti
     
    271257                        fanmo: (cdr fanmo)))
    272258
    273       (define (namapti-* porsi zvati)
     259      (define (namapti-* porsi)
    274260        ; ignore the failure in |ignore-nunjavni|, as
    275261        ; this javni cannot fail.  |porsi| is not advanced
     
    277263        ; cases that did succeed.
    278264        ;
    279         (mapti porsi zvati novejmina))
    280 
    281       (javni porsi zvati mapti-* namapti-*))
     265        (mapti porsi novejmina))
     266
     267      (javni porsi mapti-* namapti-*))
    282268
    283269    (values pamoi-javni-* suhopa-javni-*)))
     
    296282                   (lambda (pamoi suhopa)
    297283                     suhopa))))
    298     (define (javni-+ porsi zvati mapti namapti)
    299       (define (mapti-+ porsi zvati nunvalsi)
     284    (define (javni-+ porsi mapti namapti)
     285      (define (mapti-+ porsi nunvalsi)
    300286        (let ((fanmo (list nunvalsi)))
    301287          (javni-* porsi
    302                    zvati
    303288                   mapti
    304289                   namapti
    305290                   cfari:   (cons '() fanmo)
    306291                   fanmo:   fanmo)))
    307       (javni porsi zvati mapti-+ namapti))
     292      (javni porsi mapti-+ namapti))
    308293    javni-+))
    309294
     
    331316        (novejmina (novejmina-nunvalsi cmene nastura porjahe default #f)))
    332317    (define (suhopa-javni-kuspe porsi
    333                                 zvati
    334318                                mapti
    335319                                namapti
     
    343327                                       (fanmo cfari)
    344328                                       (klani 1))
    345       (define (mapti-kuspe porsi zvati nunvalsi)
     329      (define (mapti-kuspe porsi nunvalsi)
    346330        ; append this result to the result list
    347331        (set-cdr! fanmo (list nunvalsi))
     
    351335        ;
    352336        (if (fx= ny klani)
    353             (mapti porsi zvati (vejmina (cdr cfari)))
     337            (mapti porsi (vejmina (cdr cfari)))
    354338            (suhopa-javni-kuspe porsi
    355                                 zvati
    356339                                mapti
    357340                                namapti
     
    360343                                klani: (fx+ 1 klani))))
    361344
    362       (define (namapti-kuspe porsi zvati)
     345      (define (namapti-kuspe porsi)
    363346        (if (fx> klani my)
    364             (mapti porsi zvati (vejmina (cdr cfari)))
    365             (namapti porsi zvati)))
    366 
    367       (javni porsi zvati mapti-kuspe namapti-kuspe))
     347            (mapti porsi (vejmina (cdr cfari)))
     348            (namapti porsi)))
     349
     350      (javni porsi mapti-kuspe namapti-kuspe))
    368351
    369352    (define (pamoi-javni-kuspe porsi
    370                                zvati
    371353                               mapti
    372354                               namapti
     
    380362                                      (fanmo cfari)
    381363                                      (klani 1))
    382       (define (mapti-kuspe porsi zvati nunvalsi)
     364      (define (mapti-kuspe porsi nunvalsi)
    383365        ; append this result to the result list
    384366        (set-cdr! fanmo (list nunvalsi))
     
    388370        ;
    389371        (if (fx= ny klani)
    390             (mapti porsi zvati (vejmina (cdr cfari)))
     372            (mapti porsi (vejmina (cdr cfari)))
    391373            (suhopa-javni-kuspe porsi
    392                                 zvati
    393374                                mapti
    394375                                namapti
     
    397378                                klani: (fx+ 1 klani))))
    398379
    399       (define (namapti-kuspe porsi zvati)
     380      (define (namapti-kuspe porsi)
    400381        (if (fx> klani my)
    401             (mapti porsi zvati novejmina)
    402             (namapti porsi zvati)))
    403 
    404       (javni porsi zvati mapti-kuspe namapti-kuspe))
     382            (mapti porsi novejmina)
     383            (namapti porsi)))
     384
     385      (javni porsi mapti-kuspe namapti-kuspe))
    405386
    406387    pamoi-javni-kuspe))
     
    418399  (let ((vejmina   (venunjmina-nunvalsi cmene nastura porjahe porsumti))
    419400        (novejmina (novejmina-nunvalsi cmene nastura porjahe default ni)))
    420     (define (javni-? porsi zvati mapti ignore-namapti)
    421 
    422       (define (mapti-? porsi zvati nunvalsi)
    423         (mapti porsi zvati (vejmina nunvalsi)))
    424 
    425       (define (namapti-? porsi zvati)
     401    (define (javni-? porsi mapti ignore-namapti)
     402
     403      (define (mapti-? porsi nunvalsi)
     404        (mapti porsi (vejmina nunvalsi)))
     405
     406      (define (namapti-? porsi)
    426407        ; ignore the failure in |ignore-nunvalsi|, as
    427408        ; this javni cannot fail.  |porsi| is not advanced
    428409        ; on failure, so we can use it.
    429410        ;
    430         (mapti porsi zvati novejmina))
    431 
    432       (javni porsi zvati mapti-? namapti-?))
     411        (mapti porsi novejmina))
     412
     413      (javni porsi mapti-? namapti-?))
    433414    javni-?))
    434415
     
    438419(define (nunjavni-& javni #!key porjahe)
    439420  (let ((nunvalsi-& (make-nunvalsi-predicate porjahe)))
    440     (define (javni-& porsi zvati mapti namapti)
    441       (define (mapti-& ignore-porsi ignore-zvati ignore-nunvalsi)
    442         (mapti porsi zvati nunvalsi-&))
    443 
    444       (define (namapti-& ignore-porsi ignore-zvati)
    445         (namapti porsi zvati))
    446 
    447       (javni porsi zvati mapti-& namapti-&))
     421    (define (javni-& porsi mapti namapti)
     422      (define (mapti-& ignore-porsi ignore-nunvalsi)
     423        (mapti porsi nunvalsi-&))
     424
     425      (define (namapti-& ignore-porsi)
     426        (namapti porsi))
     427
     428      (javni porsi mapti-& namapti-&))
    448429    javni-&))
    449430
     
    454435(define (nunjavni-! javni #!key porjahe)
    455436  (let ((nunvalsi-! (make-nunvalsi-predicate porjahe)))
    456     (define (javni-! porsi zvati mapti namapti)
    457       (define (mapti-! ignore-porsi ignore-zvati ignore-nunvalsi)
    458         (namapti porsi zvati))
    459 
    460       (define (namapti-! ignore-porsi ignore-zvati)
    461         (mapti porsi zvati nunvalsi-!))
    462 
    463       (javni porsi zvati mapti-! namapti-!))
     437    (define (javni-! porsi mapti namapti)
     438      (define (mapti-! ignore-porsi ignore-nunvalsi)
     439        (namapti porsi))
     440
     441      (define (namapti-! ignore-porsi)
     442        (mapti porsi nunvalsi-!))
     443
     444      (javni porsi mapti-! namapti-!))
    464445    javni-!))
    465446
     
    471452  (let ((vejmina (venunjmina-rodavalsi-je cmene nastura porjahe porsumti)))
    472453    (define (javni-je porsi
    473                       zvati
    474454                      mapti
    475455                      namapti
     
    478458                                 ; call ourselves recursively.
    479459                      #!key     (cfari-porsi porsi)
    480                                 (cfari-zvati zvati)
    481460                                 ; the current rule we're trying.
    482461                                (rodajavni rodajavni)
     
    495474      ; the start of this parse rule.
    496475      ;
    497       (define (namapti-je ignore-porsi ignore-zvati)
    498         (namapti cfari-porsi cfari-zvati))
     476      (define (namapti-je ignore-porsi)
     477        (namapti cfari-porsi))
    499478
    500479      (let ((javni (car rodajavni))
     
    503482
    504483            ; called at the end of the list
    505             (let ((mapti-je (lambda (porsi zvati nunvalsi)
     484            (let ((mapti-je (lambda (porsi nunvalsi)
    506485                               (set-cdr! fanmo (list nunvalsi))
    507                                (mapti porsi zvati (vejmina (cdr cfari))))))
    508               (javni porsi zvati mapti-je namapti-je))
     486                               (mapti porsi (vejmina (cdr cfari))))))
     487              (javni porsi mapti-je namapti-je))
    509488
    510489            ; called when there are still elements in the list
    511             (let ((mapti-je (lambda (porsi zvati nunvalsi)
     490            (let ((mapti-je (lambda (porsi nunvalsi)
    512491                               (set-cdr! fanmo (list nunvalsi))
    513492                               (javni-je porsi
    514                                          zvati
    515493                                         mapti
    516494                                         namapti
    517495                                         cfari-porsi: cfari-porsi
    518                                          cfari-zvati: cfari-zvati
    519496                                         rodajavni: rest
    520497                                         cfari: cfari
    521498                                         fanmo: (cdr fanmo)))))
    522               (javni porsi zvati mapti-je namapti-je)))))
     499              (javni porsi mapti-je namapti-je)))))
    523500  javni-je))
    524501
     
    530507  (let ((vejmina   (venunjmina-nunvalsi cmene nastura porjahe porsumti)))
    531508    (define (javni-jonai porsi
    532                          zvati
    533509                         mapti
    534510                         namapti
    535511                         #!optional (rodajavni rodajavni))
    536       (define (mapti-jonai porsi zvati nunvalsi)
    537         (mapti porsi zvati (vejmina nunvalsi)))
     512      (define (mapti-jonai porsi nunvalsi)
     513        ;(pretty-print `(jonai ,nunvalsi ,(vejmina nunvalsi)))
     514        (mapti porsi (vejmina nunvalsi)))
    538515
    539516      (let ((javni (car rodajavni))
     
    541518        (if (null? rest)
    542519            ; called at the end of the list
    543             (javni porsi zvati mapti-jonai namapti)
     520            (javni porsi mapti-jonai namapti)
    544521
    545522            ; called when there are still elements in the list
    546             (let ((namapti-jonai (lambda (porsi zvati)
     523            (let ((namapti-jonai (lambda (porsi)
    547524                                   (javni-jonai porsi
    548                                                 zvati
    549525                                                mapti
    550526                                                namapti
    551527                                                rest))))
    552               (javni porsi zvati mapti-jonai namapti-jonai)))))
     528              (javni porsi mapti-jonai namapti-jonai)))))
    553529    javni-jonai))
    554530
     
    558534;;
    559535(define (nunjavni-porjahe javni)
    560   (define (javni-porjahe porsi zvati mapti namapti)
    561     (define (mapti-porjahe porsi zvati nunvalsi)
    562       (mapti porsi zvati `(,nunvalsi)))
    563 
    564     (javni porsi zvati mapti-porjahe namapti))
     536  (define (javni-porjahe porsi mapti namapti)
     537    (define (mapti-porjahe porsi nunvalsi)
     538      (mapti porsi `(,nunvalsi)))
     539
     540    (javni porsi mapti-porjahe namapti))
    565541
    566542  javni-porjahe)
     
    586562          (define (semorji nilcla)
    587563            (let ((klani (quotient nilcla 2)))
    588               (set! morji (make-hash-table = size: (if (= 0 klani) 1 klani)))))
     564              (set! morji
     565                    (make-hash-table eq? size: (if (= 0 klani) 1 klani)))))
    589566
    590567          (define (tolmohi)
    591568            (set! morji '()))
    592569
    593           (define (javni-morji morji-porsi morji-zvati mapti namapti)
     570          (define (javni-morji morji-porsi mapti namapti)
    594571            ;; mapti
    595             (define (set-mapti-morji! porsi zvati nunvalsi)
     572            (define (set-mapti-morji! porsi nunvalsi)
    596573              (define (mapti-morji mapti ignore-namapti)
    597                 (mapti porsi zvati nunvalsi))
    598 
    599               (hash-table-set! morji morji-zvati mapti-morji))
     574                (mapti porsi nunvalsi))
     575
     576              (hash-table-set! morji morji-porsi mapti-morji))
    600577
    601578            ;; namapti
    602             (define (set-namapti-morji! porsi zvati)
     579            (define (set-namapti-morji! porsi)
    603580              (define (namapti-morji ignore-mapti namapti)
    604                 (namapti porsi zvati))
    605 
    606               (hash-table-set! morji morji-zvati namapti-morji))
     581                (namapti porsi))
     582
     583              (hash-table-set! morji morji-porsi namapti-morji))
    607584
    608585            ;; recurse
    609586            (define (set-recurse-morji!)
    610587              (define (recurse-morji ignore-mapti namapti)
    611                 (namapti morji-porsi morji-zvati))
    612 
    613               (hash-table-set! morji morji-zvati recurse-morji))
     588                (namapti morji-porsi))
     589
     590              (hash-table-set! morji morji-porsi recurse-morji))
    614591
    615592            (define (javni-nomorji)
    616               (define (mapti-morji porsi zvati nunvalsi)
    617                 (set-mapti-morji! porsi zvati nunvalsi)
    618                 (mapti porsi zvati nunvalsi))
    619 
    620               (define (namapti-morji porsi zvati)
    621                 (set-namapti-morji! porsi zvati)
    622                 (namapti porsi zvati))
     593              (define (mapti-morji porsi nunvalsi)
     594                (set-mapti-morji! porsi nunvalsi)
     595                (mapti porsi nunvalsi))
     596
     597              (define (namapti-morji porsi)
     598                (set-namapti-morji! porsi)
     599                (namapti porsi))
    623600
    624601              ; register this parse position to detect left
     
    626603              (set-recurse-morji!)
    627604
    628               (javni morji-porsi morji-zvati mapti-morji namapti-morji))
     605              (javni morji-porsi mapti-morji namapti-morji))
    629606
    630607            (let ((nunjalge
    631                     (hash-table-ref/default morji morji-zvati #f)))
     608                    (hash-table-ref/default morji morji-porsi #f)))
    632609              (if nunjalge (nunjalge mapti namapti) (javni-nomorji))))
    633610
     
    637614          ; we clear the caches after we're done parsing.
    638615          ;
    639           (set! rodasemorji (cons semorji rodasemorji))
    640           (set! rodatolmohi (cons tolmohi rodatolmohi))
     616          (stack-push! rodasemorji (cons semorji (stack-pop! rodasemorji)))
     617          (stack-push! rodatolmohi (cons tolmohi (stack-pop! rodatolmohi)))
    641618
    642619          javni-morji)))))
     
    644621(define (nunjavni-samselpla samselpla javni #!key cmene porjahe)
    645622  (let ((nunvalsi-samselpla (make-nunvalsi cmene #f porjahe)))
    646     (define (javni-samselpla porsi zvati mapti namapti)
    647       (define (mapti-samselpla porsi zvati nunvalsi)
     623    (define (javni-samselpla porsi mapti namapti)
     624      (define (mapti-samselpla porsi nunvalsi)
    648625        (define (samselpla-sumti rodavalsi)
    649626          (call-with-values
     
    666643             (nunvalsi-samselpla valsi)))
    667644
    668         (mapti porsi zvati (samselpla-nunvalsi)))
    669 
    670       (javni porsi zvati mapti-samselpla namapti))
     645        (mapti porsi (samselpla-nunvalsi)))
     646
     647      (javni porsi mapti-samselpla namapti))
    671648    javni-samselpla))
    672649
     
    675652        (javni-samselpla (nunjavni-samselpla samselpla javni
    676653                                                       porjahe: porjahe)))
    677     (define (javni-samselpla-cabna porsi zvati mapti namapti)
    678       (define (mapti-samselpla-cabna mapti-porsi mapti-zvati nunvalsi)
     654    (define (javni-samselpla-cabna porsi mapti namapti)
     655      (define (mapti-samselpla-cabna mapti-porsi nunvalsi)
    679656        (if (eq? (secuxna-nonmatch-token) nunvalsi)
    680             (namapti porsi zvati)
     657            (namapti porsi)
    681658            (mapti mapti-porsi
    682                    mapti-zvati
    683659                   (nunvalsi-samselpla-cabna nunvalsi))))
    684660
    685       (javni-samselpla porsi zvati mapti-samselpla-cabna namapti))
     661      (javni-samselpla porsi mapti-samselpla-cabna namapti))
    686662    javni-samselpla-cabna))
    687663
    688664(define (nunjavni-cmene javni #!key cmene nastura porjahe)
    689665  (let ((nunvalsi-cmene (make-nunvalsi cmene nastura porjahe)))
    690     (define (javni-cmene porsi zvati mapti namapti)
    691       (define (mapti-cmene porsi zvati nunvalsi)
     666    (define (javni-cmene porsi mapti namapti)
     667      (define (mapti-cmene porsi nunvalsi)
    692668        (mapti porsi
    693                zvati
    694669               (nunvalsi-cmene nunvalsi)))
    695       (javni porsi zvati mapti-cmene namapti))
     670      (javni porsi mapti-cmene namapti))
    696671    javni-cmene))
    697672
     
    700675(define (nunjavni-nastura javni #!key porjahe)
    701676  (let ((nunvalsi-nastura (make-nunvalsi-predicate porjahe)))
    702     (define (javni-nastura porsi zvati mapti namapti)
    703       (define (mapti-nastura porsi zvati ignore-nunvalsi)
    704         (mapti porsi zvati nunvalsi-nastura))
    705       (javni porsi zvati mapti-nastura namapti))
     677    (define (javni-nastura porsi mapti namapti)
     678      (define (mapti-nastura porsi ignore-nunvalsi)
     679        (mapti porsi nunvalsi-nastura))
     680      (javni porsi mapti-nastura namapti))
    706681    javni-nastura))
    707682
  • release/4/genturfahi/trunk/samselpla.scm

    r25683 r25738  
    204204             (nunjavni-secuxna
    205205               (lambda () ',(string->symbol naselci))
    206                  (lambda (porsi zvati mapti namapti)
    207                    (,symbol porsi zvati mapti namapti))))
     206                 (lambda (porsi mapti namapti)
     207                   (,symbol porsi mapti namapti))))
    208208
    209209          ; inner let (which stores grammar rules)
  • release/4/genturfahi/trunk/tests/je-quote.scm

    r23157 r25738  
    4343          (nunjavni-secuxna
    4444            (lambda () "je")
    45             (lambda (porsi zvati mapti namapti)
    46               (je-8 porsi zvati mapti namapti))))
     45            (lambda (porsi mapti namapti)
     46              (je-8 porsi mapti namapti))))
    4747        (define a-1
    4848          (nunjavni-secuxna
    4949            (lambda () "a")
    50             (lambda (porsi zvati mapti namapti)
    51               (a-9 porsi zvati mapti namapti))))
     50            (lambda (porsi mapti namapti)
     51              (a-9 porsi mapti namapti))))
    5252        (define b-2
    5353          (nunjavni-secuxna
    5454            (lambda () "b")
    55             (lambda (porsi zvati mapti namapti)
    56               (b-10 porsi zvati mapti namapti))))
     55            (lambda (porsi mapti namapti)
     56              (b-10 porsi mapti namapti))))
    5757        (define c-3
    5858          (nunjavni-secuxna
    5959            (lambda () "c")
    60             (lambda (porsi zvati mapti namapti)
    61               (c-11 porsi zvati mapti namapti))))
     60            (lambda (porsi mapti namapti)
     61              (c-11 porsi mapti namapti))))
    6262        (define x-4
    6363          (nunjavni-secuxna
    6464            (lambda () "x")
    65             (lambda (porsi zvati mapti namapti)
    66               (x-12 porsi zvati mapti namapti))))
     65            (lambda (porsi mapti namapti)
     66              (x-12 porsi mapti namapti))))
    6767        (define y-5
    6868          (nunjavni-secuxna
    6969            (lambda () "y")
    70             (lambda (porsi zvati mapti namapti)
    71               (y-13 porsi zvati mapti namapti))))
     70            (lambda (porsi mapti namapti)
     71              (y-13 porsi mapti namapti))))
    7272        (define z-6
    7373          (nunjavni-secuxna
    7474            (lambda () "z")
    75             (lambda (porsi zvati mapti namapti)
    76               (z-14 porsi zvati mapti namapti))))
     75            (lambda (porsi mapti namapti)
     76              (z-14 porsi mapti namapti))))
    7777        (define je-8
    7878          (nunjavni-morji
  • release/4/genturfahi/trunk/tests/jonai-naselci.scm

    r23156 r25738  
    3535          (nunjavni-secuxna
    3636            (lambda () "jonai")
    37             (lambda (porsi zvati mapti namapti)
    38               (jonai-5 porsi zvati mapti namapti))))
     37            (lambda (porsi mapti namapti)
     38              (jonai-5 porsi mapti namapti))))
    3939        (define a-1
    4040          (nunjavni-secuxna
    4141            (lambda () "a")
    42             (lambda (porsi zvati mapti namapti)
    43               (a-6 porsi zvati mapti namapti))))
     42            (lambda (porsi mapti namapti)
     43              (a-6 porsi mapti namapti))))
    4444        (define b-2
    4545          (nunjavni-secuxna
    4646            (lambda () "b")
    47             (lambda (porsi zvati mapti namapti)
    48               (b-7 porsi zvati mapti namapti))))
     47            (lambda (porsi mapti namapti)
     48              (b-7 porsi mapti namapti))))
    4949        (define c-3
    5050          (nunjavni-secuxna
    5151            (lambda () "c")
    52             (lambda (porsi zvati mapti namapti)
    53               (c-8 porsi zvati mapti namapti))))
     52            (lambda (porsi mapti namapti)
     53              (c-8 porsi mapti namapti))))
    5454        (define jonai-5
    5555          (nunjavni-morji
  • release/4/genturfahi/trunk/tests/lerfu-klesi.scm

    r23157 r25738  
    3333          (nunjavni-secuxna
    3434            (lambda () "gerna")
    35             (lambda (porsi zvati mapti namapti)
    36               (gerna-5 porsi zvati mapti namapti))))
     35            (lambda (porsi mapti namapti)
     36              (gerna-5 porsi mapti namapti))))
    3737        (define digit-1
    3838          (nunjavni-secuxna
    3939            (lambda () "digit")
    40             (lambda (porsi zvati mapti namapti)
    41               (digit-6 porsi zvati mapti namapti))))
     40            (lambda (porsi mapti namapti)
     41              (digit-6 porsi mapti namapti))))
    4242        (define alpha-2
    4343          (nunjavni-secuxna
    4444            (lambda () "alpha")
    45             (lambda (porsi zvati mapti namapti)
    46               (alpha-7 porsi zvati mapti namapti))))
     45            (lambda (porsi mapti namapti)
     46              (alpha-7 porsi mapti namapti))))
    4747        (define FAhO-3
    4848          (nunjavni-secuxna
    4949            (lambda () "FAhO")
    50             (lambda (porsi zvati mapti namapti)
    51               (FAhO-8 porsi zvati mapti namapti))))
     50            (lambda (porsi mapti namapti)
     51              (FAhO-8 porsi mapti namapti))))
    5252        (define gerna-5
    5353          (nunjavni-morji
  • release/4/genturfahi/trunk/tests/mex.scm

    r23156 r25738  
    5353        (nunjavni-secuxna
    5454          (lambda () "expr")
    55           (lambda (porsi zvati mapti namapti)
    56             (expr-5 porsi zvati mapti namapti))))
     55          (lambda (porsi mapti namapti)
     56            (expr-5 porsi mapti namapti))))
    5757      (define mulexp-1
    5858        (nunjavni-secuxna
    5959          (lambda () "mulexp")
    60           (lambda (porsi zvati mapti namapti)
    61             (mulexp-6 porsi zvati mapti namapti))))
     60          (lambda (porsi mapti namapti)
     61            (mulexp-6 porsi mapti namapti))))
    6262      (define simple-2
    6363        (nunjavni-secuxna
    6464          (lambda () "simple")
    65           (lambda (porsi zvati mapti namapti)
    66             (simple-7 porsi zvati mapti namapti))))
     65          (lambda (porsi mapti namapti)
     66            (simple-7 porsi mapti namapti))))
    6767      (define digits-3
    6868        (nunjavni-secuxna
    6969          (lambda () "digits")
    70           (lambda (porsi zvati mapti namapti)
    71             (digits-8 porsi zvati mapti namapti))))
     70          (lambda (porsi mapti namapti)
     71            (digits-8 porsi mapti namapti))))
    7272      (define expr-5
    7373        (nunjavni-morji
  • release/4/genturfahi/trunk/tests/samselpla.scm

    r23156 r25738  
    4343                 (nunjavni-je
    4444                   (list (nunjavni-cmene
    45                            (lambda (porsi zvati mapti namapti)
    46                              (a porsi zvati mapti namapti))
     45                           (lambda (porsi mapti namapti)
     46                             (a porsi mapti namapti))
    4747                           cmene: "a")
    48                          (lambda (porsi zvati mapti namapti)
    49                            (b porsi zvati mapti namapti))
     48                         (lambda (porsi mapti namapti)
     49                           (b porsi mapti namapti))
    5050                         (nunjavni-cmene
    51                            (lambda (porsi zvati mapti namapti)
    52                              (c porsi zvati mapti namapti))
     51                           (lambda (porsi mapti namapti)
     52                             (c porsi mapti namapti))
    5353                           cmene: "c"))
    5454                   porjahe: #t))))
  • release/4/genturfahi/trunk/tests/utf8.scm

    r25672 r25738  
    3232        (nunjavni-secuxna
    3333          (lambda () 'gerna)
    34           (lambda (porsi zvati mapti namapti)
    35             (gerna-2 porsi zvati mapti namapti))))
     34          (lambda (porsi mapti namapti)
     35            (gerna-2 porsi mapti namapti))))
    3636      (define gerna-2
    3737        (nunjavni-morji
Note: See TracChangeset for help on using the changeset viewer.