summaryrefslogtreecommitdiff
path: root/src/www/gfse/gf_abs.js
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-02-27 17:18:05 +0000
committerhallgren <hallgren@chalmers.se>2012-02-27 17:18:05 +0000
commit4441c957eafa2d107b11988a809f5c54ae97b9da (patch)
tree79fc446b6efbe234eb8412aec681966ec9bc1bdf /src/www/gfse/gf_abs.js
parentc41974422f3dc460fcf8008a906adf49ba609019 (diff)
gfse: recognize Predef categories Int, Float and String
but don't show them in the startcat menu.
Diffstat (limited to 'src/www/gfse/gf_abs.js')
-rw-r--r--src/www/gfse/gf_abs.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/www/gfse/gf_abs.js b/src/www/gfse/gf_abs.js
index 2530a20db..e49837b7a 100644
--- a/src/www/gfse/gf_abs.js
+++ b/src/www/gfse/gf_abs.js
@@ -29,18 +29,24 @@ type Lhs = String -- name and type of oper,
type Term = String -- arbitrary GF term (not parsed by the editor)
*/
-// locally_defined_cats :: Grammar -> {Cat=>Bool} -> {Cat=>Bool} // destr upd
+// locally_defined_cats :: Grammar -> {Cat=>ModId} -> {Cat=>ModId} // destr upd
function locally_defined_cats(g,dc) {
with(g.abstract)
for(var i in cats) dc[cats[i]]=g.basename;
return dc;
}
-// all_defined_cats :: Grammar -> [Grammar] -> {Cat=>Bool}
+// predefined_cats :: () -> {Cat=>ModId}
+function predefined_cats() {
+ var pd = "Predef"
+ return { "Int":pd, "Float":pd, "String":pd}
+}
+
+// all_defined_cats :: Grammar -> [Grammar] -> {Cat=>ModId}
function all_defined_cats(g,igs) {
- return all_inherited_cats(igs,locally_defined_cats(g,{}))
+ return all_inherited_cats(igs,locally_defined_cats(g,predefined_cats()))
}
-// all_inherited_cats :: [Grammar] -> {Cat=>Bool} -> {Cat=>Bool} // destr upd
+// all_inherited_cats :: [Grammar] -> {Cat=>ModId} -> {Cat=>ModId} // destr upd
function all_inherited_cats(igs,dc) {
for(var i in igs) dc=locally_defined_cats(igs[i],dc)
return dc;