mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Condense the unsupported token gluing as per John's suggestion
This commit is contained in:
27
doc/errors/gluing.md
Normal file
27
doc/errors/gluing.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
## unsupported token gluing `foo + bar`
|
||||||
|
|
||||||
|
There was a problem in an expression using +, e.g. `foo + bar`.
|
||||||
|
This can be due to two causes, check which one applies in your case.
|
||||||
|
|
||||||
|
1. You are trying to use + on runtime arguments. Even if you are using
|
||||||
|
`foo + bar` in an oper, make sure that the oper isn't called in a
|
||||||
|
linearization that takes arguments. Both of the following are illegal:
|
||||||
|
|
||||||
|
lin Test foo bar = foo.s + bar.s -- explicit + in a lin
|
||||||
|
lin Test foo bar = opWithPlus foo bar -- the oper uses +
|
||||||
|
|
||||||
|
2. One of the arguments in `foo + bar` is a bound variable
|
||||||
|
from pattern matching a string, but the cases are non-exhaustive.
|
||||||
|
Example:
|
||||||
|
case "test" of {
|
||||||
|
x + "a" => x + "b" -- no applicable case for "test", so x = ???
|
||||||
|
} ;
|
||||||
|
|
||||||
|
You can fix this by adding a catch-all case in the end:
|
||||||
|
{ x + "a" => x + "b" ;
|
||||||
|
_ => "default case" } ;
|
||||||
|
|
||||||
|
3. If neither applies to your problem, submit a bug report and we
|
||||||
|
will update the error message and this documentation.
|
||||||
|
|
||||||
|
https://github.com/GrammaticalFramework/gf-core/issues
|
||||||
@@ -297,29 +297,10 @@ glue env (v1,v2) = glu v1 v2
|
|||||||
in error $ unlines
|
in error $ unlines
|
||||||
[originalMsg
|
[originalMsg
|
||||||
,""
|
,""
|
||||||
,"There was a problem in the expression `" ++ term ++ "`"
|
,"There was a problem in the expression `"++term++"`, either:"
|
||||||
,"This can be due to two causes, check which one applies in your case."
|
,"1) You are trying to use + on runtime arguments, possibly via an oper."
|
||||||
,""
|
,"2) One of the arguments in `"++term++"` is a bound variable from pattern matching a string, but the cases are non-exhaustive."
|
||||||
,"1) You are trying to use + on runtime arguments. Even if you are using"
|
,"For more help see https://github.com/GrammaticalFramework/gf-core/tree/master/doc/errors/gluing.md"
|
||||||
," `"++term++"` in an oper, make sure that the oper isn't called in a"
|
|
||||||
," linearization that takes arguments. Both of the following are illegal:"
|
|
||||||
,""
|
|
||||||
," lin Test foo bar = foo.s + bar.s <- explicit + in a lin"
|
|
||||||
," lin Test foo bar = opWithPlus foo bar <- the oper uses +"
|
|
||||||
,""
|
|
||||||
,"2) One of the arguments in `"++term++"` is a bound variable"
|
|
||||||
," from pattern matching a string, but the cases are non-exhaustive."
|
|
||||||
," Example:"
|
|
||||||
," case \"test\" of {"
|
|
||||||
," x + \"a\" => x + \"b\" <- no applicable case for \"test\", so x = ???"
|
|
||||||
," } ;"
|
|
||||||
,""
|
|
||||||
," You can fix this by adding a catch-all case in the end:"
|
|
||||||
," { x + \"a\" => x + \"b\" ;"
|
|
||||||
," _ => \"default case\" } ;"
|
|
||||||
,""
|
|
||||||
,"3) If neither applies, submit a bug report and we update the error message."
|
|
||||||
," https://github.com/GrammaticalFramework/gf-core/issues"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user