#! /bin/sh # -*-scheme-*- MES=${MES-$(dirname $0)/../src/mes} #export MES_ARENA=${MES_ARENA-40000} $MES $MES_FLAGS "$@" < $0 exit $? !# ;;; -*-scheme-*- ;;; Mes --- Maxwell Equations of Software ;;; Copyright © 2017 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of Mes. ;;; ;;; Mes is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; Mes is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Mes. If not, see . (cond-expand (guile (use-modules (system base pmatch)) ;;(include-from-path "mes/pmatch.scm") ;;(include-from-path "mes-0.scm") ;;(include-from-path "mes/test.mes") ) (mes (mes-use-module (mes test)) (mes-use-module (mes pmatch)))) (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) (pass-if-equal "pmatch" 0 (let ((o 0)) (pmatch o (_ o)))) (pass-if-equal "pmatch nyacc minimal" "main" (let* ((ast '(("main") PARAM-LIST)) (mets (pmatch ast (((,name) _) name)))) ;;(format (current-error-port) "mets: ~s\n" mets) mets)) (pass-if-equal "pmatch nyacc" "main" (let ((ast '(fctn-defn (decl-spec-list (type-spec (fixed-type "int"))) (ftn-declr (ident "main") (param-list (param-decl (decl-spec-list (type-spec (fixed-type "int"))) (param-declr (ident "argc"))) (param-decl (decl-spec-list (type-spec (fixed-type "char"))) (param-declr (ptr-declr (pointer) (array-of (ident "argv"))))))) (compd-stmt (block-item-list (if (gt (p-expr (ident "argc")) (p-expr (fixed "1"))) (return (p-expr (ident "argc")))) (return (p-expr (fixed "42")))))))) (pmatch ast ((fctn-defn _ (ftn-declr (ident ,name) _) _) name) (_ 'bla)))) (result 'report)