diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f7647a0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,29 @@ +on: [push, pull_request] +name: CI +jobs: + build: + name: "Build on Racket '${{ matrix.racket-version }}' (${{ matrix.racket-variant }})" + runs-on: ubuntu-latest + continue-on-error: ${{ matrix.experimental || false }} + strategy: + fail-fast: false + matrix: + racket-version: ["stable", "current"] + racket-variant: ["BC", "CS"] + include: + - racket-version: current + experimental: true + steps: + - uses: actions/checkout@v4 + - uses: Bogdanp/setup-racket@v1.12 + with: + architecture: x64 + distribution: full + variant: ${{ matrix.racket-variant }} + version: ${{ matrix.racket-version }} + - name: Installing uahgi2 and its dependencies + run: raco pkg install --no-docs --auto --name uahgi2 + - name: Compiling uahgi2 and building its docs + run: raco setup --check-pkg-deps --unused-pkg-deps uahgi2 + - name: Testing uahgi2 + run: raco test -x -p uahgi2 diff --git a/expander.rkt b/expander.rkt index 2c87707..df5ea50 100644 --- a/expander.rkt +++ b/expander.rkt @@ -1,6 +1,4 @@ #lang br/quicklang -(require syntax/parse/define) - (define paperwidth #f) (define paperheight #f) (define (set x y) (set! x y)) @@ -21,14 +19,17 @@ (define-macro-cases u-expr [(u-expr (u-atom ITEM)) #'ITEM] [(u-expr (u-converting-num (u-number NUM))) #'NUM] - [(u-expr X) #'X]) + [(u-expr X) #'X]) (define-macro-cases u-sexp [(u-sexp (u-expr (u-atom (u-id "set"))) X Y) #'(set! X Y)] - [(u-sexp X Y) #'[X Y]] + ;[(u-sexp X Y) #'[X Y]] [(u-sexp REQ OPT ...) - #'(let ([head REQ]) - (eval `(,head OPT ...)))] + #'(let ([head REQ] + (namespace (current-namespace))) + (begin + (println (namespace-mapped-symbols namespace)) + ((namespace-variable-value head namespace) OPT ...)))] ) (define-macro (u-module-begin (u-program LINE ...))