use of org.erlide.util.erlang.OtpParserException in project erlide_eclipse by erlang.
the class ErlangProcess method addStackTrace.
private void addStackTrace(final OtpErlangTuple savedStackTrace) {
try {
final OtpBindings bind = OtpErlang.match("{saved_stacktrace, _,STrace}", savedStackTrace);
if (bind != null) {
final Collection<OtpErlangObject> trace = bind.getList("STrace");
for (final OtpErlangObject oframe : trace) {
final OtpErlangTuple frame = (OtpErlangTuple) oframe;
final OtpErlangAtom m = (OtpErlangAtom) frame.elementAt(0);
final OtpErlangAtom f = (OtpErlangAtom) frame.elementAt(1);
final OtpErlangLong a = (OtpErlangLong) frame.elementAt(2);
try {
stackFrames.add(new ErlangUninterpretedStackFrame(m.atomValue(), new ErlangFunction(f.atomValue(), a.intValue()), this, getDebugTarget()));
} catch (final OtpErlangRangeException e) {
ErlLogger.error(e);
}
}
}
} catch (final OtpParserException e1) {
// ignore
ErlLogger.error(e1);
} catch (final OtpErlangException e1) {
ErlLogger.error(e1);
}
}
use of org.erlide.util.erlang.OtpParserException in project erlide_eclipse by erlang.
the class ErlangDebugTarget method getProjectDirs.
private OtpErlangList getProjectDirs(final IProject project) {
final IErlModel model = ErlangEngine.getInstance().getModel();
final ErlangProjectProperties properties = model.findProject(project).getProperties();
final String ebin = properties.getOutputDir().toPortableString();
final Collection<IPath> srcs = properties.getSourceDirs();
try {
return (OtpErlangList) OtpErlang.format("[{ebin_dir, ~s}, {src_dirs, ~ls}]", ebin, srcs);
} catch (final OtpParserException e) {
ErlLogger.warn(e);
} catch (final SignatureException e) {
ErlLogger.warn(e);
}
return new OtpErlangList();
}
use of org.erlide.util.erlang.OtpParserException in project erlide_eclipse by erlang.
the class TestResultsView method formatTitle.
private String formatTitle(final OtpErlangObject value) {
try {
final OtpBindings b = OtpErlang.match("{D,S,C}", value);
final String suite = b.getAtom("S");
final String tcase = b.getAtom("C");
if (tcase.isEmpty()) {
return "suite " + suite;
}
return "suite " + suite + "; case " + tcase;
} catch (final OtpParserException e) {
} catch (final OtpErlangException e) {
}
return value.toString();
}
use of org.erlide.util.erlang.OtpParserException in project erlide_eclipse by erlang.
the class DebuggerEventFactory method parse.
public static DebuggerEvent parse(final OtpErlangObject message) {
// TODO More events from dbg_mon...
try {
OtpBindings b = OtpErlang.match("{started, Pid:p}", message);
if (b != null) {
return DebuggerEventFactory.buildStartedEvent(b);
}
b = OtpErlang.match("{terminated, Pid:p}", message);
if (b != null) {
return DebuggerEventFactory.buildTerminatedEvent(b);
}
b = OtpErlang.match("{int, Cmd}", message);
if (b != null) {
return DebuggerEventFactory.buildIntEvent(b);
}
b = OtpErlang.match("{attached, Pid:p}", message);
if (b != null) {
return DebuggerEventFactory.buildAttachedEvent(b);
}
b = OtpErlang.match("{Other:a, Cmd}", message);
if (b != null) {
return DebuggerEventFactory.buildUnknownEvent(message);
}
b = OtpErlang.match("{Meta:p, Event}", message);
if (b != null) {
return DebuggerEventFactory.buildMetaEvent(b);
}
} catch (final OtpParserException e) {
ErlLogger.error(e);
} catch (final OtpErlangException e) {
ErlLogger.error(e);
}
return new UnknownEvent(message);
}
use of org.erlide.util.erlang.OtpParserException in project erlide_eclipse by erlang.
the class IOServer method processRequest.
private OtpErlangObject processRequest(final OtpErlangPid from, final OtpErlangObject arequest) {
if (callback == null) {
return error;
}
OtpBindings b;
try {
if (arequest instanceof OtpErlangTuple) {
final OtpErlangTuple request = (OtpErlangTuple) arequest;
final String tag = ((OtpErlangAtom) request.elementAt(0)).atomValue();
if ("put_chars".equals(tag)) {
b = OtpErlang.match("{put_chars, Chars}", request);
if (b != null) {
return callback.putChars(from, IOEncoding.latin1, b.get("Chars"));
}
b = OtpErlang.match("{put_chars, Enc:a, Chars}", request);
if (b != null) {
final String enc = b.getAtom("Enc");
return callback.putChars(from, IOEncoding.valueOf(enc), b.get("Chars"));
}
b = OtpErlang.match("{put_chars, M:a, F:a, A}", request);
if (b != null) {
final String m = b.getAtom("M");
final String f = b.getAtom("F");
final Collection<OtpErlangObject> a = b.getList("A");
return callback.putChars(from, IOEncoding.latin1, m, f, a);
}
b = OtpErlang.match("{put_chars, Enc:a, M:a, F:a, A}", request);
if (b != null) {
final String enc = b.getAtom("Enc");
final String m = b.getAtom("M");
final String f = b.getAtom("F");
final Collection<OtpErlangObject> a = b.getList("A");
return callback.putChars(from, IOEncoding.valueOf(enc), m, f, a);
}
return error;
} else if ("get_until".equals(tag)) {
b = OtpErlang.match("{get_until, Prompt}", request);
if (b != null) {
return callback.getUntil(IOEncoding.latin1, b.get("Prompt"));
}
b = OtpErlang.match("{get_until, Prompt, N:i}", request);
if (b != null) {
final long n = b.getLong("N");
return callback.getUntil(IOEncoding.latin1, b.get("Prompt"), n);
}
b = OtpErlang.match("{get_until, Enc:a, Prompt}", request);
if (b != null) {
final String enc = b.getAtom("Enc");
return callback.getUntil(IOEncoding.valueOf(enc), b.get("Prompt"));
}
b = OtpErlang.match("{get_until, Enc:a, Prompt, N:i}", request);
if (b != null) {
final String enc = b.getAtom("Enc");
final long n = b.getLong("N");
return callback.getUntil(IOEncoding.valueOf(enc), b.get("Prompt"), n);
}
b = OtpErlang.match("{get_until, Prompt, M:a, F:a, A}", request);
if (b != null) {
final String m = b.getAtom("M");
final String f = b.getAtom("F");
final Collection<OtpErlangObject> a = b.getList("A");
return callback.getUntil(IOEncoding.latin1, b.get("Prompt"), m, f, a);
}
b = OtpErlang.match("{get_until, Enc: a, Prompt, M:a, F:a, A}", request);
if (b != null) {
final String enc = b.getAtom("Enc");
final String m = b.getAtom("M");
final String f = b.getAtom("F");
final Collection<OtpErlangObject> a = b.getList("A");
return callback.getUntil(IOEncoding.valueOf(enc), b.get("Prompt"), m, f, a);
}
} else if ("requests".equals(tag)) {
b = OtpErlang.match("{requests, Reqs:lx}", request);
if (b != null) {
final Collection<OtpErlangObject> reqs = b.getList("Reqs");
OtpErlangObject val = null;
for (final OtpErlangObject r : reqs) {
val = processRequest(from, r);
if (val.equals(error)) {
return error;
}
}
return val == null ? error : val;
}
} else if ("setopts".equals(tag)) {
b = OtpErlang.match("{setopts, Opts:lx}", request);
if (b != null) {
final Collection<OtpErlangObject> opts = b.getList("Opts");
return callback.setOpts(opts);
}
} else if ("get_geometry".equals(tag)) {
return OtpErlang.mkTuple(new OtpErlangAtom("error"), new OtpErlangAtom("enotsup"));
} else {
return error;
}
} else if (arequest instanceof OtpErlangAtom) {
final OtpErlangAtom tag = (OtpErlangAtom) arequest;
if ("getopts".equals(tag.atomValue())) {
return callback.getOpts();
}
return error;
} else {
return error;
}
} catch (final OtpParserException e) {
ErlLogger.error(e);
} catch (final OtpErlangException e) {
ErlLogger.error(e);
}
return error;
}
Aggregations