Skip to content
Snippets Groups Projects
Commit 37dbc0cb authored by silvergl's avatar silvergl
Browse files

libs edited

parent 4f8ff529
No related branches found
No related tags found
No related merge requests found
Showing
with 3 additions and 208 deletions
No preview for this file type
No preview for this file type
File added
File deleted
File deleted
......@@ -14,7 +14,7 @@ mainClassName='Dummykernel.DummyMain'
repositories {
flatDir{
dirs 'build/libs'
dirs '/libs'
}
// Use jcenter for resolving dependencies.
// You can declare any Maven/Ivy/file repository here.
......@@ -26,7 +26,7 @@ repositories {
}
dependencies {
compile files('build/libs/org.xtext.example.mydsl2-1.0.0-SNAPSHOT.jar')
compile files('libs/org.xtext.example.mydsl2-1.0.0-SNAPSHOT.jar')
compile group: 'io.github.spencerpark', name: 'jupyter-jvm-basekernel', version: '2.3.0'
compile group: 'com.google.inject', name:'guice', version:'4.0'
// This dependency is exported to consumers, that is to say found on their compile classpath.
......
File added
package Dummykernel;
import Xtextgenerator.MyXtextGenerator;
import io.github.spencerpark.jupyter.kernel.BaseKernel;
import io.github.spencerpark.jupyter.kernel.LanguageInfo;
import io.github.spencerpark.jupyter.kernel.display.DisplayData;
......@@ -9,40 +8,12 @@ import io.github.spencerpark.jupyter.kernel.magic.registry.Magics;
public class DummyKernel extends BaseKernel {
private static final DummyKernel kernel = new DummyKernel();
// private static final NashornScriptEngineFactory NASHORN_ENGINE_FACTORY = new
// NashornScriptEngineFactory();
/*
* private static final SimpleAutoCompleter autoCompleter =
* SimpleAutoCompleter.builder().preferLong() // Keywords from a great poem at
* https://stackoverflow.com/a/12114140 .withKeywords("let", "this", "long", "package", "float")
* .withKeywords("goto", "private", "class", "if", "short") .withKeywords("while", "protected",
* "with", "debugger", "case") .withKeywords("continue", "volatile", "interface")
* .withKeywords("instanceof", "super", "synchronized", "throw") .withKeywords("extends",
* "final", "export", "throws").withKeywords("try", "import", "double", "enum")
* .withKeywords("false", "boolean", "abstract", "function") .withKeywords("implements",
* "typeof", "transient", "break").withKeywords("void", "static", "default", "do")
* .withKeywords("switch", "int", "native", "new").withKeywords("else", "delete", "null",
* "public", "var") .withKeywords("in", "return", "for", "const", "true",
* "char").withKeywords("finally", "catch", "byte") .build();
*
* private static final CharPredicate idChar = CharPredicate.builder().inRange('a',
* 'z').inRange('A', 'Z').match('_') .build();
*/
// private final ScriptEngine engine;
private final LanguageInfo languageInfo;
private final Magics magics;
private final Magicsprocessor mgcp;
/*
* public DummyKernel() { this("-scripting"); }
*/
/*
* public DummyKernel(final String... args) {
* this(DummyKernel.NASHORN_ENGINE_FACTORY.getScriptEngine(args)); }
*/
private DummyKernel() {
this.magics = new Magics();
this.mgcp = new Magicsprocessor();
......@@ -73,10 +44,6 @@ public class DummyKernel extends BaseKernel {
return expr;
}
private Object evalCode(final String code) {
return MyXtextGenerator.generate(code);
}
@Override
public DisplayData eval(final String expr) throws Exception {
Object result = this.evalRaw(expr);
......
......@@ -33,8 +33,6 @@ public class DummyMain {
envEngineArgs = "-scripting";
}
String[] engineArgs = envEngineArgs.split(" ");
DummyKernel kernel = DummyKernel.getInstance();
kernel.becomeHandlerForConnection(connection);
......
package Dummykernel;
import java.util.Base64;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import Xtextgenerator.MyXtextGenerator;
import io.github.spencerpark.jupyter.kernel.magic.CellMagicParseContext;
import io.github.spencerpark.jupyter.kernel.magic.LineMagicParseContext;
import io.github.spencerpark.jupyter.kernel.magic.MagicParser;
import io.github.spencerpark.jupyter.kernel.magic.registry.Magics;
public class Magicsprocessor {
// private final DummyKernel kernel = DummyKernel.getInstance();
private static final Pattern UNESCAPED_QUOTE = Pattern.compile("(?<!\\\\)\"");
private final MagicParser parser;
......@@ -29,24 +22,7 @@ public class Magicsprocessor {
return this.eval(ctx);
}
return this.transformLineMagics(source);
}
public String transformLineMagics(final String source) {
return this.parser.transformLineMagics(source, ctx -> {
boolean inString = false;
Matcher m = Magicsprocessor.UNESCAPED_QUOTE.matcher(ctx.getLinePrefix());
while (m.find()) {
inString = !inString;
}
// If in a string literal, don't apply the magic, just use the original
if (inString) {
return ctx.getRaw();
}
return this.transformLineMagic(ctx);
});
return MyXtextGenerator.generate(source);
}
private String eval(final CellMagicParseContext ctx) {
......@@ -66,21 +42,4 @@ public class Magicsprocessor {
}
// Poor mans string escape
private String b64Transform(final String arg) {
String encoded = Base64.getEncoder().encodeToString(arg.getBytes());
return String.format("new String(Base64.getDecoder().decode(\"%s\"))", encoded);
}
private String transformLineMagic(final LineMagicParseContext ctx) {
return String.format("lineMagic(%s,List.of(%s));{};", this.b64Transform(ctx.getMagicCall().getName()),
ctx.getMagicCall().getArgs().stream().map(this::b64Transform).collect(Collectors.joining(",")));
}
private String transformCellMagic(final CellMagicParseContext ctx) {
return String.format("cellMagic(%s,List.of(%s),%s);{};", this.b64Transform(ctx.getMagicCall().getName()),
ctx.getMagicCall().getArgs().stream().map(this::b64Transform).collect(Collectors.joining(",")),
this.b64Transform(ctx.getMagicCall().getBody()));
}
}
package ScriptEngine;
import java.io.Reader;
import javax.script.AbstractScriptEngine;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptException;
import Xtextgenerator.MyXtextGenerator;
public class MyScriptEngine extends AbstractScriptEngine {
@Override
public Object eval(final String script, final ScriptContext context) throws ScriptException {
if ((script == null) || (context == null)) {
throw new NullPointerException();
}
String result = MyXtextGenerator.generate(script);
return result;
}
@Override
public Object eval(final Reader reader, final ScriptContext context) throws ScriptException {
// TODO Auto-generated method stub
return null;
}
@Override
public Bindings createBindings() {
// TODO Auto-generated method stub
return null;
}
@Override
public ScriptEngineFactory getFactory() {
// TODO Auto-generated method stub
return null;
}
}
package ScriptEngine;
import java.util.ArrayList;
import java.util.List;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;
public class MyScriptEngineFactory implements ScriptEngineFactory {
@Override
public String getEngineName() {
return "myDslEngine";
}
@Override
public String getEngineVersion() {
// TODO Auto-generated method stub
return "0.1";
}
@Override
public List<String> getExtensions() {
List<String> ext = new ArrayList();
ext.add("mydsl2");
return ext;
}
@Override
public List<String> getMimeTypes() {
List<String> ext = new ArrayList();
ext.add("text/mydsl2");
return ext;
}
@Override
public List<String> getNames() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getLanguageName() {
// TODO Auto-generated method stub
return "mysql";
}
@Override
public String getLanguageVersion() {
// TODO Auto-generated method stub
return "1.0";
}
@Override
public Object getParameter(final String key) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getMethodCallSyntax(final String obj, final String m, final String... args) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getOutputStatement(final String toDisplay) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getProgram(final String... statements) {
// TODO Auto-generated method stub
return null;
}
@Override
public ScriptEngine getScriptEngine() {
// TODO Auto-generated method stub
return new MyScriptEngine();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment