小编Sat*_*dhu的帖子

以点文件的形式生成 AST

我正在使用 ANTLR4 生成 java 源代码的 AST,但我不得不转向 ANTLR3,因为我没有得到太多帮助和文档,而且确实很难继续。我设法生成 AST,但不是以可视格式生成。然后我遇到了一个很棒的答案 ,我确实能够在 DOT 文件中生成 AST,但有一个小问题。

我的代码:

import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.ANTLRFileStream;
import org.antlr.runtime.tree.CommonTree;
import org.antlr.runtime.tree.DOTTreeGenerator;
import org.antlr.stringtemplate.StringTemplate;

class Main {

        public static void main(String[] args) throws Exception {
            parseFile("/home/satnam-sandhu/Workstation/ASTGenerator/resource/java/Blabla.java");
        }

    public static void parseFile(String f)throws Exception {

            JavaLexer lexer = new JavaLexer(new ANTLRFileStream(f));
            CommonTokenStream tokens = new CommonTokenStream(lexer);
            JavaParser parser = new JavaParser(tokens);
            CommonTree tree = (CommonTree)parser.compilationUnit().getTree();
            DOTTreeGenerator gen = new DOTTreeGenerator();
            StringTemplate st = gen.toDOT(tree);
            System.out.println(st);

    }

}
Run Code Online (Sandbox Code Playgroud)

我正在使用 gradle,所以我通过以下方式构建项目:

gradle clean …
Run Code Online (Sandbox Code Playgroud)

java dot abstract-syntax-tree antlr3

3
推荐指数
1
解决办法
2337
查看次数

如何在Chrome中为WebRTC调用者设置远程描述而不会出现错误?

我希望逻辑上没有缺陷。

步骤1:呼叫者创建报价

步骤2:呼叫者设置localDescription

步骤3:呼叫者将描述发送给被呼叫者

// ------------------------------------------------ ------ //

步骤4:被叫方收到要约集的远程描述

步骤5:被叫方创建答案

步骤6:被叫方设置本地描述

步骤7:被呼叫者将说明发送给呼叫者

// ------------------------------------------------ ------ //

步骤8:呼叫者收到答案并设置远程描述

这是上面的代码

const socket = io();
const constraints = {
  audio: true,
  video: true
};
const configuration = {
  iceServers: [{
    "url": "stun:23.21.150.121"
  }, {
    "url": "stun:stun.l.google.com:19302"
  }]
};

const selfView = $('#selfView')[0];
const remoteView = $('#remoteView')[0];

var pc = new RTCPeerConnection(configuration);

pc.onicecandidate = ({
  candidate
}) => {
  socket.emit('message', {
    to: $('#remote').val(),
    candidate: candidate
  }); …
Run Code Online (Sandbox Code Playgroud)

javascript sdp webrtc peer-connection rtcpeerconnection

3
推荐指数
1
解决办法
2051
查看次数

使用 jdi 构建一个简单的调试器来设置断点并检索变量的值

我正在寻找使用java debug interface构建调试器。
我的目标是设置断点并获取变量的值。
我发现这个答案接近我正在寻找的答案,我知道我必须使用以下接口:- VirtualMachineManager, LaunchingConnector, ClassPrepareEvent, ClassPrepareRequest. 但我无法弄清楚,如何在特定行设置断点并获取变量的值或应以何种顺序使用接口。

例如在下面的代码中,我如何继续运行它以jdi获取变量的值S

import java.io.*;

class Hello {

  public static void main(String args[]) {
    String S = "Hello World";
    int a = 12;
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在考虑在线a = 12或在方法结束时设置调试点, main以便我获得S

java debugging jdi

2
推荐指数
1
解决办法
1732
查看次数