(define scss-parser (letrec ((___max-stack-size 500) (___atable '#(((*default* . *error*) (*eoi* . 13) (SEMICOLON . 12) (IMPORT_SYM . 11) (MEDIA_SYM . 10) (LBRACE . 9) (IDENT . 8) (COLON . 7) (HASH . 6) (DOT . 5) (STAR . 4) (LBRACK . 3) (CDO . 2) (CDC . 1)) ((*default* . -8)) ((*default* . -7)) ((*default* . *error*) (IDENT . 29)) ((*default* . -52)) ((*default* . *error*) (IDENT . 30)) ((*default* . -44)) ((*default* . *error*) (IDENT . 31)) ((*default* . -51)) ((*default* . *error*) (RBRACE . 33) (IDENT . 32)) ((*default* . *error*) (IDENT . 37)) ((*default* . *error*) (STRING . 41) (URI . 40)) ((*default* . *error*) (*eoi* . 13) (IMPORT_SYM . 11) (MEDIA_SYM . 10) (LBRACE . 9) (IDENT . 8) (COLON . 7) (HASH . 6) (DOT . 5) (STAR . 4) (LBRACK . 3) (CDO . 2) (CDC . 1)) ((*default* . -9)) ((*default* . -47)) ((*default* . -46)) ((*default* . -41) (COLON . 7) (HASH . 6) (DOT . 5) (LBRACK . 3)) ((*default* . -45)) ((*default* . -43)) ((*default* . -48) (COLON . 7) (HASH . 6) (DOT . 5) (LBRACK . 3)) ((*default* . -38) (IDENT . 8) (COLON . 7) (PLUS . 47) (GREATER . 46) (HASH . 6) (DOT . 5) (STAR . 4) (LBRACK . 3)) ((*default* . -35)) ((*default* . *error*) (LBRACE . 50)) ((*default* . -36) (COMMA . 51)) ((*default* . -4)) ((*default* . -6)) ((*default* . -5)) ((*default* . -3)) ((*default* . *error*) (*eoi* . 52)) ((*default* . *error*) (RBRACK . 56) (EQUALS . 55) (INCLUDES . 54) (DASHMATCH . 53)) ((*default* . -50)) ((*default* . -60)) ((*default* . -30)) ((*default* . -33)) ((*default* . *error*) (RBRACE . 58)) ((*default* . -65) (SEMICOLON . 59)) ((*default* . *error*) (COLON . 60)) ((*default* . -18)) ((*default* . *error*) (LBRACE . 61)) ((*default* . -19) (COMMA . 62)) ((*default* . -13)) ((*default* . -12)) ((*default* . *error*) (SEMICOLON . 63) (IDENT . 37)) ((*default* . -2)) ((*default* . -42)) ((*default* . -49)) ((*default* . -27)) ((*default* . -26)) ((*default* . -40)) ((*default* . *error*) (IDENT . 8) (COLON . 7) (HASH . 6) (DOT . 5) (STAR . 4) (LBRACK . 3)) ((*default* . *error*) (RBRACE . 66) (IDENT . 32)) ((*default* . *error*) (IDENT . 8) (COLON . 7) (HASH . 6) (DOT . 5) (STAR . 4) (LBRACK . 3)) ((*default* . -1) (*eoi* . accept)) ((*default* . -55)) ((*default* . -54)) ((*default* . -53)) ((*default* . -59)) ((*default* . *error*) (STRING . 70) (IDENT . 69)) ((*default* . -34)) ((*default* . -66) (IDENT . 32)) ((*default* . -63) (INVALID . 92) (STRING . 91) (URI . 90) (IDENT . 89) (COMMA . 88) (DIV . 87) (PLUS . 86) (MINUS . 85) (HASH . 84) (IMPORTANT_SYM . 83) (NUMBER . 82) (PERCENTAGE . 81) (LENGTH . 80) (EMS . 79) (EXS . 78) (ANGLE . 77) (TIME . 76) (FREQ . 75) (DIMENSION . 74) (FUNCTION . 73)) ((*default* . *error*) (*eoi* . 13) (IMPORT_SYM . 11) (MEDIA_SYM . 10) (LBRACE . 9) (RBRACE . 100) (IDENT . 8) (COLON . 7) (HASH . 6) (DOT . 5) (STAR . 4) (LBRACK . 3) (CDO . 2) (CDC . 1)) ((*default* . *error*) (IDENT . 37)) ((*default* . -10)) ((*default* . *error*) (SEMICOLON . 104)) ((*default* . -39)) ((*default* . -31)) ((*default* . *error*) (RBRACE . 105)) ((*default* . -37)) ((*default* . -56)) ((*default* . -57)) ((*default* . *error*) (RBRACK . 106)) ((*default* . -67)) ((*default* . *error*) (INVALID . 92) (STRING . 91) (URI . 90) (IDENT . 89) (COMMA . 88) (DIV . 87) (PLUS . 86) (MINUS . 85) (HASH . 84) (NUMBER . 82) (PERCENTAGE . 81) (LENGTH . 80) (EMS . 79) (EXS . 78) (ANGLE . 77) (TIME . 76) (FREQ . 75) (DIMENSION . 74) (FUNCTION . 73)) ((*default* . -88)) ((*default* . -87)) ((*default* . -86)) ((*default* . -85)) ((*default* . -84)) ((*default* . -83)) ((*default* . -82)) ((*default* . -81)) ((*default* . -80)) ((*default* . -64)) ((*default* . -90)) ((*default* . -28)) ((*default* . -29)) ((*default* . -24)) ((*default* . -25)) ((*default* . -76)) ((*default* . -77)) ((*default* . -74)) ((*default* . -75)) ((*default* . -78)) ((*default* . -79)) ((*default* . -73)) ((*default* . -68) (INVALID . 92) (STRING . 91) (URI . 90) (IDENT . 89) (COMMA . 88) (DIV . 87) (PLUS . 86) (MINUS . 85) (HASH . 84) (NUMBER . 82) (PERCENTAGE . 81) (LENGTH . 80) (EMS . 79) (EXS . 78) (ANGLE . 77) (TIME . 76) (FREQ . 75) (DIMENSION . 74) (FUNCTION . 73)) ((*default* . -61) (IMPORTANT_SYM . 109)) ((*default* . *error*) (NUMBER . 82) (PERCENTAGE . 81) (LENGTH . 80) (EMS . 79) (EXS . 78) (ANGLE . 77) (TIME . 76) (FREQ . 75) (DIMENSION . 74)) ((*default* . *error*) (INVALID . 92) (STRING . 91) (URI . 90) (IDENT . 89) (PLUS . 86) (MINUS . 85) (HASH . 84) (NUMBER . 82) (PERCENTAGE . 81) (LENGTH . 80) (EMS . 79) (EXS . 78) (ANGLE . 77) (TIME . 76) (FREQ . 75) (DIMENSION . 74) (FUNCTION . 73)) ((*default* . -17)) ((*default* . *error*) (RBRACE . 112)) ((*default* . -14) (*eoi* . 13) (IMPORT_SYM . 11) (MEDIA_SYM . 10) (LBRACE . 9) (IDENT . 8) (COLON . 7) (HASH . 6) (DOT . 5) (STAR . 4) (LBRACK . 3) (CDO . 2) (CDC . 1)) ((*default* . -20)) ((*default* . -11)) ((*default* . -32)) ((*default* . -58)) ((*default* . *error*) (RPAREN . 114)) ((*default* . -69)) ((*default* . -62)) ((*default* . -72)) ((*default* . -70) (INVALID . 92) (STRING . 91) (URI . 90) (IDENT . 89) (COMMA . 88) (DIV . 87) (PLUS . 86) (MINUS . 85) (HASH . 84) (NUMBER . 82) (PERCENTAGE . 81) (LENGTH . 80) (EMS . 79) (EXS . 78) (ANGLE . 77) (TIME . 76) (FREQ . 75) (DIMENSION . 74) (FUNCTION . 73)) ((*default* . -16)) ((*default* . -15)) ((*default* . -89)) ((*default* . -71)))) (___gtable (vector '((27 . 14) (26 . 15) (23 . 16) (22 . 17) (21 . 18) (20 . 19) (19 . 20) (18 . 21) (17 . 22) (16 . 23) (15 . 24) (6 . 25) (3 . 26) (2 . 27) (1 . 28)) '() '() '() '() '() '() '() '() '((29 . 34) (28 . 35) (14 . 36)) '((8 . 38) (7 . 39)) '((4 . 42)) '((27 . 14) (26 . 15) (23 . 16) (22 . 17) (21 . 18) (20 . 19) (19 . 20) (18 . 21) (17 . 22) (16 . 23) (15 . 24) (6 . 25) (3 . 26) (2 . 43)) '() '() '() '((27 . 14) (26 . 15) (22 . 17) (21 . 44) (20 . 19)) '() '() '((27 . 14) (26 . 15) (22 . 17) (21 . 45) (20 . 19)) '((27 . 14) (26 . 15) (23 . 16) (22 . 17) (21 . 18) (20 . 19) (19 . 20) (18 . 48) (12 . 49)) '() '() '() '() '() '() '() '() '((24 . 57)) '() '() '() '() '() '() '() '() '() '() '() '() '((8 . 64) (7 . 39)) '() '() '() '() '() '() '((27 . 14) (26 . 15) (23 . 16) (22 . 17) (21 . 18) (20 . 19) (19 . 20) (18 . 65)) '((29 . 67) (28 . 35) (14 . 36)) '((27 . 14) (26 . 15) (23 . 16) (22 . 17) (21 . 18) (20 . 19) (19 . 20) (18 . 21) (17 . 68) (16 . 23)) '() '() '() '() '() '((25 . 71)) '() '((29 . 72) (28 . 35) (14 . 36)) '((34 . 93) (33 . 94) (32 . 95) (31 . 96) (30 . 97) (13 . 98) (11 . 99)) '((27 . 14) (26 . 15) (23 . 16) (22 . 17) (21 . 18) (20 . 19) (19 . 20) (18 . 21) (17 . 22) (16 . 23) (15 . 24) (6 . 25) (5 . 101) (3 . 26) (2 . 102)) '((8 . 103) (7 . 39)) '() '() '() '() '() '() '() '() '() '() '((34 . 93) (33 . 94) (32 . 95) (31 . 96) (30 . 107) (13 . 98) (11 . 99)) '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '((34 . 93) (33 . 94) (32 . 95) (31 . 96) (30 . 108) (13 . 98) (11 . 99)) '() '((32 . 110)) '((34 . 93) (33 . 94) (32 . 95) (31 . 111) (13 . 98)) '() '() '((27 . 14) (26 . 15) (23 . 16) (22 . 17) (21 . 18) (20 . 19) (19 . 20) (18 . 21) (17 . 22) (16 . 23) (15 . 24) (6 . 25) (5 . 113) (3 . 26) (2 . 102)) '() '() '() '() '() '() '() '() '((34 . 93) (33 . 94) (32 . 95) (31 . 96) (30 . 115) (13 . 98) (11 . 99)) '() '() '() '())) (___grow-stack (lambda (stack) (let ((new-stack (make-vector (* 2 (vector-length stack)) #f))) (let loop ((i (- (vector-length stack) 1))) (if (< i 0) new-stack (begin (vector-set! new-stack i (vector-ref stack i)) (loop (- i 1)))))))) (___push (lambda (stack sp new-cat goto-table lval k) (let* ((state (vector-ref stack sp)) (new-state (cdr (assv new-cat (vector-ref goto-table state)))) (new-sp (+ sp 2)) (stack (if (< new-sp (vector-length stack)) stack (___grow-stack stack)))) (vector-set! stack new-sp new-state) (vector-set! stack (- new-sp 1) lval) (k stack new-sp)))) (___action (lambda (x l) (let ((y (assq x l))) (if y (cdr y) (cdar l))))) (___recover (lambda (stack sp tok lexerp k) (let find-state ((sp sp)) (if (< sp 0) (k stack sp) (let* ((state (vector-ref stack sp)) (act (assq 'error (vector-ref ___atable state)))) (if act (___sync stack sp (cdr act) tok lexerp k) (find-state (- sp 2)))))))) (___sync (lambda (stack sp state tok lexerp k) (let ((sync-set (map car (cdr (vector-ref ___atable state)))) (stack (if (< (+ sp 4) (vector-length stack)) stack (___grow-stack stack)))) (vector-set! stack (+ sp 1) #f) (vector-set! stack (+ sp 2) state) (let skip ((tok tok)) (let ((i (if (pair? tok) (car tok) tok))) (if (eq? i (quote *eoi*)) (k stack -1) (if (memq i sync-set) (let ((act (assq i (vector-ref ___atable state)))) (vector-set! stack (+ sp 3) #f) (vector-set! stack (+ sp 4) (cdr act)) (k stack (+ sp 4))) (skip (lexerp))))))))) (___rtable (let ((___v (make-vector 91 (quote ())))) (vector-set! ___v 1 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) $1))) (vector-set! ___v 2 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 1 ___goto-table (list) ___k)))) (vector-set! ___v 3 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 1 ___goto-table (throw (quote scss:parsed-statement) $1) ___k)))) (vector-set! ___v 4 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 2 ___goto-table $1 ___k)))) (vector-set! ___v 5 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 2 ___goto-table (let* ((u (cadr $1)) (uri (if (and (> (string-length u) 4) (equal? (substring u 0 4) "url(")) (if (equal? (substring u 4 5) "\"") (substring u 5 (- (string-length u) 2)) (substring u 4 (- (string-length u) 1))) (substring u 1 (- (string-length u) 1))))) (list (quote @import) uri)) ___k)))) (vector-set! ___v 6 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 2 ___goto-table $1 ___k)))) (vector-set! ___v 7 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 2 ___goto-table $1 ___k)))) (vector-set! ___v 8 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 2 ___goto-table $1 ___k)))) (vector-set! ___v 9 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 2 ___goto-table '*eoi* ___k)))) (vector-set! ___v 10 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 3 ___goto-table (list (quote @import) $2) ___k)))) (vector-set! ___v 11 (lambda (___stack ___sp ___goto-table ___k) (let* (($4 (vector-ref ___stack (- ___sp 1))) ($3 (vector-ref ___stack (- ___sp 3))) ($2 (vector-ref ___stack (- ___sp 5))) ($1 (vector-ref ___stack (- ___sp 7)))) (___push ___stack (- ___sp 8) 3 ___goto-table (list (quote @import) $2 $3) ___k)))) (vector-set! ___v 12 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 4 ___goto-table $1 ___k)))) (vector-set! ___v 13 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 4 ___goto-table $1 ___k)))) (vector-set! ___v 14 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 5 ___goto-table (list $1) ___k)))) (vector-set! ___v 15 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 5 ___goto-table (cons $1 $2) ___k)))) (vector-set! ___v 16 (lambda (___stack ___sp ___goto-table ___k) (let* (($5 (vector-ref ___stack (- ___sp 1))) ($4 (vector-ref ___stack (- ___sp 3))) ($3 (vector-ref ___stack (- ___sp 5))) ($2 (vector-ref ___stack (- ___sp 7))) ($1 (vector-ref ___stack (- ___sp 9)))) (___push ___stack (- ___sp 10) 6 ___goto-table (cons* (quote @media) $2 $4) ___k)))) (vector-set! ___v 17 (lambda (___stack ___sp ___goto-table ___k) (let* (($4 (vector-ref ___stack (- ___sp 1))) ($3 (vector-ref ___stack (- ___sp 3))) ($2 (vector-ref ___stack (- ___sp 5))) ($1 (vector-ref ___stack (- ___sp 7)))) (___push ___stack (- ___sp 8) 6 ___goto-table (list) ___k)))) (vector-set! ___v 18 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 7 ___goto-table (string->symbol $1) ___k)))) (vector-set! ___v 19 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 8 ___goto-table (list $1) ___k)))) (vector-set! ___v 20 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 8 ___goto-table (null-merge $1 $3) ___k)))) (vector-set! ___v 21 (lambda (___stack ___sp ___goto-table ___k) (let* (($5 (vector-ref ___stack (- ___sp 1))) ($4 (vector-ref ___stack (- ___sp 3))) ($3 (vector-ref ___stack (- ___sp 5))) ($2 (vector-ref ___stack (- ___sp 7))) ($1 (vector-ref ___stack (- ___sp 9)))) (___push ___stack (- ___sp 10) 9 ___goto-table (list (quote @page) (list $2 $4)) ___k)))) (vector-set! ___v 22 (lambda (___stack ___sp ___goto-table ___k) (let* (($4 (vector-ref ___stack (- ___sp 1))) ($3 (vector-ref ___stack (- ___sp 3))) ($2 (vector-ref ___stack (- ___sp 5))) ($1 (vector-ref ___stack (- ___sp 7)))) (___push ___stack (- ___sp 8) 9 ___goto-table (list (quote @page) (list $2 $4)) ___k)))) (vector-set! ___v 23 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 10 ___goto-table (string->symbol (string-append ":" $2)) ___k)))) (vector-set! ___v 24 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 11 ___goto-table "/" ___k)))) (vector-set! ___v 25 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 11 ___goto-table "," ___k)))) (vector-set! ___v 26 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 12 ___goto-table "+" ___k)))) (vector-set! ___v 27 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 12 ___goto-table ">" ___k)))) (vector-set! ___v 28 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 13 ___goto-table "-" ___k)))) (vector-set! ___v 29 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 13 ___goto-table "+" ___k)))) (vector-set! ___v 30 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 14 ___goto-table (string->symbol (string-downcase $1)) ___k)))) (vector-set! ___v 31 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 15 ___goto-table '() ___k)))) (vector-set! ___v 32 (lambda (___stack ___sp ___goto-table ___k) (let* (($4 (vector-ref ___stack (- ___sp 1))) ($3 (vector-ref ___stack (- ___sp 3))) ($2 (vector-ref ___stack (- ___sp 5))) ($1 (vector-ref ___stack (- ___sp 7)))) (___push ___stack (- ___sp 8) 15 ___goto-table (if (and (not (null? $1)) (not (null? $3))) (append (list $1) (if (and (not (null? $3)) (list? (car $3))) $3 (list $3))) '()) ___k)))) (vector-set! ___v 33 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 15 ___goto-table '() ___k)))) (vector-set! ___v 34 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 15 ___goto-table '() ___k)))) (vector-set! ___v 35 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 16 ___goto-table (if (> (length $1) 1) (cons (quote //) $1) (if (null? $1) $1 (car $1))) ___k)))) (vector-set! ___v 36 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 17 ___goto-table $1 ___k)))) (vector-set! ___v 37 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 17 ___goto-table (if (or (null? $1) (null? $3)) (list) (if (list? $3) (if (eq? (car $3) (quote //)) (list $1 $3) (cons $1 $3)) (list $1 $3))) ___k)))) (vector-set! ___v 38 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 18 ___goto-table (if (null? $1) $1 (list $1)) ___k)))) (vector-set! ___v 39 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 18 ___goto-table (if (or (null? $1) (null? $2)) '() (combine $1 $2 $3)) ___k)))) (vector-set! ___v 40 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 18 ___goto-table (if (or (null? $1) (null? $2)) (list) (null-merge $1 $2)) ___k)))) (vector-set! ___v 41 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 19 ___goto-table (string->symbol (replace-escapes $1)) ___k)))) (vector-set! ___v 42 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 19 ___goto-table (add-modifiers (replace-escapes $1) $2) ___k)))) (vector-set! ___v 43 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 19 ___goto-table (add-modifiers "" $1) ___k)))) (vector-set! ___v 44 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 20 ___goto-table (string-append "|" $1 "|") ___k)))) (vector-set! ___v 45 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 20 ___goto-table $1 ___k)))) (vector-set! ___v 46 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 20 ___goto-table $1 ___k)))) (vector-set! ___v 47 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 20 ___goto-table $1 ___k)))) (vector-set! ___v 48 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 21 ___goto-table $1 ___k)))) (vector-set! ___v 49 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 21 ___goto-table (if (list? $2) (cons $1 $2) (list $1 $2)) ___k)))) (vector-set! ___v 50 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 22 ___goto-table (string-append "." $2) ___k)))) (vector-set! ___v 51 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 23 ___goto-table $1 ___k)))) (vector-set! ___v 52 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 23 ___goto-table "*" ___k)))) (vector-set! ___v 53 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 24 ___goto-table "=" ___k)))) (vector-set! ___v 54 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 24 ___goto-table "~=" ___k)))) (vector-set! ___v 55 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 24 ___goto-table "|=" ___k)))) (vector-set! ___v 56 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 25 ___goto-table $1 ___k)))) (vector-set! ___v 57 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 25 ___goto-table $1 ___k)))) (vector-set! ___v 58 (lambda (___stack ___sp ___goto-table ___k) (let* (($5 (vector-ref ___stack (- ___sp 1))) ($4 (vector-ref ___stack (- ___sp 3))) ($3 (vector-ref ___stack (- ___sp 5))) ($2 (vector-ref ___stack (- ___sp 7))) ($1 (vector-ref ___stack (- ___sp 9)))) (___push ___stack (- ___sp 10) 26 ___goto-table (string-append "[" $2 $3 $4 "]") ___k)))) (vector-set! ___v 59 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 26 ___goto-table (string-append "[" $2 "]") ___k)))) (vector-set! ___v 60 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 27 ___goto-table (string-append ":" $2) ___k)))) (vector-set! ___v 61 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 28 ___goto-table (let ((p (replace-escapes $1)) (v (replace-escapes $3))) (if (validate-property p v) `((unquote p) (unquote v)) (list))) ___k)))) (vector-set! ___v 62 (lambda (___stack ___sp ___goto-table ___k) (let* (($4 (vector-ref ___stack (- ___sp 1))) ($3 (vector-ref ___stack (- ___sp 3))) ($2 (vector-ref ___stack (- ___sp 5))) ($1 (vector-ref ___stack (- ___sp 7)))) (___push ___stack (- ___sp 8) 28 ___goto-table (let ((p (replace-escapes $1)) (v (replace-escapes $3))) (if (validate-property p v) `(! (unquote p) (unquote v)) (list))) ___k)))) (vector-set! ___v 63 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 28 ___goto-table (list) ___k)))) (vector-set! ___v 64 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 28 ___goto-table (list) ___k)))) (vector-set! ___v 65 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 29 ___goto-table (if (null? $1) $1 (list $1)) ___k)))) (vector-set! ___v 66 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 29 ___goto-table (if (null? $1) $1 (list $1)) ___k)))) (vector-set! ___v 67 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 29 ___goto-table (if (null? $1) (if (or (null? $3) (list? (car $3))) $3 (list $3)) (if (null? $3) (list $1) (if (list? (car $3)) (cons $1 $3) (list $1 $3)))) ___k)))) (vector-set! ___v 68 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 30 ___goto-table $1 ___k)))) (vector-set! ___v 69 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 30 ___goto-table (string-append $1 " " $2) ___k)))) (vector-set! ___v 70 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 30 ___goto-table (string-append $1 " " $2) ___k)))) (vector-set! ___v 71 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 30 ___goto-table (string-append $1 " " $2 " " $3) ___k)))) (vector-set! ___v 72 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 31 ___goto-table (string-append $1 $2) ___k)))) (vector-set! ___v 73 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 31 ___goto-table $1 ___k)))) (vector-set! ___v 74 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 31 ___goto-table $1 ___k)))) (vector-set! ___v 75 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 31 ___goto-table $1 ___k)))) (vector-set! ___v 76 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 31 ___goto-table $1 ___k)))) (vector-set! ___v 77 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 31 ___goto-table $1 ___k)))) (vector-set! ___v 78 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 31 ___goto-table $1 ___k)))) (vector-set! ___v 79 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 31 ___goto-table $1 ___k)))) (vector-set! ___v 80 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 81 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 82 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 83 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 84 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 85 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 86 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 87 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table $1 ___k)))) (vector-set! ___v 88 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 32 ___goto-table "" ___k)))) (vector-set! ___v 89 (lambda (___stack ___sp ___goto-table ___k) (let* (($3 (vector-ref ___stack (- ___sp 1))) ($2 (vector-ref ___stack (- ___sp 3))) ($1 (vector-ref ___stack (- ___sp 5)))) (___push ___stack (- ___sp 6) 33 ___goto-table (string-append $1 $2 ")") ___k)))) (vector-set! ___v 90 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 34 ___goto-table $1 ___k)))) ___v))) (lambda (lexerp errorp) (let ((stack (make-vector ___max-stack-size 0))) (let loop ((stack stack) (sp 0) (input #f)) (cond ((< sp 0) #f) (input (let* ((state (vector-ref stack sp)) (i (if (pair? input) (car input) input)) (attr (if (pair? input) (cdr input) #f)) (act (___action i (vector-ref ___atable state)))) (cond ((not (symbol? i)) (errorp "PARSE ERROR: invalid token: " i) #f) ((eq? act (quote accept)) (vector-ref stack 1)) ((eq? act (quote *error*)) (if (eq? i (quote *eoi*)) (begin (errorp "PARSE ERROR : unexpected end of input ") #f) (begin (errorp "PARSE ERROR : unexpected token : " i) (___recover stack sp i lexerp (lambda (stack sp) (if (>= sp 0) (loop stack sp #f) (loop stack sp (quote *eoi*)))))))) ((>= act 0) (let ((stack (if (< (+ sp 2) (vector-length stack)) stack (___grow-stack stack)))) (vector-set! stack (+ sp 1) attr) (vector-set! stack (+ sp 2) act) (loop stack (+ sp 2) (if (eq? i (quote *eoi*)) '*eoi* #f)))) (else ((vector-ref ___rtable (- act)) stack sp ___gtable (lambda (stack sp) (loop stack sp input))))))) (else (let* ((state (vector-ref stack sp)) (acts (vector-ref ___atable state)) (defact (if (pair? acts) (cdar acts) #f))) (if (and (= 1 (length acts)) (< defact 0)) ((vector-ref ___rtable (- defact)) stack sp ___gtable (lambda (stack sp) (loop stack sp input))) (loop stack sp (lexerp)))))))))))