小编Joe*_*Joe的帖子

在xtext中查看解析树/节点模型/ AST

我正在使用xtext为特定语言生成编辑器.当我使用编辑器作为我的新语言时,它具有所有可爱的xtext功能,如代码完成和着色等.我希望能够做的是在我的编辑器中可视化文本的结构.

我知道xtext有一个内部AST和一个解析树(我知道他们称之为"节点模型") - 有没有可视化这棵树的方法?

abstract-syntax-tree xtext

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

LLVM/clang输出到MIPS,但不在SPIM中工作

给定文件

#include <stdio.h>

int main() {
      printf("hello world\n");
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

我可以使用命令

clang -emit-llvm hello.c -c -o hello.bc
llc hello.bc -march=mipsel -relocation-model=static -o hello.s
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试在可靠的SPIM模拟器中运行MIPS时,我发现SPIM对象几乎每一行都会产生一个看起来像MIPS代码的好处(放在下面,以避免分解文本).不仅是'.Section .mdebug.abi32'行,而且还有'.cfi*'形式的任何一行 - 甚至更令人困惑(因为它看起来像MIPS给我......)行'lui $ 2,%hi( __gnu_local_gp)"被反对.

我正在寻找有关SPIM和LLVM应对的MIPS的不同风格的一些信息,或者有人提供我可以运行的MIPS模拟器的示例,该模拟器接受LLVM正在生成的MIPS代码.

    .Section .mdebug.abi32
    .previous
    .file   "hello.bc"
    .text
    .globl  main
    .align  2
    .type   main,@function
    .set    nomips16                # @main
    .ent    main
main:
    .cfi_startproc
    .frame  $sp,32,$ra
    .mask   0x80000000,-4
    .fmask  0x00000000,0
    .set    noreorder
    .set    nomacro
# BB#0:                                 # %entry
    addiu   $sp, $sp, -32
$tmp2:
    .cfi_def_cfa_offset 32
    sw  $ra, 28($sp)            # 4-byte …
Run Code Online (Sandbox Code Playgroud)

simulator mips llvm clang spim

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

makefile缺少分隔符

我有一个makefile(由第三方提供),它给出了以下错误

Makefile:108: *** missing separator.  Stop.
Run Code Online (Sandbox Code Playgroud)

有问题的行是以下if语句....任何想法?我尝试过用空格替换各种标签,而且根本没有太远...

if have_sdl
        libiulib_a_SOURCES += $(srcdir)/utils/dgraphics.cc
        libiulib_a_SOURCES += $(srcdir)/utils/SDL_lines.cc
        include_HEADERS += $(srcdir)/utils/SDL_lines.h
else
        libiulib_a_SOURCES += $(srcdir)/utils/dgraphics_nosdl.cc
endif
Run Code Online (Sandbox Code Playgroud)

makefile compilation

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

Java中的屏幕捕获无法捕获整个屏幕

我有一小段代码用于跟踪时间 - 很简单,它每隔四分钟拍摄一次我的桌面照片,以便稍后我可以回过头来看看我白天做的事情 - 它很棒,除非我连接到外接显示器 - 这个代码只需要我的笔记本电脑屏幕的屏幕截图,而不是我正在使用的更大的外部显示器 - 任何想法如何更改代码?我正在运行OSX,以防相关......

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;

class ScreenCapture {
    public static void main(String args[]) throws
        AWTException, IOException {
            // capture the whole screen
int i=1000;
            while(true){
i++; 
                BufferedImage screencapture = new Robot().createScreenCapture(
                        new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );

                // Save as JPEG
                File file = new File("screencapture"+i+".jpg");
                ImageIO.write(screencapture, "jpg", file);
try{
Thread.sleep(60*4*1000);
}
catch(Exception e){
e.printStackTrace();
}

            }
        }
}
Run Code Online (Sandbox Code Playgroud)

根据给出的解决方案,我做了一些改进,感兴趣的代码在https://codereview.stackexchange.com/questions/10783/java-screengrab进行代码审查.

java macos screen awt awtrobot

4
推荐指数
1
解决办法
1422
查看次数

更改 Chartjs 中的 Y 轴单位

我觉得这是一个记录不足的功能,但我承认我正在浏览它的可能性要大得多。

我有一个 charjs 对象:

<body>
    <div id="container" style="width: 75%;">
        <canvas id="canvas"></canvas>
    </div>
    <script>
    weekdays=["Monday", "Tuesday", "Wednesday", "Thurday", "Friday", "Saturday", "Sunday", "Monday"]
    var d=new Date()
        var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

        var randomScalingFactor = function() {
            return (Math.random() > 0.5 ? 1.0 : 0) * Math.round(Math.random() * 100);
        };

        var barChartData = {
           labels: [weekdays[d.getDay()], weekdays[d.getDay()-6], weekdays[d.getDay()-5], weekdays[d.getDay()-4], weekdays[d.getDay()-3], weekdays[d.getDay()-2],weekdays[d.getDay()-1]    ],
            datasets: [{
                label: 'Logged Time',
                backgroundColor: "rgba(220,220,220,0.5)",
                data: sessions
            }
            ] …
Run Code Online (Sandbox Code Playgroud)

chart.js

4
推荐指数
1
解决办法
5203
查看次数

日食菜单中的'Visiblewhen'.希望菜单仅针对特定文件扩展名显示

编辑重述问题和我需要的地方:

我现在把问题简化为一个非常小的例子:我有一个带菜单的eclipse插件.它看起来像这样:

在此输入图像描述

我希望该菜单仅在查看特定文件扩展名的文件时出现(假设本例中为.txt).

使用Greg的答案我有以下plugin.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
         <menu
               id="ARTful.menus.sampleMenu"
               label="Hide Me"
               mnemonic="M">
            <command
                  commandId="ArtEditor.command.format"
                  id="ARTful.menus.sampleCommand"
                  mnemonic="S"
                  tooltip="Hello!">
            </command>

             <visibleWhen
       checkEnabled="false">
   <with variable="selection">
      <iterate
           ifEmpty="false">
         <adapt type="org.eclipse.core.resources.IResource">
              <test property="org.eclipse.core.resources.extension" value="txt" />
         </adapt>
      </iterate>
   </with>
</visibleWhen>
</menu>
      </menuContribution>
   </extension>

</plugin>
Run Code Online (Sandbox Code Playgroud)

使用此设置:

在此输入图像描述

但遗憾的是,这会隐藏任何和所有文件扩展名的菜单.我究竟做错了什么?

原始问题如下

我已经尝试了在visibleWhen中找到的解决方案,以便命令出现在上下文菜单和其他几个地方.

我有一个带菜单的eclipse插件.它看起来像这样:

在此输入图像描述

我希望该菜单仅在查看特定文件扩展名的文件时显示(它被称为'source',因此如果查看带有插件安装的说java文件,则会突然出现两个'源'菜单,这简直无益).

我正在使用'visibleWhen'结构.

我试过测试扩展属性:

在此输入图像描述

(导致这个plugin.xml片段)

<menuContribution
            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
         <menu
               id="ARTful.menus.sampleMenu"
               label="Source"
               mnemonic="M">
            <command
                  commandId="ArtEditor.command.format"
                  id="ARTful.menus.sampleCommand"
                  mnemonic="S"
                  tooltip="Format">
            </command>
            <command
                  commandId="ArtEditor.command.latex"
                  style="push"
                  tooltip="LaTex Output">
            </command>
            <command
                  commandId="ArtEditor.command.format.alpha"
                  style="push">
            </command> …
Run Code Online (Sandbox Code Playgroud)

xml eclipse eclipse-plugin

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

CSS“@media only screen”仅在我调整窗口大小时触发?

我在这个网站上有以下代码(它是 Github Pages,所以你可以在这里看到存储库):

@media only screen and (max-width: 600px) {
 img {width: 100%; 
  height: 100%; 
  margin: 0; 
  padding: 0;
 } 
 a.box {
  width: 100%;
  padding:14px 15px;
  font-size: 0.75em;
 }
}
Run Code Online (Sandbox Code Playgroud)

在我的手机(iPhone 7 Plus)上,屏幕宽度似乎没有触发:

在此输入图像描述

iPhone 7/8/9 Plus 的 Firefox 响应式设计模式也没有:

在此输入图像描述

但是如果我将 Firefox 窗口放大一格:

突然就起作用了!

另外 - 如果我将响应式浏览器窗口设置为与 iphone 6/7/8 完全相同的大小 - 那么它就可以正常工作。这表明这不是大小 - 这是关于 iphone 用户代理字符串的事情?或许?

在此输入图像描述

这是怎么回事以及如何解决?

css firefox

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

EMF 模型的系列化

我正在掌握 EMF,我想检查一下我头脑中的概念是否准确。

据我了解,可以在 Eclipse 中创建 EMF 模型,然后使用它来生成 Java 代码。

我进一步了解模型可以序列化到磁盘然后再返回,但我不明白它的用途。

当然模型文件本身可以保存吗?序列化有明显的用例吗?

eclipse serialization model eclipse-emf emf

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

为什么我要使用一个JVM而不是另一个?

我强烈怀疑这个问题不适合Q&A格式,但我很难找到正确的单词 - 随意重复这个问题.

所以我正在查看维基百科的Java虚拟机列表,我发现自己在想,因为Java是一种可移植的语言,为什么有人会选择一个JVM而不是另一个?这是表演吗?有些更安全吗?

java jvm

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

我相信这个Perl脚本是安全的.可以改进吗?

我有以下Perl脚本.人们可以(现在不是因为我把它拿下来)ping一个像这样的URL

http://www.joereddington.com/testsound/getsound.pl?text=hello%20mum
Run Code Online (Sandbox Code Playgroud)

然后找到该文件

http://www.joereddington.com/testsound/hope.wav
Run Code Online (Sandbox Code Playgroud)

是一个电脑声音的录音说"你好妈妈".

#!/usr/bin/perl
use strict;
use warnings;

use CGI qw(:standard -debug);

my $text = param('text');
$text =~ s/[^0-9a-zA-Z\s]//g;

print "Content-type: text/html\n\n";

system("/home8/projedf4/tts/espeak-1.48.04-source/src/speak \"$text\" -w hope.wav");
Run Code Online (Sandbox Code Playgroud)

让用户可能利用注入攻击等等,我有点紧张.我相信我已经做好了这条线

$text =~ s/[^0-9a-zA-Z\s]//g; 
Run Code Online (Sandbox Code Playgroud)

因为我只是简单地从字符串中提取所有可能造成损害的东西.

但这够了吗?我甚至可以走得那么远

$text =~ s/[^0-9a-zA-Z\s\.,]//g;
Run Code Online (Sandbox Code Playgroud)

regex security perl

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