Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions forge/froglet/lang/bsl-lang-specific-checks.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -140,22 +140,22 @@
(define (check-node-expr-op-+ expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
(define loc (nodeinfo-loc (node-info expr-node)))
(raise-bsl-relational-error "+" expr-node loc "You may have meant to use the `add` predicate instead.")))
(raise-bsl-relational-error "+" expr-node loc "The `+` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant addition, use the `add` predicate instead.")))

(define (check-node-expr-op-- expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
(define loc (nodeinfo-loc (node-info expr-node)))
(raise-bsl-relational-error "-" expr-node loc "You may have meant to use the `subtract` predicate instead.")))
(raise-bsl-relational-error "-" expr-node loc "The `-` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant subtraction, use the `subtract` predicate instead.")))

(define (check-node-expr-op-& expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
(define loc (nodeinfo-loc (node-info expr-node)))
(raise-bsl-relational-error "&" expr-node loc)))
(raise-bsl-relational-error "&" expr-node loc "The `&` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant logical-and, use `and` or `&&` instead.")))

(define (check-node-expr-op--> expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
(define loc (nodeinfo-loc (node-info expr-node)))
(raise-bsl-error "Use of -> in expressions is not allowed in forge/bsl" expr-node loc)))
(raise-bsl-error "The `->` operator is only used for field declaration in Froglet." expr-node loc)))

(define (check-node-expr-op-join expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
Expand All @@ -170,17 +170,17 @@
(define (check-node-expr-op-^ expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
(define loc (nodeinfo-loc (node-info expr-node)))
(raise-bsl-relational-error "^" expr-node loc)))
(raise-bsl-relational-error "^" expr-node loc "The `^` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant exclusive-or, use the `xor` operator instead.")))

(define (check-node-expr-op-* expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
(define loc (nodeinfo-loc (node-info expr-node)))
(raise-bsl-relational-error "*" expr-node loc)))
(raise-bsl-relational-error "*" expr-node loc "The `*` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant multiplication, use the `multiply` predicate instead.")))

(define (check-node-expr-op-~ expr-node node-type child-types)
(when (eq? (nodeinfo-lang (node-info expr-node)) LANG_ID)
(define loc (nodeinfo-loc (node-info expr-node)))
(raise-bsl-relational-error "~~" expr-node loc)))
(raise-bsl-relational-error "~~" expr-node loc "The `~` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant logical-negation, use `not` or '!' instead.")))

(define bsl-checker-hash (make-hash))
(hash-set! bsl-checker-hash node/formula/multiplicity check-formula-mult)
Expand Down Expand Up @@ -259,38 +259,38 @@
(define (check-args-node-expr-op--> expr-args info)
(when (eq? (nodeinfo-lang info) LANG_ID)
(define loc (nodeinfo-loc info))
(raise-bsl-error-deparsed-str "Direct use of -> in a formula is not allowed in Froglet" (format "(~a->~a)" (deparse (first expr-args)) (deparse (second expr-args))) loc)))
(raise-bsl-error-deparsed-str "The `->` operator is only used for field declaration in Froglet." (format "(~a->~a)" (deparse (first expr-args)) (deparse (second expr-args))) loc)))

(define (check-args-node-expr-op-+ expr-args info)
(when (eq? (nodeinfo-lang info) LANG_ID)
(define loc (nodeinfo-loc info))
(raise-bsl-relational-error-expr-args "+" expr-args loc "You may have meant to use the `add` predicate instead.")))
(raise-bsl-relational-error-expr-args "+" expr-args loc "The `+` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant addition, use the `add` predicate instead.")))


(define (check-args-node-expr-op-- expr-args info)
(when (eq? (nodeinfo-lang info) LANG_ID)
(define loc (nodeinfo-loc info))
(raise-bsl-relational-error-expr-args "-" expr-args loc "You may have meant to use the `subtract` predicate instead.")))
(raise-bsl-relational-error-expr-args "-" expr-args loc "The `-` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant subtraction, use the `subtract` predicate instead.")))

(define (check-args-node-expr-op-& expr-args info)
(when (eq? (nodeinfo-lang info) LANG_ID)
(define loc (nodeinfo-loc info))
(raise-bsl-relational-error-expr-args "&" expr-args loc)))
(raise-bsl-relational-error-expr-args "&" expr-args loc "The `&` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant logical-and, use `and` or `&&` instead.")))

(define (check-args-node-expr-op-^ expr-args info)
(when (eq? (nodeinfo-lang info) LANG_ID)
(define loc (nodeinfo-loc info))
(raise-bsl-relational-error-expr-args "^" expr-args loc)))
(raise-bsl-relational-error-expr-args "^" expr-args loc "The `^` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant exclusive-or, use the `xor` operator instead.")))

(define (check-args-node-expr-op-* expr-args info)
(when (eq? (nodeinfo-lang info) LANG_ID)
(define loc (nodeinfo-loc info))
(raise-bsl-relational-error-expr-args "*" expr-args loc)))
(raise-bsl-relational-error-expr-args "*" expr-args loc "The `*` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant multiplication, use the `multiply` predicate instead.")))

(define (check-args-node-expr-op-~ expr-args info)
(when (eq? (nodeinfo-lang info) LANG_ID)
(define loc (nodeinfo-loc info))
(raise-bsl-relational-error-expr-args "~" expr-args loc)))
(raise-bsl-relational-error-expr-args "~" expr-args loc "The `~` operator is not used in Froglet, but is reserved for use in other Forge languages. If you meant logical-negation, use `not` or '!' instead.")))

; Prevent the forge/core arity error from appearing, since it breaks closure
(define (check-args-node-formula-op-= expr-args info)
Expand Down
Loading