(define scss-parser (letrec ((___max-stack-size 500) (___atable '#(((*default* . *error*) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (CDO . 11) (CDC . 10) (LBRACE . 9) (LPAREN . 8) (LBRACK . 7) (S . 6) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -69)) ((*default* . -75)) ((*default* . -74)) ((*default* . -73)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (RPAREN . 31) (LBRACK . 7) (S . 30) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -6)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (LBRACK . 7) (RBRACK . 35) (S . 30) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (RPAREN . 38) (LBRACK . 7) (S . 30) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (IDENT . 43) (RBRACE . 42) (S . 30) (DELIM . 41)) ((*default* . -5)) ((*default* . -4)) ((*default* . -72)) ((*default* . -70)) ((*default* . -67)) ((*default* . -66)) ((*default* . -65)) ((*default* . -71)) ((*default* . -68)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (SEMICOLON . 50) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (S . 30) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -64)) ((*default* . -40) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -88) (S . 30)) ((*default* . *error*) (SEMICOLON . 50) (LBRACE . 9)) ((*default* . -9) (ATKEYWORD . 19)) ((*default* . -35) (S . 30)) ((*default* . -10)) ((*default* . -7)) ((*default* . -2) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (CDO . 11) (CDC . 10) (LBRACE . 9) (LPAREN . 8) (LBRACK . 7) (S . 6) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (*eoi* . 63)) ((*default* . -92) (S . 30)) ((*default* . -76)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (RPAREN . 65) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (RPAREN . 67)) ((*default* . -90) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -84)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (LBRACK . 7) (RBRACK . 69) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (RBRACK . 71)) ((*default* . -80)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LPAREN . 8) (RPAREN . 72) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (RPAREN . 74)) ((*default* . *error*) (IDENT . 43)) ((*default* . -30)) ((*default* . -49)) ((*default* . *error*) (IDENT . 43) (RBRACE . 42) (DELIM . 41)) ((*default* . *error*) (S . 30) (DELIM . 77)) ((*default* . *error*) (SEMICOLON . 50) (RBRACE . 79)) ((*default* . -48)) ((*default* . -33)) ((*default* . *error*) (IDENT . 20) (ATKEYWORD . 84) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (SEMICOLON . 50) (LBRACE . 49) (RBRACE . 83) (LPAREN . 8) (LBRACK . 7) (S . 30) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -52) (S . 30)) ((*default* . *error*) (IDENT . 20) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (SEMICOLON . 50) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (SEMICOLON . 50) (LBRACE . 49)) ((*default* . -51)) ((*default* . -11)) ((*default* . -50)) ((*default* . -41)) ((*default* . -89)) ((*default* . -39)) ((*default* . -37) (S . 30)) ((*default* . -8)) ((*default* . -36)) ((*default* . -3)) ((*default* . -1) (*eoi* . accept)) ((*default* . -93)) ((*default* . -77)) ((*default* . *error*) (RPAREN . 96)) ((*default* . -78)) ((*default* . -91)) ((*default* . -85)) ((*default* . *error*) (RBRACK . 97)) ((*default* . -86)) ((*default* . -81)) ((*default* . *error*) (RPAREN . 98)) ((*default* . -82)) ((*default* . -47)) ((*default* . -34)) ((*default* . *error*) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (S . 30) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 105)) ((*default* . -31)) ((*default* . *error*) (RBRACE . 107)) ((*default* . -56) (SEMICOLON . 50)) ((*default* . -54) (IDENT . 43) (DELIM . 41)) ((*default* . -15) (S . 30)) ((*default* . -27) (S . 30)) ((*default* . *error*) (IDENT . 20) (ATKEYWORD . 84) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (SEMICOLON . 50) (LBRACE . 49) (RBRACE . 112) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -25)) ((*default* . -29)) ((*default* . -23) (IDENT . 20) (ATKEYWORD . 84) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (SEMICOLON . 50) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . *error*) (RBRACE . 115)) ((*default* . -26)) ((*default* . -53)) ((*default* . *error*) (SEMICOLON . 50) (LBRACE . 49)) ((*default* . -12)) ((*default* . -13)) ((*default* . -38)) ((*default* . -79)) ((*default* . -87)) ((*default* . -83)) ((*default* . *error*) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -60)) ((*default* . -58) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -42)) ((*default* . -61)) ((*default* . -62) (S . 30)) ((*default* . -69) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (S . 30) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -46)) ((*default* . -32)) ((*default* . -57)) ((*default* . -55)) ((*default* . -16)) ((*default* . -28)) ((*default* . -17) (S . 30)) ((*default* . *error*) (RBRACE . 123)) ((*default* . -24)) ((*default* . -19) (S . 30)) ((*default* . -14)) ((*default* . -44)) ((*default* . -59)) ((*default* . -63)) ((*default* . *error*) (IDENT . 20) (ATKEYWORD . 19) (STRING . 18) (HASH . 17) (NUMBER . 16) (PERCENTAGE . 15) (DIMENSION . 14) (URI . 13) (UNICODE-RANGE . 12) (LBRACE . 49) (LPAREN . 8) (LBRACK . 7) (FUNCTION . 5) (EXACTMATCH . 4) (INCLUDES . 3) (DASHMATCH . 2) (DELIM . 1)) ((*default* . -43)) ((*default* . -18)) ((*default* . -20) (S . 30)) ((*default* . -21)) ((*default* . -45)) ((*default* . -22)))) (___gtable (vector '((22 . 21) (21 . 22) (11 . 23) (10 . 24) (9 . 25) (4 . 26) (3 . 27) (2 . 28) (1 . 29)) '() '() '() '() '((24 . 32) (23 . 33) (22 . 34) (21 . 22)) '() '((24 . 36) (23 . 37) (22 . 34) (21 . 22)) '((24 . 39) (23 . 40) (22 . 34) (21 . 22)) '((24 . 44) (14 . 45) (13 . 46) (12 . 47) (8 . 48)) '() '() '() '() '() '() '() '() '() '((24 . 51) (23 . 52) (22 . 34) (21 . 22) (16 . 53) (15 . 54) (5 . 55)) '() '((22 . 21) (21 . 22) (11 . 56)) '((24 . 57)) '((16 . 58) (9 . 59)) '((4 . 60)) '((24 . 61)) '() '() '((22 . 21) (21 . 22) (11 . 23) (10 . 24) (9 . 25) (4 . 26) (3 . 27) (2 . 28) (1 . 62)) '() '((24 . 64)) '() '((23 . 66) (22 . 34) (21 . 22)) '() '((23 . 68) (22 . 34) (21 . 22)) '() '((23 . 70) (22 . 34) (21 . 22)) '() '() '((23 . 73) (22 . 34) (21 . 22)) '() '((14 . 45) (12 . 75)) '() '() '((14 . 45) (13 . 46) (12 . 47) (8 . 76)) '((24 . 78)) '((18 . 80) (17 . 81) (16 . 82)) '() '() '((24 . 85) (22 . 86) (21 . 22) (16 . 87) (7 . 88) (6 . 89) (5 . 90)) '((24 . 91)) '((23 . 92) (22 . 34) (21 . 22) (16 . 53) (15 . 93) (5 . 55)) '((16 . 53) (15 . 94) (5 . 55)) '() '() '() '() '() '() '((24 . 95)) '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '() '((24 . 99) (22 . 100) (21 . 22) (20 . 101) (19 . 102) (5 . 103) (4 . 104)) '((22 . 100) (21 . 22) (20 . 101) (19 . 106) (5 . 103) (4 . 104)) '() '() '((18 . 108) (17 . 81) (16 . 82)) '((14 . 45) (13 . 109) (12 . 47)) '((24 . 110)) '((24 . 111)) '((22 . 86) (21 . 22) (16 . 87) (7 . 88) (6 . 113) (5 . 90)) '() '() '((22 . 86) (21 . 22) (16 . 87) (7 . 88) (6 . 114) (5 . 90)) '() '() '() '((16 . 53) (15 . 116) (5 . 55)) '() '() '() '() '() '() '((22 . 100) (21 . 22) (20 . 101) (19 . 117) (5 . 103) (4 . 104)) '() '((22 . 100) (21 . 22) (20 . 101) (19 . 118) (5 . 103) (4 . 104)) '() '() '((24 . 119)) '((24 . 120) (22 . 100) (21 . 22) (20 . 101) (19 . 121) (5 . 103) (4 . 104)) '() '() '() '() '() '() '((24 . 122)) '() '() '((24 . 124)) '() '() '() '() '((22 . 100) (21 . 22) (20 . 101) (19 . 125) (5 . 103) (4 . 104)) '() '() '((24 . 126)) '() '() '())) (___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 94 (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* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 1 ___goto-table (if (null? $1) $1 (list $1)) ___k)))) (vector-set! ___v 3 (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 (null-merge $1 $2) ___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 (list) ___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 (list) ___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 (list) ___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* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 3 ___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) 3 ___goto-table $1 ___k)))) (vector-set! ___v 10 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 3 ___goto-table (if (and (equal? (car $1) "@import") (> (length $1) 1) (list? (cadr $1)) (> (length (cadr $1)) 0) (string? (caadr $1))) (let* ((u (caadr $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)) (list)) ___k)))) (vector-set! ___v 11 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 4 ___goto-table (cons $1 $2) ___k)))) (vector-set! ___v 12 (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) 4 ___goto-table (cons $1 $3) ___k)))) (vector-set! ___v 13 (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) 4 ___goto-table (cons $1 (cons $2 $3)) ___k)))) (vector-set! ___v 14 (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) 4 ___goto-table (cons $1 (cons $3 $4)) ___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 (list) ___k)))) (vector-set! ___v 16 (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) 5 ___goto-table (list) ___k)))) (vector-set! ___v 17 (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) 5 ___goto-table (list) ___k)))) (vector-set! ___v 18 (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) 5 ___goto-table (list) ___k)))) (vector-set! ___v 19 (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) 5 ___goto-table $2 ___k)))) (vector-set! ___v 20 (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) 5 ___goto-table $2 ___k)))) (vector-set! ___v 21 (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) 5 ___goto-table $2 ___k)))) (vector-set! ___v 22 (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) 5 ___goto-table $2 ___k)))) (vector-set! ___v 23 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 6 ___goto-table $1 ___k)))) (vector-set! ___v 24 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 6 ___goto-table (null-merge $1 $2) ___k)))) (vector-set! ___v 25 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 7 ___goto-table $1 ___k)))) (vector-set! ___v 26 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 7 ___goto-table $1 ___k)))) (vector-set! ___v 27 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 7 ___goto-table $1 ___k)))) (vector-set! ___v 28 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 7 ___goto-table $1 ___k)))) (vector-set! ___v 29 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 7 ___goto-table (list) ___k)))) (vector-set! ___v 30 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 8 ___goto-table (list) ___k)))) (vector-set! ___v 31 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 8 ___goto-table (if (not (null? $1)) (list $1) (list)) ___k)))) (vector-set! ___v 32 (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 (if (not (null? $1)) (append (list $1) (if (and (not (null? $2)) (not (list? (car $2)))) (list $2) $2)) (if (and (not (null? $2)) (not (list? (car $2)))) (list $2) $2)) ___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) 9 ___goto-table $2 ___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) 9 ___goto-table $3 ___k)))) (vector-set! ___v 35 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 10 ___goto-table (cons (list (list "*")) $1) ___k)))) (vector-set! ___v 36 (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 (cons (list (list "*")) $1) ___k)))) (vector-set! ___v 37 (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 (if (not (null? $2)) (let ((m (merge-selectors $1))) (if (not (false-if-exception (validate-selector m))) (list) (cons m $2))) (list)) ___k)))) (vector-set! ___v 38 (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) 10 ___goto-table (if (not (null? $2)) (let ((m (merge-selectors $1))) (if (not (false-if-exception (validate-selector m))) (list) (cons m $2))) (list)) ___k)))) (vector-set! ___v 39 (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 (list) ___k)))) (vector-set! ___v 40 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 11 ___goto-table (list $1) ___k)))) (vector-set! ___v 41 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 11 ___goto-table (if (member $1 (quote ("." ":" "#"))) (cons (string-append $1 (car $2)) (cdr $2)) (null-merge $1 $2)) ___k)))) (vector-set! ___v 42 (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) 12 ___goto-table (validate-property-parse $1 $3) ___k)))) (vector-set! ___v 43 (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) 12 ___goto-table (validate-property-parse $1 $4) ___k)))) (vector-set! ___v 44 (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) 12 ___goto-table (validate-property-parse $1 $4) ___k)))) (vector-set! ___v 45 (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) 12 ___goto-table (validate-property-parse $1 $5) ___k)))) (vector-set! ___v 46 (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) 12 ___goto-table (list) ___k)))) (vector-set! ___v 47 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 13 ___goto-table $2 ___k)))) (vector-set! ___v 48 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 13 ___goto-table $1 ___k)))) (vector-set! ___v 49 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 14 ___goto-table $1 ___k)))) (vector-set! ___v 50 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 15 ___goto-table $1 ___k)))) (vector-set! ___v 51 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 15 ___goto-table (list) ___k)))) (vector-set! ___v 52 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 16 ___goto-table (list) ___k)))) (vector-set! ___v 53 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 16 ___goto-table (list) ___k)))) (vector-set! ___v 54 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 17 ___goto-table (list) ___k)))) (vector-set! ___v 55 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 17 ___goto-table $2 ___k)))) (vector-set! ___v 56 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 18 ___goto-table $1 ___k)))) (vector-set! ___v 57 (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 (not (null? $1)) (append (list $1) $2) (if (and (not (null? $2)) (not (list? (car $2)))) (list $2) $2)) ___k)))) (vector-set! ___v 58 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 19 ___goto-table $1 ___k)))) (vector-set! ___v 59 (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 (if (and (equal? $1 "!") (equal? $2 "important")) "!important" (string-append $1 " " $2)) ___k)))) (vector-set! ___v 60 (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 61 (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 62 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 20 ___goto-table "" ___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) 20 ___goto-table "" ___k)))) (vector-set! ___v 64 (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 65 (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 66 (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 67 (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 68 (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 69 (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 70 (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 71 (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 72 (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 73 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 21 ___goto-table "=" ___k)))) (vector-set! ___v 74 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 21 ___goto-table "~=" ___k)))) (vector-set! ___v 75 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 21 ___goto-table "|=" ___k)))) (vector-set! ___v 76 (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 $1 ___k)))) (vector-set! ___v 77 (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) 21 ___goto-table $1 ___k)))) (vector-set! ___v 78 (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) 21 ___goto-table $1 ___k)))) (vector-set! ___v 79 (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) 21 ___goto-table $1 ___k)))) (vector-set! ___v 80 (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 (list) ___k)))) (vector-set! ___v 81 (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) 21 ___goto-table (list) ___k)))) (vector-set! ___v 82 (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) 21 ___goto-table $2 ___k)))) (vector-set! ___v 83 (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) 21 ___goto-table $3 ___k)))) (vector-set! ___v 84 (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 "[]" ___k)))) (vector-set! ___v 85 (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) 21 ___goto-table "[]" ___k)))) (vector-set! ___v 86 (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) 21 ___goto-table (string-append "[" (apply string-append $2) "]") ___k)))) (vector-set! ___v 87 (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) 21 ___goto-table (string-append "[" (apply string-append $3) "]") ___k)))) (vector-set! ___v 88 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 22 ___goto-table $1 ___k)))) (vector-set! ___v 89 (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 $1 ___k)))) (vector-set! ___v 90 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 23 ___goto-table (list $1) ___k)))) (vector-set! ___v 91 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 23 ___goto-table (null-merge $1 $2) ___k)))) (vector-set! ___v 92 (lambda (___stack ___sp ___goto-table ___k) (let* (($1 (vector-ref ___stack (- ___sp 1)))) (___push ___stack (- ___sp 2) 24 ___goto-table (list) ___k)))) (vector-set! ___v 93 (lambda (___stack ___sp ___goto-table ___k) (let* (($2 (vector-ref ___stack (- ___sp 1))) ($1 (vector-ref ___stack (- ___sp 3)))) (___push ___stack (- ___sp 4) 24 ___goto-table (list) ___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)))))))))))