summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiyana <nliyanaam@smu.edu.sg>2020-11-10 16:57:33 +0800
committerLiyana <nliyanaam@smu.edu.sg>2020-11-10 16:57:33 +0800
commitac81b418d61e150376485a5956421e8e6967a651 (patch)
tree03e7e4e2055c3bc2681d8fc218f2fa2820938ce1 /src
parent7dc6717b5e95122a810d3b580981fc4ce0c9744b (diff)
Added readJSON error messages
Diffstat (limited to 'src')
-rw-r--r--src/compiler/SimpleEditor/JSON.hs19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/compiler/SimpleEditor/JSON.hs b/src/compiler/SimpleEditor/JSON.hs
index 8f607dc84..06586c5eb 100644
--- a/src/compiler/SimpleEditor/JSON.hs
+++ b/src/compiler/SimpleEditor/JSON.hs
@@ -9,14 +9,24 @@ instance JSON Grammar where
showJSON (Grammar name extends abstract concretes) =
makeObj ["basename".=name, "extends".=extends,
"abstract".=abstract, "concretes".=concretes]
+ readJSON = error "Grammar.readJSON intentionally not defined"
instance JSON Abstract where
showJSON (Abstract startcat cats funs) =
makeObj ["startcat".=startcat, "cats".=cats, "funs".=funs]
+ readJSON = error "Abstract.readJSON intentionally not defined"
-instance JSON Fun where showJSON (Fun name typ) = signature name typ
-instance JSON Param where showJSON (Param name rhs) = definition name rhs
-instance JSON Oper where showJSON (Oper name rhs) = definition name rhs
+instance JSON Fun where
+ showJSON (Fun name typ) = signature name typ
+ readJSON = error "Fun.readJSON intentionally not defined"
+
+instance JSON Param where
+ showJSON (Param name rhs) = definition name rhs
+ readJSON = error "Param.readJSON intentionally not defined"
+
+instance JSON Oper where
+ showJSON (Oper name rhs) = definition name rhs
+ readJSON = error "Oper.readJSON intentionally not defined"
signature name typ = makeObj ["name".=name,"type".=typ]
definition name rhs = makeObj ["name".=name,"rhs".=rhs]
@@ -26,12 +36,15 @@ instance JSON Concrete where
makeObj ["langcode".=langcode, "opens".=opens,
"params".=params, "opers".=opers,
"lincats".=lincats, "lins".=lins]
+ readJSON = error "Concrete.readJSON intentionally not defined"
instance JSON Lincat where
showJSON (Lincat cat lintype) = makeObj ["cat".=cat, "type".=lintype]
+ readJSON = error "Lincat.readJSON intentionally not defined"
instance JSON Lin where
showJSON (Lin fun args lin) = makeObj ["fun".=fun, "args".=args, "lin".=lin]
+ readJSON = error "Lin.readJSON intentionally not defined"
infix 1 .=
name .= v = (name,showJSON v)