mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-10 11:42:51 -06:00
gfse: bug fix: avoid hickup when inhertiting from a missing concrete syntax
This commit is contained in:
@@ -1130,12 +1130,13 @@ function inherited_grammars(g) {
|
|||||||
// Load the available grammars once
|
// Load the available grammars once
|
||||||
var grammar_byname=cached_grammar_byname();
|
var grammar_byname=cached_grammar_byname();
|
||||||
var visited={};
|
var visited={};
|
||||||
|
function exists(g) { return g; }
|
||||||
// Then traverse the dependencies to collect all inherited grammars
|
// Then traverse the dependencies to collect all inherited grammars
|
||||||
function ihgs(g) {
|
function ihgs(g) {
|
||||||
if(visited[g.basename]) return []; // avoid cycles and diamonds
|
if(visited[g.basename]) return []; // avoid cycles and diamonds
|
||||||
else {
|
else {
|
||||||
visited[g.basename]=true;
|
visited[g.basename]=true;
|
||||||
var igs=(g.extends || []).map(grammar_byname)
|
var igs=(g.extends || []).map(grammar_byname).filter(exists);
|
||||||
var igss=igs.map(ihgs)
|
var igss=igs.map(ihgs)
|
||||||
for(var i in igss) igs=igs.concat(igss[i]);
|
for(var i in igss) igs=igs.concat(igss[i]);
|
||||||
return igs;
|
return igs;
|
||||||
|
|||||||
Reference in New Issue
Block a user