diff options
| author | hallgren <hallgren@chalmers.se> | 2012-02-27 17:18:05 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2012-02-27 17:18:05 +0000 |
| commit | 4441c957eafa2d107b11988a809f5c54ae97b9da (patch) | |
| tree | 79fc446b6efbe234eb8412aec681966ec9bc1bdf | |
| parent | c41974422f3dc460fcf8008a906adf49ba609019 (diff) | |
gfse: recognize Predef categories Int, Float and String
but don't show them in the startcat menu.
| -rw-r--r-- | src/www/gfse/editor.js | 6 | ||||
| -rw-r--r-- | src/www/gfse/gf_abs.js | 14 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/www/gfse/editor.js b/src/www/gfse/editor.js index 72999ce72..18782b91f 100644 --- a/src/www/gfse/editor.js +++ b/src/www/gfse/editor.js @@ -366,7 +366,7 @@ function draw_startcat(g) { function opt(cat) { return option(cat,cat); } var opts = g.extends && g.extends.length>0 ? [opt("-")] : []; var dc=defined_cats(g); - for(var cat in dc) opts.push(opt(cat)); + for(var cat in dc) if(dc[cat]!="Predef") opts.push(opt(cat)); var m = node("select",{},opts); m.value=startcat; m.onchange=function() { @@ -1096,7 +1096,9 @@ function draw_lins(g,ci) { function defined_cats(g) { return all_defined_cats(g,inherited_grammars(g)) } function defined_funs(g) { return all_defined_funs(g,inherited_gramamrs(g)) } -function inherited_cats(g) {return all_inherited_cats(inherited_grammars(g),{})} +function inherited_cats(g) { + return all_inherited_cats(inherited_grammars(g),predefined_cats()) +} function inherited_funs(g) {return all_inherited_funs(inherited_grammars(g),{})} function upload(g,cont) { 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; |
