Changeset 21582 in project


Ignore:
Timestamp:
11/22/10 06:49:29 (10 years ago)
Author:
Alan Post
Message:

genturfa'i: update mex test based on compiler changes.

I've shortened the grammar, as I have more expressive primitives
now. The previous grammar was taken directly from the packrat egg,
and was limited by the parsing expressions available in that egg.

As well, prepare the code to add parsing of the PEG grammar.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/genturfahi/trunk/tests/mex.scm

    r21431 r21582  
    2626;;; It is here ported to genturfa'i.
    2727;;;
     28;;; expr   <- mulexp + mulexp
     29;;;         / mulexp
     30;;; mulexp <- simple * simple
     31;;;         / simple
     32;;; simple <- digits
     33;;;         / #\( expr #\)
     34;;; digits <- [:digit:]+
     35
     36(define (test-samselpla-+ #!key a b)
     37  (+ a b))
     38
     39(define (test-samselpla-* #!key a b)
     40  (* a b))
     41
     42(define (test-samselpla-simple #!key expr)
     43  expr)
     44
     45(define (test-samselpla-digits #!key x)
     46  (string->number x))
     47
    2848(define (mex)
    29   (let ((mex
     49  (let ((genturfahi-mex
    3050    (letrec
    3151      ((expr   (nunjavni-morji
    3252                 (nunjavni-jonai
    3353                   (nunjavni-samselpla
    34                      (lambda (#!key a b) (+ a b))
     54                     test-samselpla-+
    3555                     (nunjavni-je
    3656                       (nunjavni-cmene (nunjavni-naselci mulexp) cmene: 'a:)
     
    4161                 (nunjavni-jonai
    4262                   (nunjavni-samselpla
    43                      (lambda (#!key a b) (* a b))
     63                     test-samselpla-*
    4464                     (nunjavni-je
    4565                       (nunjavni-cmene (nunjavni-naselci simple) cmene: 'a:)
     
    4969       (simple (nunjavni-morji
    5070                 (nunjavni-jonai
    51                    (nunjavni-naselci num)
     71                   (nunjavni-naselci digits)
    5272                   (nunjavni-samselpla
    53                      (lambda (#!key a) a)
     73                     test-samselpla-simple
    5474                     (nunjavni-je
    5575                       (nunjavni-lerfu #\()
    56                        (nunjavni-cmene (nunjavni-naselci expr) cmene: 'a:)
     76                       (nunjavni-cmene (nunjavni-naselci expr) cmene: 'expr:)
    5777                       (nunjavni-lerfu #\)))))))
    58        (num    (nunjavni-morji
     78       (digits (nunjavni-morji
    5979                 (nunjavni-samselpla
    60                    (lambda (#!key x) (string->number (list->string x)))
    61                    (nunjavni-+ (nunjavni-naselci digit) cmene: 'x:))))
    62        (digit  (nunjavni-morji
    63                  (nunjavni-jonai
    64                    (nunjavni-lerfu #\0)
    65                    (nunjavni-lerfu #\1)
    66                    (nunjavni-lerfu #\2)
    67                    (nunjavni-lerfu #\3)
    68                    (nunjavni-lerfu #\4)
    69                    (nunjavni-lerfu #\5)
    70                    (nunjavni-lerfu #\6)
    71                    (nunjavni-lerfu #\7)
    72                    (nunjavni-lerfu #\8)
    73                    (nunjavni-lerfu #\9)))))
     80                   test-samselpla-digits
     81                   (nunjavni-re "[[:digit:]]+" cmene: 'x:)))))
    7482      (genturfahi expr))))
    7583
    76     (test 2  (mex "2"))
    77     (test 22 (mex "22"))
    78     (test 4  (mex "2*2"))
    79     (test 4  (mex "2+2"))
    80     (test 16 (mex "2+2*7"))
    81     (test 28 (mex "(2+2)*7"))
    82     (test 42 (mex "3*4+5*6")))
     84    (test 2  (genturfahi-mex "2"))
     85    (test 22 (genturfahi-mex "22"))
     86    (test 4  (genturfahi-mex "2*2"))
     87    (test 4  (genturfahi-mex "2+2"))
     88    (test 16 (genturfahi-mex "2+2*7"))
     89    (test 28 (genturfahi-mex "(2+2)*7"))
     90    (test 42 (genturfahi-mex "3*4+5*6")))
    8391    0)
    8492
Note: See TracChangeset for help on using the changeset viewer.