PasteRack.org | ||
Paste # 10495 | ||
2025-02-19 18:57:09 | ||
Fork as a new paste. | ||
Paste viewed 62 times. | ||
Tweet | ||
Embed: | ||
#lang racket (require (for-syntax syntax/parse) parser-tools/lex (prefix-in : parser-tools/lex-sre) megaparsack megaparsack/parser-tools/lex rackunit ) (define-syntax (check-parse stx) (syntax-parse stx [(_ parser str check-expr) (syntax/loc #'str (check-equal? (parse-result! (parse-tokens parser (lex str) )) check-expr ))])) (define-tokens simple [IDENTIFIER]) (define-empty-tokens simple* [EOF]) (define-lex-abbrevs (lower-letter (:/ "a" "z")) (upper-letter (:/ #\A #\Z)) (letter (:or lower-letter upper-letter )) (digit (:/ "0" "9")) ) (define syntax-lexer (lexer-src-pos [(eof) eof] [(:: letter (:* letter digit #\_ #\-)) (token-IDENTIFIER (string->symbol lexeme))] )) (define (lex str) (define in (open-input-string str)) (port-count-lines! in) (let loop ([syntax-v (syntax-lexer in)]) (let ([tok (position-token-token syntax-v)]) (cond [(eof-object? tok) '()] [else (cons syntax-v (loop (syntax-lexer in)))] )))) (define identifier/p (syntax/p (token/p 'IDENTIFIER))) (check-parse identifier/p "asdf" (datum->syntax #f 'asdf))
=>
standard-module-name-resolver: collection not found for module path: megaparsack collection: "megaparsack" in collection directories: /home/pasterack/.local/share/racket/8.8/collects /home/pasterack/racket88/collects/ ... [179 additional linked and package directories] context...: /home/pasterack/racket88/collects/racket/require-transform.rkt:266:2: expand-import /home/pasterack/racket88/collects/racket/private/reqprov.rkt:648:16 /home/pasterack/racket88/collects/racket/private/reqprov.rkt:646:2: filter-by-mode /home/pasterack/racket88/collects/racket/require-transform.rkt:266:2: expand-import /home/pasterack/racket88/collects/racket/private/reqprov.rkt:287:21: try-next /home/pasterack/racket88/collects/racket/private/reqprov.rkt:401:21: try-next /home/pasterack/racket88/collects/racket/private/reqprov.rkt:258:2 /home/pasterack/racket88/collects/syntax/wrap-modbeg.rkt:46:4 /home/pasterack/racket88/share/pkgs/scribble-lib/scribble/run.rkt:175:26: go .../private/map.rkt:40:19: loop .../racket/cmdline.rkt:191:51 body of "/home/pasterack/racket88/share/pkgs/scribble-lib/scribble/run.rkt"