Skip to content

Commit

Permalink
migrate the island/tolerant library to Rascal
Browse files Browse the repository at this point in the history
  • Loading branch information
grammarware committed Jan 21, 2013
1 parent 12d0dbe commit 470227f
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 7 deletions.
12 changes: 7 additions & 5 deletions shared/rascal/src/demo/IslandBoolean.rsc
Expand Up @@ -12,6 +12,7 @@ import export::BNF;
import export::XPNF;
import mutate::Mutations;
import IO;
import lib::Tolerant;

public void ppAll()
{
Expand All @@ -22,12 +23,13 @@ public void go()
{
g1 = readBGF(|home:///mutatedF2.bgf|);
g1.roots = ["compilation-unit"];
g2 = vtransform(addlex,g1);
g3 = mutate([skeletonise],g2);
g2 = transform(importG(lib::Tolerant::library.prods),g1).g;
g3 = vtransform(addlex,g2);
g4 = mutate([skeletonise],g3);
//println(pp(subgrammar(g2,"compilation-unit")));
println(pp(g3));
for (p:production(_,"namespace-body",_)<- g3.prods)
iprintln(p);
println(pp(g4));
//for (p:production(_,"namespace-body",_)<- g3.prods)
// iprintln(p);
}

public void gold()
Expand Down
1 change: 1 addition & 0 deletions shared/rascal/src/lib/Rascalware.rsc
Expand Up @@ -90,3 +90,4 @@ public int levenshtein(str x, str y)
return prow[size(prow)-1];
}

public list[&T] toList(set[&T] xs) = Set::toList(xs);
24 changes: 24 additions & 0 deletions shared/rascal/src/lib/Tolerant.rsc
@@ -0,0 +1,24 @@
@contributor{Vadim Zaytsev - vadim@grammarware.net - SWAT, CWI}
module lib::Tolerant

import syntax::BGF;

BGFGrammar library = grammar([],
[
production("","not-semicolon",star(not(terminal(";")))),
production("","not-right-square-bracket",star(not(terminal("]")))),
production("","not-left-curly",star(not(terminal("{")))),
production("","not-curly",star(not(choice([terminal("{"),terminal("}")])))),
production("","not-whitespace",star(not(choice([terminal(" "),terminal("\t")])))),
production("","balanced-curlies",
sequence([
terminal("{"),
star(choice([
nonterminal("balanced-curlies"),
nonterminal("not-curly")
])),
terminal("}")
])
)
]
);
4 changes: 2 additions & 2 deletions shared/rascal/src/transform/library/Productions.rsc
Expand Up @@ -57,9 +57,9 @@ XBGFResult runImportG(list[BGFProduction] ps1, BGFGrammar g)
defs12 = defs1 & definedNs(g.prods);
du12 = defs1 & usedNs(g.prods);
if (!isEmpty(defs12))
return <problemProds("Import clashes with existing definitions", defs12),g>;
return <problemStrs("Import clashes with existing definitions", toList(defs12)),g>;
if (!isEmpty(du12))
return <problemProds("Import clashes with existing definitions", du12),g>;
return <problemStrs("Import clashes with existing definitions", toList(du12)),g>;
return <ok(),grammar(g.roots, ps1 + g.prods)>;
}

Expand Down

0 comments on commit 470227f

Please sign in to comment.