package org.erlide.engine.internal.services.parsing; import java.util.List; import org.erlide.engine.services.parsing.SimpleParserService; import org.erlide.runtime.rpc.IOtpRpc; import org.erlide.runtime.rpc.RpcResult; import com.ericsson.otp.erlang.OtpErlangList; import com.ericsson.otp.erlang.OtpErlangObject; import com.google.common.collect.Lists; public class ErlideParser implements SimpleParserService { private final IOtpRpc backend; public ErlideParser(final IOtpRpc backend) { this.backend = backend; } @Override public List<OtpErlangObject> parse(final String s) { final RpcResult res = backend.call_noexception("erlide_parse", "consult", "b", s); if (res.isOk()) { final OtpErlangObject val = res.getValue(); if (val instanceof OtpErlangList) { return Lists.newArrayList(((OtpErlangList) val).elements()); } } return Lists.newArrayList(); } }