小编Osc*_*Ryz的帖子

面向对象编程语言的AST(抽象语法树)是什么样的?

我正在阅读有关AST(抽象语法树)的内容,但我看到的所有示例都使用了以下表达式:

a + b * c 
Run Code Online (Sandbox Code Playgroud)

哪个可以用类似lispy的语法表示为:

(+ a (* b c) )
Run Code Online (Sandbox Code Playgroud)

这相当于:

  +
 / \
a   * 
   / \
  b   c
Run Code Online (Sandbox Code Playgroud)

我的问题是OOPL中一个类的AST会是什么样子?

我天真的尝试是为了这个Java代码:

 class Person { 
     String name;
     int    age;
     public String toString() { 
        return "name";
     }
 }
Run Code Online (Sandbox Code Playgroud)

方法是:

;Hand written
(classDeclaration Person 
     (varDeclaration String name)
     (varDeclaration int    age )
     (funcDeclaration String toString 
           (return "name")
     )
 )
Run Code Online (Sandbox Code Playgroud)

但我不太确定我对真正的AST代表有多近或多远.

这取决于我选择的语言.需要多少细节?这些"xyzDeclaraction"是否需要或可能如下:

 (Person (String name) (int age))
Run Code Online (Sandbox Code Playgroud)

在哪里可以看到实际编程语言的"真实"表示以了解更多信息.

java compiler-construction programming-languages abstract-syntax-tree

21
推荐指数
2
解决办法
6831
查看次数

Go怎么没有stackoverflows

我在本演讲中读到了http://golang.org/doc/ExpressivenessOfGo.pdf 第42页:

安全

- 没有堆栈溢出

这怎么可能?和/或Go如何避免这种情况?

stack-overflow stack memory-management language-design go

20
推荐指数
2
解决办法
3907
查看次数

如何在java中管理两个JRadioButtons,以便一次只能选择其中一个

如何在java中管理两个JRadioButtons,以便一次只能选择其中一个?java中是否有任何方法可以解决这个问题,或者您需要构建自己的逻辑?

java swing jradiobutton

19
推荐指数
2
解决办法
4万
查看次数

如何更新Xcode以安装"UNIX开发支持"?

我很久以前就安装了Xcode.

显然我没有检查"UNIX开发支持"复选框.

现在我想拥有它们但是当我点击安装时会出现这样的情况:

残

" UNIX开发支持"复选框已禁用

问:如何安装UNIX开发支持?有没有一种方法来运行一些脚本,从创建所有需要链接/Developer//usr/bin

编辑: 注意:这是旧的Xcode 3. Xcode 4的屏幕和工具名称不同("Unix命令行工具")

unix macos xcode xcode3.2

19
推荐指数
3
解决办法
2万
查看次数

我怎么能用Java压缩文件而不包括文件路径

例如,我想压缩存储在/Users/me/Desktop/image.jpg中的文件

我做了这个方法:

public static Boolean generateZipFile(ArrayList<String> sourcesFilenames, String destinationDir, String zipFilename){
  // Create a buffer for reading the files 
  byte[] buf = new byte[1024]; 

  try {
   // VER SI HAY QUE CREAR EL ROOT PATH
         boolean result = (new File(destinationDir)).mkdirs();

         String zipFullFilename = destinationDir + "/" + zipFilename ;

         System.out.println(result);

   // Create the ZIP file  
   ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFullFilename)); 
   // Compress the files 
   for (String filename: sourcesFilenames) { 
    FileInputStream in = new FileInputStream(filename); 
    // Add ZIP entry to …
Run Code Online (Sandbox Code Playgroud)

java zip java-io

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

如何匹配重复模式?

我想匹配:

some.name.separated.by.dots
Run Code Online (Sandbox Code Playgroud)

但我不知道怎么做.

我可以像这样匹配一个部分

 \w+\.
Run Code Online (Sandbox Code Playgroud)

怎么说"重复那个"

java regex

19
推荐指数
1
解决办法
5万
查看次数

使用ant运行NetBeans项目

我有一个使用Netbeans构建的示例代码.

它有一个build.xml文件,所以我下载了ant并尝试运行它.

我有这个错误信息:

...... nbproject\build-impl.xml:76: Platform is not correctly set up
Run Code Online (Sandbox Code Playgroud)

对于我所看到的,这可以通过"简单地"下载Netbeans并从那里运行样本来解决,但是......我不想安装它来运行10个文件样本.

是否有使用Java运行Netbeans项目的解决方法?什么是我必须修改的正确的.properties文件?

java ant netbeans sample

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

你使用断言吗?

这不是一个"问题"所以我正在制作CW.

assert
Run Code Online (Sandbox Code Playgroud)

关键字很棒!

它应该让你觉得你的自己对你编写的代码更有信心,但是,直到今天,当我创建一个小型测试类(<20行)时,我意识到自从它被引入以来从未使用它.

哎呀!我几乎没有使用记录器,这确实非常有用,但直到今天我才意识到我不使用断言.

你使用断言吗?如果不是,那是什么原因?

java assert assertions

18
推荐指数
4
解决办法
2759
查看次数

javascript/json日期文字

什么是JSON/JavaScript的日期文字(如果存在这样的东西?)

javascript json date literals

17
推荐指数
3
解决办法
8256
查看次数

使用String.split时转义逗号

我正在尝试执行一些超级简单的解析o日志文件,所以我使用这样的String.split方法:

String [] parts = input.split(",");
Run Code Online (Sandbox Code Playgroud)

并且非常适合输入:

a,b,c
Run Code Online (Sandbox Code Playgroud)

要么

type=simple, output=Hello, repeat=true 
Run Code Online (Sandbox Code Playgroud)

只是说些什么.

我怎么能逃脱逗号,所以它与中间逗号不匹配?

例如,如果我想在其中一个部分中包含逗号:

type=simple, output=Hello, world, repeate=true
Run Code Online (Sandbox Code Playgroud)

我想的是:

type=simple, output=Hello\, world, repeate=true
Run Code Online (Sandbox Code Playgroud)

但我不知道如何创建拆分以避免匹配逗号.

我试过了:

String [] parts = input.split("[^\,],");
Run Code Online (Sandbox Code Playgroud)

但是,嗯,不起作用.

java regex

17
推荐指数
2
解决办法
2万
查看次数